12e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
22e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Copyright(c) 2011 Trusted Logic.   All rights reserved.
32e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *
42e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Redistribution and use in source and binary forms, with or without
52e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * modification, are permitted provided that the following conditions
62e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * are met:
72e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *
82e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *  * Redistributions of source code must retain the above copyright
92e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *    notice, this list of conditions and the following disclaimer.
102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *  * Redistributions in binary form must reproduce the above copyright
112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *    notice, this list of conditions and the following disclaimer in
122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *    the documentation and/or other materials provided with the
132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *    distribution.
142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *  * Neither the name Trusted Logic nor the names of its
152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *    contributors may be used to endorse or promote products derived
162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *    from this software without specific prior written permission.
172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley *
182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */
302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifndef __S_ERROR_H__
312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define __S_ERROR_H__
322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_SUCCESS                      ((S_RESULT)0x00000000)
342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_SUCCESS                     S_SUCCESS
352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_SUCCESS                   S_SUCCESS
362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_SUCCESS                    S_SUCCESS
372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Generic error
402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_GENERIC                ((S_RESULT)0xFFFF0000)
422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_GENERIC               S_ERROR_GENERIC
432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_GENERIC             S_ERROR_GENERIC
442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_GENERIC              S_ERROR_GENERIC
452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The underlying security system denies the access to the
482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * object
492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_ACCESS_DENIED          ((S_RESULT)0xFFFF0001)
512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_ACCESS_DENIED         S_ERROR_ACCESS_DENIED
522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_ACCESS_DENIED       S_ERROR_ACCESS_DENIED
532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_ACCESS_DENIED        S_ERROR_ACCESS_DENIED
542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The pending operation is cancelled.
572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CANCEL                 ((S_RESULT)0xFFFF0002)
592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_CANCEL                S_ERROR_CANCEL
602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_CANCEL              S_ERROR_CANCEL
612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The underlying system detects a conflict
642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_ACCESS_CONFLICT        ((S_RESULT)0xFFFF0003)
662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_EXCLUSIVE_ACCESS      S_ERROR_ACCESS_CONFLICT
672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_ACCESS_CONFLICT     S_ERROR_ACCESS_CONFLICT
682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_ACCESS_CONFLICT      S_ERROR_ACCESS_CONFLICT
692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Too much data for the operation or some data remain
722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * unprocessed by the operation.
732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_EXCESS_DATA            ((S_RESULT)0xFFFF0004)
752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_EXCESS_DATA           S_ERROR_EXCESS_DATA
762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_EXCESS_DATA         S_ERROR_EXCESS_DATA
772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Error of data format
812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_BAD_FORMAT             ((S_RESULT)0xFFFF0005)
832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_FORMAT                S_ERROR_BAD_FORMAT
842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_BAD_FORMAT          S_ERROR_BAD_FORMAT
852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The specified parameters are invalid
882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_BAD_PARAMETERS         ((S_RESULT)0xFFFF0006)
902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_ILLEGAL_ARGUMENT      S_ERROR_BAD_PARAMETERS
912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_BAD_PARAMETERS      S_ERROR_BAD_PARAMETERS
922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_BAD_PARAMETERS       S_ERROR_BAD_PARAMETERS
932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Illegal state for the operation.
972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_BAD_STATE              ((S_RESULT)0xFFFF0007)
992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_ILLEGAL_STATE         S_ERROR_BAD_STATE
1002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_BAD_STATE           S_ERROR_BAD_STATE
1012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The item is not found
1042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_ITEM_NOT_FOUND         ((S_RESULT)0xFFFF0008)
1062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_ITEM_NOT_FOUND        S_ERROR_ITEM_NOT_FOUND
1072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_ITEM_NOT_FOUND      S_ERROR_ITEM_NOT_FOUND
1082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_ITEM_NOT_FOUND       S_ERROR_ITEM_NOT_FOUND
1092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The specified operation is not implemented
1122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_NOT_IMPLEMENTED        ((S_RESULT)0xFFFF0009)
1142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_NOT_IMPLEMENTED       S_ERROR_NOT_IMPLEMENTED
1152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_NOT_IMPLEMENTED     S_ERROR_NOT_IMPLEMENTED
1162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The specified operation is not supported
1192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_NOT_SUPPORTED          ((S_RESULT)0xFFFF000A)
1212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_NOT_SUPPORTED         S_ERROR_NOT_SUPPORTED
1222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_NOT_SUPPORTED       S_ERROR_NOT_SUPPORTED
1232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Insufficient data is available for the operation.
1262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_NO_DATA                ((S_RESULT)0xFFFF000B)
1282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_NO_DATA               S_ERROR_NO_DATA
1292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_NO_DATA             S_ERROR_NO_DATA
1302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Not enough memory to perform the operation
1332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_OUT_OF_MEMORY          ((S_RESULT)0xFFFF000C)
1352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_OUT_OF_MEMORY         S_ERROR_OUT_OF_MEMORY
1362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_OUT_OF_MEMORY       S_ERROR_OUT_OF_MEMORY
1372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_OUT_OF_MEMORY        S_ERROR_OUT_OF_MEMORY
1382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The service is currently unable to handle the request;
1412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * try later
1422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_BUSY                   ((S_RESULT)0xFFFF000D)
1442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_BUSY                  S_ERROR_BUSY
1452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_BUSY                S_ERROR_BUSY
1462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : security violation
1492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_SECURITY               ((S_RESULT)0xFFFF000F)
1512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_SECURITY              S_ERROR_SECURITY
1522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_SECURITY            S_ERROR_SECURITY
1532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : the buffer is too short
1562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_SHORT_BUFFER           ((S_RESULT)0xFFFF0010)
1582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_SHORT_BUFFER          S_ERROR_SHORT_BUFFER
1592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_SHORT_BUFFER        S_ERROR_SHORT_BUFFER
1602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : SControl Asynchronous Operations are not supported.
1642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */
1652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_ASYNC_OPERATIONS_NOT_SUPPORTED ((S_RESULT)0xFFFF0011)
1662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_ASYNC_OPERATIONS_NOT_SUPPORTED  S_ERROR_ASYNC_OPERATIONS_NOT_SUPPORTED
1672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : the number of handles currently created
1702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * for a specific resource has reached the maximum amount.
1712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_NO_MORE_HANDLES           ((S_RESULT)0xFFFF0013)
1732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : the monotonic counter is corrupted
1762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CORRUPTED           ((S_RESULT)0xFFFF0014)
1782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : the operation is not terminated
1812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_PENDING                      ((S_RESULT)0xFFFF2000)
1832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : A timeout occurred
1862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_TIMEOUT                ((S_RESULT)0xFFFF3001)
1882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Error code: Error of the underlying OS.
1912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_UNDERLYING_OS          ((S_RESULT)0xFFFF3002)
1932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_OS                  S_ERROR_UNDERLYING_OS
1942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
1962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
1972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Error code: The operation is cancelled by a signal.
1982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
1992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CANCELLED_BY_SIGNAL    ((S_RESULT)0xFFFF3003)
2002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Overflow
2032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_OVERFLOW               ((S_RESULT)0xFFFF300F)
2052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_OVERFLOW             S_ERROR_OVERFLOW
2062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The item already exists
2092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_ITEM_EXISTS            ((S_RESULT)0xFFFF3012)
2112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : The application reported an error.  The code of the
2142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * applicative error is encoded in the message data.
2152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */
2162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_SERVICE                ((S_RESULT)0xFFFF1000)
2172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_SERVICE               S_ERROR_SERVICE
2182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_PENDING                      ((S_RESULT)0xFFFF2000)
2202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_PENDING                     S_PENDING
2212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : Critical error causing the platform to shutdown.
2242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */
2252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CRITICAL                ((S_RESULT)0xFFFF3010)
2262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic error code : the underlying peripheral is unreachable.
2292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */
2302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_UNREACHABLE             ((S_RESULT)0xFFFF3013)
2312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------------------------------------------
2332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley   Communication Error Codes
2342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley------------------------------------------------------------------------------*/
2352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Generic communication error
2372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_COMMUNICATION          ((S_RESULT)0xFFFF000E)
2392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_COMMUNICATION         S_ERROR_COMMUNICATION
2402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_COMMUNICATION       S_ERROR_COMMUNICATION
2412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Error of communication : Error of protocol
2442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CONNECTION_PROTOCOL    ((S_RESULT)0xFFFF3020)
2462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Error of communication : The connection is broken.
2492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CONNECTION_BROKEN      ((S_RESULT)0xFFFF3021)
2512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Error of communication : Error during the connection setup.
2542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CONNECTION_SETUP       ((S_RESULT)0xFFFF3022)
2562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Error of communication : The connection is refused by the distant target.
2592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CONNECTION_REFUSED     ((S_RESULT)0xFFFF3023)
2612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Error of communication: The target of the connection is dead
2642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley **/
2652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_TARGET_DEAD            ((S_RESULT)0xFFFF3024)
2662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SM_ERROR_TARGET_DEAD           S_ERROR_TARGET_DEAD
2672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define TEEC_ERROR_TARGET_DEAD         S_ERROR_TARGET_DEAD
2682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------------------------------------------
2712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley   Storage Error Codes
2722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley------------------------------------------------------------------------------*/
2732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/** File system error code: not enough space to complete the operation. */
2752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_STORAGE_NO_SPACE       ((S_RESULT)0xFFFF3041)
2762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_NO_SPACE          0xFFFF3041
2772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * File system error code: The file system is corrupted.
2802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */
2812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_STORAGE_CORRUPTED      ((S_RESULT)0xFFFF3045)
2822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define SST_ERROR_CORRUPTED            S_ERROR_STORAGE_CORRUPTED
2832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/**
2852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * File system error code: The file system is unreachable.
2862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */
2872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_STORAGE_UNREACHABLE    ((S_RESULT)0xFFFF3046)
2882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------------------------------------------
2902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley   Authentication / X509 error codes
2912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley------------------------------------------------------------------------------*/
2922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_AUTHENTICATION_FAILED  ((S_RESULT)0xFFFF3060)
2932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_WRONG_SIGNATURE        ((S_RESULT)0xFFFF3061)
2942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_BAD_CERTIFICATE        ((S_RESULT)0xFFFF3062)
2952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_WRONG_ISSUER           ((S_RESULT)0xFFFF3063)
2962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_CERTIFICATE_EXPIRED    ((S_RESULT)0xFFFF3064)
2972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
2982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------------------------------------------
2992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley   Crypto error codes
3002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley------------------------------------------------------------------------------*/
3012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_BAD_KEY                ((S_RESULT)0xFFFF3070)
3022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
3032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------------------------------------------
3042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley   Indicates the physical memory is in TCM
3052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley------------------------------------------------------------------------------*/
3062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_ARM_MEMORY_IS_TCM      ((S_RESULT)0xFFFF3100)
3072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
3082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------------------------------------------
3092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley   VM-specific Error Codes
3102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley------------------------------------------------------------------------------*/
3112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_UNCAUGHT_EXCEPTION     ((S_RESULT)0xFFFF3080)
3122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_ERROR_TRUSTED_INTERPRETER    ((S_RESULT)0xFFFF3081)
3132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
3142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
3152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/*------------------------------------------------------------------------------
3162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley   Range [0xFFFF3200:0xFFFF35FF] is reserved for internal use
3172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley------------------------------------------------------------------------------*/
3182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
3192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif /* __S_ERROR_H__ */
3202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
3212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley
322