diff options
Diffstat (limited to 'security/tf_sdk/include/s_error.h')
-rw-r--r-- | security/tf_sdk/include/s_error.h | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/security/tf_sdk/include/s_error.h b/security/tf_sdk/include/s_error.h new file mode 100644 index 0000000..d77d3dd --- /dev/null +++ b/security/tf_sdk/include/s_error.h @@ -0,0 +1,321 @@ +/**
+ * Copyright(c) 2011 Trusted Logic. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name Trusted Logic nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */ +#ifndef __S_ERROR_H__ +#define __S_ERROR_H__ + +#define S_SUCCESS ((S_RESULT)0x00000000) +#define SM_SUCCESS S_SUCCESS +#define TEEC_SUCCESS S_SUCCESS +#define SST_SUCCESS S_SUCCESS + +/** + * Generic error code : Generic error + **/ +#define S_ERROR_GENERIC ((S_RESULT)0xFFFF0000) +#define SM_ERROR_GENERIC S_ERROR_GENERIC +#define TEEC_ERROR_GENERIC S_ERROR_GENERIC +#define SST_ERROR_GENERIC S_ERROR_GENERIC + +/** + * Generic error code : The underlying security system denies the access to the + * object + **/ +#define S_ERROR_ACCESS_DENIED ((S_RESULT)0xFFFF0001) +#define SM_ERROR_ACCESS_DENIED S_ERROR_ACCESS_DENIED +#define TEEC_ERROR_ACCESS_DENIED S_ERROR_ACCESS_DENIED +#define SST_ERROR_ACCESS_DENIED S_ERROR_ACCESS_DENIED + +/** + * Generic error code : The pending operation is cancelled. + **/ +#define S_ERROR_CANCEL ((S_RESULT)0xFFFF0002) +#define SM_ERROR_CANCEL S_ERROR_CANCEL +#define TEEC_ERROR_CANCEL S_ERROR_CANCEL + +/** + * Generic error code : The underlying system detects a conflict + **/ +#define S_ERROR_ACCESS_CONFLICT ((S_RESULT)0xFFFF0003) +#define SM_ERROR_EXCLUSIVE_ACCESS S_ERROR_ACCESS_CONFLICT +#define TEEC_ERROR_ACCESS_CONFLICT S_ERROR_ACCESS_CONFLICT +#define SST_ERROR_ACCESS_CONFLICT S_ERROR_ACCESS_CONFLICT + +/** + * Generic error code : Too much data for the operation or some data remain + * unprocessed by the operation. + **/ +#define S_ERROR_EXCESS_DATA ((S_RESULT)0xFFFF0004) +#define SM_ERROR_EXCESS_DATA S_ERROR_EXCESS_DATA +#define TEEC_ERROR_EXCESS_DATA S_ERROR_EXCESS_DATA + + +/** + * Generic error code : Error of data format + **/ +#define S_ERROR_BAD_FORMAT ((S_RESULT)0xFFFF0005) +#define SM_ERROR_FORMAT S_ERROR_BAD_FORMAT +#define TEEC_ERROR_BAD_FORMAT S_ERROR_BAD_FORMAT + +/** + * Generic error code : The specified parameters are invalid + **/ +#define S_ERROR_BAD_PARAMETERS ((S_RESULT)0xFFFF0006) +#define SM_ERROR_ILLEGAL_ARGUMENT S_ERROR_BAD_PARAMETERS +#define TEEC_ERROR_BAD_PARAMETERS S_ERROR_BAD_PARAMETERS +#define SST_ERROR_BAD_PARAMETERS S_ERROR_BAD_PARAMETERS + + +/** + * Generic error code : Illegal state for the operation. + **/ +#define S_ERROR_BAD_STATE ((S_RESULT)0xFFFF0007) +#define SM_ERROR_ILLEGAL_STATE S_ERROR_BAD_STATE +#define TEEC_ERROR_BAD_STATE S_ERROR_BAD_STATE + +/** + * Generic error code : The item is not found + **/ +#define S_ERROR_ITEM_NOT_FOUND ((S_RESULT)0xFFFF0008) +#define SM_ERROR_ITEM_NOT_FOUND S_ERROR_ITEM_NOT_FOUND +#define TEEC_ERROR_ITEM_NOT_FOUND S_ERROR_ITEM_NOT_FOUND +#define SST_ERROR_ITEM_NOT_FOUND S_ERROR_ITEM_NOT_FOUND + +/** + * Generic error code : The specified operation is not implemented + **/ +#define S_ERROR_NOT_IMPLEMENTED ((S_RESULT)0xFFFF0009) +#define SM_ERROR_NOT_IMPLEMENTED S_ERROR_NOT_IMPLEMENTED +#define TEEC_ERROR_NOT_IMPLEMENTED S_ERROR_NOT_IMPLEMENTED + +/** + * Generic error code : The specified operation is not supported + **/ +#define S_ERROR_NOT_SUPPORTED ((S_RESULT)0xFFFF000A) +#define SM_ERROR_NOT_SUPPORTED S_ERROR_NOT_SUPPORTED +#define TEEC_ERROR_NOT_SUPPORTED S_ERROR_NOT_SUPPORTED + +/** + * Generic error code : Insufficient data is available for the operation. + **/ +#define S_ERROR_NO_DATA ((S_RESULT)0xFFFF000B) +#define SM_ERROR_NO_DATA S_ERROR_NO_DATA +#define TEEC_ERROR_NO_DATA S_ERROR_NO_DATA + +/** + * Generic error code : Not enough memory to perform the operation + **/ +#define S_ERROR_OUT_OF_MEMORY ((S_RESULT)0xFFFF000C) +#define SM_ERROR_OUT_OF_MEMORY S_ERROR_OUT_OF_MEMORY +#define TEEC_ERROR_OUT_OF_MEMORY S_ERROR_OUT_OF_MEMORY +#define SST_ERROR_OUT_OF_MEMORY S_ERROR_OUT_OF_MEMORY + +/** + * Generic error code : The service is currently unable to handle the request; + * try later + **/ +#define S_ERROR_BUSY ((S_RESULT)0xFFFF000D) +#define SM_ERROR_BUSY S_ERROR_BUSY +#define TEEC_ERROR_BUSY S_ERROR_BUSY + +/** + * Generic error code : security violation + **/ +#define S_ERROR_SECURITY ((S_RESULT)0xFFFF000F) +#define SM_ERROR_SECURITY S_ERROR_SECURITY +#define TEEC_ERROR_SECURITY S_ERROR_SECURITY + +/** + * Generic error code : the buffer is too short + **/ +#define S_ERROR_SHORT_BUFFER ((S_RESULT)0xFFFF0010) +#define SM_ERROR_SHORT_BUFFER S_ERROR_SHORT_BUFFER +#define TEEC_ERROR_SHORT_BUFFER S_ERROR_SHORT_BUFFER + + +/** + * Generic error code : SControl Asynchronous Operations are not supported. + */ +#define S_ERROR_ASYNC_OPERATIONS_NOT_SUPPORTED ((S_RESULT)0xFFFF0011) +#define SM_ERROR_ASYNC_OPERATIONS_NOT_SUPPORTED S_ERROR_ASYNC_OPERATIONS_NOT_SUPPORTED + +/** + * Generic error code : the number of handles currently created + * for a specific resource has reached the maximum amount. + **/ +#define S_ERROR_NO_MORE_HANDLES ((S_RESULT)0xFFFF0013) + +/** + * Generic error code : the monotonic counter is corrupted + **/ +#define S_ERROR_CORRUPTED ((S_RESULT)0xFFFF0014) + +/** + * Generic error code : the operation is not terminated + **/ +#define S_PENDING ((S_RESULT)0xFFFF2000) + +/** + * Generic error code : A timeout occurred + **/ +#define S_ERROR_TIMEOUT ((S_RESULT)0xFFFF3001) + +/** + * Error code: Error of the underlying OS. + **/ +#define S_ERROR_UNDERLYING_OS ((S_RESULT)0xFFFF3002) +#define TEEC_ERROR_OS S_ERROR_UNDERLYING_OS + + +/** + * Error code: The operation is cancelled by a signal. + **/ +#define S_ERROR_CANCELLED_BY_SIGNAL ((S_RESULT)0xFFFF3003) + +/** + * Generic error code : Overflow + **/ +#define S_ERROR_OVERFLOW ((S_RESULT)0xFFFF300F) +#define SST_ERROR_OVERFLOW S_ERROR_OVERFLOW + +/** + * Generic error code : The item already exists + **/ +#define S_ERROR_ITEM_EXISTS ((S_RESULT)0xFFFF3012) + +/** + * Generic error code : The application reported an error. The code of the + * applicative error is encoded in the message data. + */ +#define S_ERROR_SERVICE ((S_RESULT)0xFFFF1000) +#define SM_ERROR_SERVICE S_ERROR_SERVICE + +#define S_PENDING ((S_RESULT)0xFFFF2000) +#define SM_PENDING S_PENDING + +/** + * Generic error code : Critical error causing the platform to shutdown. + */ +#define S_ERROR_CRITICAL ((S_RESULT)0xFFFF3010) + +/** + * Generic error code : the underlying peripheral is unreachable. + */ +#define S_ERROR_UNREACHABLE ((S_RESULT)0xFFFF3013) + +/*------------------------------------------------------------------------------ + Communication Error Codes +------------------------------------------------------------------------------*/ +/** + * Generic communication error + **/ +#define S_ERROR_COMMUNICATION ((S_RESULT)0xFFFF000E) +#define SM_ERROR_COMMUNICATION S_ERROR_COMMUNICATION +#define TEEC_ERROR_COMMUNICATION S_ERROR_COMMUNICATION + +/** + * Error of communication : Error of protocol + **/ +#define S_ERROR_CONNECTION_PROTOCOL ((S_RESULT)0xFFFF3020) + +/** + * Error of communication : The connection is broken. + **/ +#define S_ERROR_CONNECTION_BROKEN ((S_RESULT)0xFFFF3021) + +/** + * Error of communication : Error during the connection setup. + **/ +#define S_ERROR_CONNECTION_SETUP ((S_RESULT)0xFFFF3022) + +/** + * Error of communication : The connection is refused by the distant target. + **/ +#define S_ERROR_CONNECTION_REFUSED ((S_RESULT)0xFFFF3023) + +/** + * Error of communication: The target of the connection is dead + **/ +#define S_ERROR_TARGET_DEAD ((S_RESULT)0xFFFF3024) +#define SM_ERROR_TARGET_DEAD S_ERROR_TARGET_DEAD +#define TEEC_ERROR_TARGET_DEAD S_ERROR_TARGET_DEAD + + +/*------------------------------------------------------------------------------ + Storage Error Codes +------------------------------------------------------------------------------*/ + +/** File system error code: not enough space to complete the operation. */ +#define S_ERROR_STORAGE_NO_SPACE ((S_RESULT)0xFFFF3041) +#define SST_ERROR_NO_SPACE 0xFFFF3041 + +/** + * File system error code: The file system is corrupted. + */ +#define S_ERROR_STORAGE_CORRUPTED ((S_RESULT)0xFFFF3045) +#define SST_ERROR_CORRUPTED S_ERROR_STORAGE_CORRUPTED + +/** + * File system error code: The file system is unreachable. + */ +#define S_ERROR_STORAGE_UNREACHABLE ((S_RESULT)0xFFFF3046) + +/*------------------------------------------------------------------------------ + Authentication / X509 error codes +------------------------------------------------------------------------------*/ +#define S_ERROR_AUTHENTICATION_FAILED ((S_RESULT)0xFFFF3060) +#define S_ERROR_WRONG_SIGNATURE ((S_RESULT)0xFFFF3061) +#define S_ERROR_BAD_CERTIFICATE ((S_RESULT)0xFFFF3062) +#define S_ERROR_WRONG_ISSUER ((S_RESULT)0xFFFF3063) +#define S_ERROR_CERTIFICATE_EXPIRED ((S_RESULT)0xFFFF3064) + +/*------------------------------------------------------------------------------ + Crypto error codes +------------------------------------------------------------------------------*/ +#define S_ERROR_BAD_KEY ((S_RESULT)0xFFFF3070) + +/*------------------------------------------------------------------------------ + Indicates the physical memory is in TCM +------------------------------------------------------------------------------*/ +#define S_ERROR_ARM_MEMORY_IS_TCM ((S_RESULT)0xFFFF3100) + +/*------------------------------------------------------------------------------ + VM-specific Error Codes +------------------------------------------------------------------------------*/ +#define S_ERROR_UNCAUGHT_EXCEPTION ((S_RESULT)0xFFFF3080) +#define S_ERROR_TRUSTED_INTERPRETER ((S_RESULT)0xFFFF3081) + + +/*------------------------------------------------------------------------------ + Range [0xFFFF3200:0xFFFF35FF] is reserved for internal use +------------------------------------------------------------------------------*/ + +#endif /* __S_ERROR_H__ */ + + |