Files
2026-07-30 11:19:44 +05:30

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