1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +------------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | File: pei.h
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 +------------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 | Purpose : Protocol Entity Interface exported definitions.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #ifndef __PEI_H__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define __PEI_H__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 /*==== INCLUDES ============================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include <stddef.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 /*==== CONSTANTS ===========================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #define PEI_OK 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #define PEI_ERROR (-1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 /*==== TYPES ===============================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 typedef int T_PEI_RETURN;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 typedef char * T_PEI_CONFIG;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 typedef void T_PEI_MONITOR;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 * types and macros for pei-jumptable processing
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #define PALLOC_TRANSITION /* to reinsert the sdu pointer in pei_primitive */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #define NO_COPY_ROUTING /* has to be set for frame version > 2.5.0 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 * for definitions of jumptables
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 typedef void (*T_VOID_FUNC)();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 typedef short (*T_SHORT_FUNC)();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 typedef struct { T_VOID_FUNC func; size_t size; size_t soff; ULONG opc; } T_FUNC;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #define MAK_FUNC_S(FUNC,OPC) { (T_VOID_FUNC)FUNC, sizeof(T_##OPC), offsetof(T_##OPC,sdu), OPC }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #define MAK_FUNC_0(FUNC,OPC) { (T_VOID_FUNC)FUNC, sizeof(T_##OPC), 0 , OPC }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #define MAK_FUNC_N(FUNC,OPC) { (T_VOID_FUNC)FUNC, 0 , 0 , 0 }
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #define TAB_SIZE(T) (sizeof T / sizeof *T)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 SHORT (*pei_init)(T_HANDLE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 SHORT (*pei_exit)(void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 SHORT (*pei_primitive)(void*);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 SHORT (*pei_timeout)(USHORT);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 SHORT (*pei_signal)(ULONG,void*);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 SHORT (*pei_run)(T_HANDLE,T_HANDLE);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 SHORT (*pei_config)(char*);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 SHORT (*pei_monitor)(void**);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 } T_PEI_FUNC;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 char const *Name;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 T_PEI_FUNC PeiTable;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 ULONG StackSize;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 USHORT QueueEntries;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 USHORT Priority;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 USHORT NumOfTimers;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 U32 Flags;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 } T_PEI_INFO;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 #endif /* __PEI_H__ */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85
|