diff src/gpf/inc/pei.h @ 5:1ea54a97e831

src/gpf: import of Magnetite src/gpf3
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 08:11:07 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gpf/inc/pei.h	Sun Jul 15 08:11:07 2018 +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__ */
+