139 lines
7.0 KiB
C
139 lines
7.0 KiB
C
|
|
|
|
/****************************************************************************
|
|
* 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
|