/////////////////////////////////////////////////////////////////////////////
//                                    NOTICE                               //
//                                                                         //
//            COPYRIGHT MARVELL INTERNATIONAL LTD. AND ITS AFFILIATES      //
//                             ALL RIGHTS RESERVED                         //
//                                                                         //
//    The source code for this computer program is  CONFIDENTIAL  and a    //
//    TRADE SECRET of MARVELL  INTERNATIONAL  LTD. AND  ITS  AFFILIATES    //
//    ('MARVELL'). The receipt or possession of  this  program does not    //
//    convey any rights to  reproduce or  disclose  its contents, or to    //
//    manufacture,  use, or  sell  anything  that it  may  describe, in    //
//    whole or in part, without the specific written consent of MARVELL.   //
//    Any  reproduction  or  distribution  of this  program without the    //
//    express written consent of MARVELL is a violation of the copyright   //
//    laws and may subject you to criminal prosecution.                    //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////

#ifndef INCLUDE_BCM_STATUS_H
#define INCLUDE_BCM_STATUS_H

// Following definitions need to be consistent with BCM f/w

// generic status code
typedef enum _STATUS
   {
   STATUS_SUCCESS = 0,
   STATUS_FAILURE = 255,
   STATUS_PENDING,
   STATUS_NO_RESOURCES,
   STATUS_BAD_DEVICE,
   STATUS_SHORT_XFR,
   STATUS_OFFLINE,
   STATUS_NO_REQUESTS_PENDING,
   STATUS_UNSUPPORTED_FUNCTION,
   STATUS_UNSUPPORTED_PARAMETER,
   STATUS_IN_USE,
   STATUS_CANCELED,
   STATUS_NULL_BUFFER,
   STATUS_ILLEGAL_BLOCK_SIZE,
   STATUS_BUFFER_NOT_ALIGNED,
   STATUS_PARAMETER_OUT_OF_RANGE,
   STATUS_NULL_POINTER,
   STATUS_CRC_ERROR,
   STATUS_ECC_ERROR,
   STATUS_PARITY_ERROR,
   STATUS_FRAMING_ERROR,
   STATUS_OVERRUN_ERROR,
   STATUS_OFFSET_ERROR,
   STATUS_IN_PROGRESS,
   STATUS_RETRY_COUNT_EXCEEDED,
   STATUS_BAD_ENGINE_OP,
   STATUS_BAD_CACHE_ID,
   STATUS_LIFECYCLE_SPENT,
   STATUS_PERMISSION_DENIED,
   STATUS_DEVICE_CORRUPTED,
   STATUS_MODE_ERROR,
   STATUS_BAD_THREAD_ID,
   STATUS_BAD_TRANSFER_SIZE,
   STATUS_CONVERGENCE_ERROR,
   STATUS_FATAL_INTERNAL_ERROR,
   STATUS_ECB_MODE_WITH_PARTIAL_CODEWORD,
   STATUS_NO_KEY,
   STATUS_INVALID_BINDING,
   STATUS_INVALID_SIGNATURE,
   STATUS_SIGNATURE_REPRESENTATIVE_OUT_OF_RANGE,
   STATUS_HASH_NOT_SUPPORTED,
   STATUS_INTENDED_ENCODED_MESSAGE_LENGTH_TOO_SHORT,
   STATUS_INTEGER_TOO_LARGE,
   STATUS_ENGINE_CONTEXT_MISMATCH,
   STATUS_ILLEGAL_KEY,
   STATUS_DMA_TIMEOUT,
   STATUS_DMA_BUS_ERROR,
   STATUS_DMA_PARITY_ERROR,
   STATUS_DMA_LINKED_LIST_ACCESS_ERROR,
   STATUS_DMA_PAUSE_COMPLETION_TIMEOUT,
   STATUS_DMA_IDIOPATHIC_ERROR,
   STATUS_HASH_TIMEOUT,
   STATUS_AES_TIMEOUT,
   STATUS_ZMODP_TIMEOUT,
   STATUS_EC_TIMEOUT,
   STATUS_DES_TIMEOUT,
   STATUS_RC4_TIMEOUT,
   STATUS_MD5_TIMEOUT,
   STATUS_MCT_TIMEOUT,
   STATUS_EBG_TIMEOUT,
   STATUS_OTP_TIMEOUT,
   STATUS_HASH_MESSAGE_OVERFLOW,
   STATUS_UNSUPPORTED_DIGEST_TYPE,
   STATUS_BUS_ERROR,
   STATUS_RSA_MODULUS_TOO_SHORT,
   STATUS_MESSAGE_REPRESENTATIVE_OUT_OF_RANGE,
   STATUS_DIGEST_MISMATCH,
   STATUS_INSUFFICIENT_PRIVILEGE,
   STATUS_ZERO_DIVISOR,
   STATUS_RDSA_PUBLIC_EXPONENT_OUT_OF_RANGE,
   STATUS_RDSA_INVALID_KEY_LENGTH,
   STATUS_PRIVATE_KEY_TOO_SMALL,
   STATUS_GENERATE_PRIME_FAILURE,
   STATUS_XPXQ_DISTANCE_INVALID,
   STATUS_PQ_DISTANCE_INVALID,
   STATUS_RDSA_PUBLIC_EXPONENT_EVEN_ERROR,
   STATUS_ECDSA_INVALID_CURVE_TYPE,
   STATUS_ECDSA_HASH_NOT_SUPPORTED,
   STATUS_ECDSA_HASH_ERROR,
   STATUS_ECDSA_VALID_SIGNATURE,
   STATUS_ECDSA_INVALID_SIGNATURE,
   STATUS_ECDSA_INVALID_POINT_FORMAT,
   STATUS_ECDSA_INVALID_COMPRESSED_POINT,
   STATUS_ECDSA_INVALID_HYBRID_POINT,
   STATUS_ECDSA_INVALID_UNCOMPRESSED_POINT,
   STATUS_ECDSA_OCTET2POINT_ERROR,
   STATUS_ECDSA_VALID_PUBLIC_KEY,
   STATUS_ECDSA_PUBLIC_KEY_NOT_ON_CURVE,
   STATUS_ECDSA_PUBLIC_KEY_OUT_OF_RANGE,
   STATUS_UNEXPECTED_IRQ,
   STATUS_UNEXPECTED_FIQ,
   STATUS_UNEXPECTED_UNDEFINED_INST,
   STATUS_UNEXPECTED_DATA_ABORT,
   STATUS_UNEXPECTED_PREFETCH_ABORT,
   STATUS_UNEXPECTED_SWI,
   STATUS_UNEXPECTED_UNUSED,
   STATUS_ZERO_INPUT_TO_INVERTER,
   STATUS_ZERO_SCALAR_OUTPUT,
   STATUS_ZERO_KEY_RECEIVED_FOR_SCALAR_OPERATION,
   STATUS_WRONG_IROM_VERSION,
   STATUS_BAD_ENGINE_ID,
   STATUS_FUNCTION_OUT_OF_RANGE,
   STATUS_READ_VERIFICATION_FAILED,
   STATUS_SELF_TEST_ERROR,
   STATUS_INCORRECT_SYSTEM_STATE,
   STATUS_INVALID_TOKEN,
   STATUS_DRBG_RESEED_REQUIRED,
   STATUS_UNSUPPORTED_ALGORITHM,
   STATUS_SLEEP_CONTEXT_PREVIOUSLY_RESTORED,
   STATUS_SLEEP_CONTEXT_INVALID,
   STATUS_DMA_FIFO_PARITY_ERROR,
   STATUS_EROM_ALREADY_LOADED,
   STATUS_USER_DEFINED = 4096,
   STATUS_WV_INVALID_SESSION,
   STATUS_WV_TOO_MANY_SESSIONS,
   STATUS_WV_NO_DEVICE_KEY,
   STATUS_WV_INVALID_CONTEXT,
   STATUS_WV_SIGNATURE_FAILURE,
   STATUS_WV_INVALID_NONCE,
   STATUS_WV_TOO_MANY_KEYS,
   STATUS_WV_SHORT_BUFFER,
   STATUS_WV_BAD_MAGIC,
   STATUS_WV_BAD_CRC,
   STATUS_GTV_CA_INVALID_CONTEXT,
   STATUS_GTV_CA_INVALID_KEY,
   STATUS_GTV_CA_SHORT_BUFFER,

   //error code for ASN1
   STATUS_ASN1_INVALID_FORMAT,
   //error code for SSTORE
   STATUS_SSTORE_INVALID_MAGIC,
   STATUS_SSTORE_SHORT_PAYLOAD_BUF,
   STATUS_SSTORE_INVALID_ROOTK,
   STATUS_SSTORE_INVALID_DIGEST,
   STATUS_SSTORE_INVALID_MARKET,
   STATUS_SSTORE_INVALID_VERSION,
   STATUS_SSTORE_INVALID_HASH,
   STATUS_SSTORE_INVALID_PAYLOAD_SIZE,

   STATUS_LAST_ONE,

} STATUS;

#endif //INCLUDE_BCM_STATUS_H
