/**************************************************************************** * Sec2Notify.h - ISR register transfer definitions for the SEC2.x * security core family **************************************************************************** * Copyright (c) Certicom Corp. 1996-2000. All rights reserved * Copyright (c) 2003-2005 Freescale Semiconductor * All Rights Reserved. Proprietary and Confidential. * * NOTICE: The information contained in this file is proprietary * to Freescale Semiconductor, and is being made available to * Freescale's customers under strict license agreements. * Use or disclosure of this information is permissible only * under the terms of the existing license agreement. ***************************************************************************/ /* * Revision History: * 1.0 Aug 24,2003 dgs - adapted from the final version of mpc18x * 1.1.0 Nov 22,2004 sec - move GENERIC_REQ to global header out of necessity * 1.2 Jan 27,2005 */ #ifndef SEC2NOTIFY_H #define SEC2NOTIFY_H /*! \struct STATUS_REQ \brief structure used to indicate the state of the SEC2 as well as the driver. Returned as a pointer by GetStatus() and imbedded in all requests. */ typedef struct { unsigned long ChaAssignmentStatusRegister[2]; /*!< A copy of the contents of \b ChaAssignmentStatusRegister register in SEC2Driver.h */ unsigned long InterruptControlRegister[2]; /*!< A copy of the contents of \b InterruptControlRegister register in SEC2Driver.h */ unsigned long InterruptStatusRegister[2]; /*!< A copy of the contents of \b InterruptStatusRegister register in SEC2Driver.h */ unsigned long IdRegister; /*!< A copy of the contents of \b IdRegister register in SEC2Driver.h */ unsigned long ChannelStatusRegister[NUM_CHANNELS][2]; /*!< A copy of the contents of the \b ChannelPointerStatusRegister"s" registers in SEC2Driver.h */ unsigned long ChannelConfigurationRegister[NUM_CHANNELS][2]; /*!< A copy of the contents of the \b ChannelConfigRegister"s" registers in SEC2Driver.h */ unsigned long CHAInterruptStatusRegister[NUM_CHAS][2]; /*!< A copy of the contents of the \b ChaInterruptStatusRegister"s" registers in SEC2Driver.h */ unsigned long QueueEntryDepth; /*!< A copy of the \b QueueEntryDepth global in SEC2Driver.h */ unsigned long FreeChannels; /*!< A copy of the \b FreeChannels global in SEC2Driver.h */ unsigned long FreeRngas; /*!< A copy of the \b FreeRngas global in SEC2Driver.h */ unsigned long FreeAfhas; /*!< A copy of the \b FreeAfhas global in SEC2Driver.h */ unsigned long FreeDesas; /*!< A copy of the \b FreeDesas global in SEC2Driver.h */ unsigned long FreeMdhas; /*!< A copy of the \b FreeMdhas global in SEC2Driver.h */ unsigned long FreePkhas; /*!< A copy of the \b FreePkhas global in SEC2Driver.h */ unsigned long FreeAesas; /*!< A copy of the \b FreeAesa global in SEC2Driver.h */ unsigned long FreeKeas; /*!< A copy of the \b FreeKeas global in SEC2Driver.h */ unsigned long BlockSize; /*!< A copy of the \b BlockSize global in SEC2Driver.h */ } STATUS_REQ; typedef STATUS_REQ SEC2_STATUS; typedef void* PSEC2_NOTIFY_CTX; /*! \struct SEC2_NOTIFY_ON_ERROR_CTX \brief structure used in all requests to indicate the nature of errors. */ typedef struct { unsigned long errorcode; /*!< Error that the request generated */ void *request; /*!< Pointer to original request */ STATUS_REQ driverstatus; /*!< Detailed information as to the state of the hardware and the driver at the time of an error */ } SEC2_NOTIFY_ON_ERROR_CTX, *PSEC2_NOTIFY_ON_ERROR_CTX; typedef void (*PSEC2_NOTIFY_ROUTINE) (PSEC2_NOTIFY_CTX pCtx); typedef void (*PSEC2_NOTIFY_ON_ERROR_ROUTINE) (PSEC2_NOTIFY_ON_ERROR_CTX pErrCtx); #endif