2
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: route.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 : Type definitions and prototypes for routing.
|
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 #ifndef __ROUTE_H__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #define __ROUTE_H__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #define RT_DUPLICATE 0x01
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #define RT_REDIRECT 0x02
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #define RT_DESTROY 0x04
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #define RT_COMMAND_MASK (RT_DUPLICATE|RT_REDIRECT|RT_DESTROY)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #define RT_CLEAR_ENTRY 0x10
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #define RT_ALL_DESTINATION 0x20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 typedef enum { RT_STORE = 1, RT_DELETE } RT_ENTRY;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 typedef enum { RT_PRIMITIVE_TYPE = 1, RT_SIGNAL_TYPE, RT_TIMEOUT_TYPE } RT_MESSAGE_TYPE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 typedef struct _T_ROUTING_ENTRY
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 T_HANDLE SndTaskHandle; /* sender of a mesage */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 T_HANDLE OldDestComHandle; /* original destination queue handle */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 T_HANDLE OldDestTaskHandle;/* original destination task handle */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 T_HANDLE NewDestComHandle; /* new destination queue handle */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 RT_MESSAGE_TYPE MsgType; /* message type (primitive,timeout,signal) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 ULONG opcStatus; /* mask for messages to be routed */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 ULONG opcMask; /* relevant bits in opcStatus */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 int Command; /* redirect/duplicate */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 char ExtDest[RESOURCE_NAMELEN];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 struct _T_ROUTING_ENTRY * pNextEntry;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 struct _T_ROUTING_ENTRY * pPrevEntry;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 } T_FRM_ROUTING_TABLE_ENTRY;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #define RT_OK 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #define RT_ERROR (-1)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #define RT_NO_MEM (-2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #define ROUTE_ALL (T_HANDLE)0xFFFF
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #define RT_CLEAR_TOKEN "CLEAR"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #define RT_ALL_TOKEN "ALL"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #define RT_SIGNAL_TOKEN "S"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #define RT_TIMEOUT_TOKEN "T"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 GLOBAL SHORT rt_Init (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 GLOBAL SHORT rt_RoutingModify ( T_HANDLE TaskHandle, char *Command, char *String);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 GLOBAL SHORT rt_ConnectRoute ( T_HANDLE TaskHandle, char *Destination);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 GLOBAL SHORT rt_DisconnectRoute ( T_HANDLE TaskHandle, char *Destination);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 GLOBAL SHORT rt_Route ( T_HANDLE SndTaskHandle, T_HANDLE RcvComHandle, USHORT Prio, ULONG Suspend, OS_QDATA *Msg );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 GLOBAL SHORT rt_RouteRead ( T_HANDLE TaskHandle, char *token );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 GLOBAL void rt_ExtPrimitive ( T_HANDLE TaskHandle, T_HANDLE DestComHandle, T_HANDLE OrgDestComHandle, char *ExtDest, OS_QDATA *Msg ) ;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 GLOBAL SHORT rt_isolate_entity ( T_HANDLE caller, char *entity );
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 GLOBAL int rt_desclist_to_sdu ( T_HANDLE caller, T_HANDLE dst, T_PRIM_HEADER *prim, T_PRIM_HEADER **sdu_prim );
|
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 #endif /* ROUTE_H */
|