FreeCalypso > hg > fc-magnetite
diff src/gpf2/inc/pei.h @ 1:864b8cc0cf63
src/gpf2: preened GPF goo from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 25 Sep 2016 23:38:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/gpf2/inc/pei.h Sun Sep 25 23:38:58 2016 +0000 @@ -0,0 +1,85 @@ +/* ++------------------------------------------------------------------------------ +| File: pei.h ++------------------------------------------------------------------------------ +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : Protocol Entity Interface exported definitions. ++----------------------------------------------------------------------------- +*/ + + +#ifndef __PEI_H__ +#define __PEI_H__ + +/*==== INCLUDES ============================================================*/ + +#include <stddef.h> + +/*==== CONSTANTS ===========================================================*/ + +#define PEI_OK 0 +#define PEI_ERROR (-1) + +/*==== TYPES ===============================================================*/ + +typedef int T_PEI_RETURN; +typedef char * T_PEI_CONFIG; +typedef void T_PEI_MONITOR; + +/* + * types and macros for pei-jumptable processing + */ + +#define PALLOC_TRANSITION /* to reinsert the sdu pointer in pei_primitive */ +#define NO_COPY_ROUTING /* has to be set for frame version > 2.5.0 */ + + /* + * for definitions of jumptables + */ +typedef void (*T_VOID_FUNC)(); +typedef short (*T_SHORT_FUNC)(); + +typedef struct { T_VOID_FUNC func; size_t size; size_t soff; ULONG opc; } T_FUNC; +#define MAK_FUNC_S(FUNC,OPC) { (T_VOID_FUNC)FUNC, sizeof(T_##OPC), offsetof(T_##OPC,sdu), OPC } +#define MAK_FUNC_0(FUNC,OPC) { (T_VOID_FUNC)FUNC, sizeof(T_##OPC), 0 , OPC } +#define MAK_FUNC_N(FUNC,OPC) { (T_VOID_FUNC)FUNC, 0 , 0 , 0 } + +#define TAB_SIZE(T) (sizeof T / sizeof *T) + +typedef struct +{ + SHORT (*pei_init)(T_HANDLE); + SHORT (*pei_exit)(void); + SHORT (*pei_primitive)(void*); + SHORT (*pei_timeout)(USHORT); + SHORT (*pei_signal)(ULONG,void*); + SHORT (*pei_run)(T_HANDLE,T_HANDLE); + SHORT (*pei_config)(char*); + SHORT (*pei_monitor)(void**); +} T_PEI_FUNC; + + +typedef struct +{ + char const *Name; + T_PEI_FUNC PeiTable; + ULONG StackSize; + USHORT QueueEntries; + USHORT Priority; + USHORT NumOfTimers; + U32 Flags; +} T_PEI_INFO; + + +#endif /* __PEI_H__ */ +