comparison src/gpf2/frame/route.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
comparison
equal deleted inserted replaced
0:945cf7f506b2 1:864b8cc0cf63
1 /*
2 +-----------------------------------------------------------------------------
3 | File: route.h
4 +-----------------------------------------------------------------------------
5 | Copyright 2002 Texas Instruments Berlin, AG
6 | All rights reserved.
7 |
8 | This file is confidential and a trade secret of Texas
9 | Instruments Berlin, AG
10 | The receipt of or possession of this file does not convey
11 | any rights to reproduce or disclose its contents or to
12 | manufacture, use, or sell anything it may describe, in
13 | whole, or in part, without the specific written consent of
14 | Texas Instruments Berlin, AG.
15 +-----------------------------------------------------------------------------
16 | Purpose : Type definitions and prototypes for routing.
17 +-----------------------------------------------------------------------------
18 */
19
20 #ifndef __ROUTE_H__
21 #define __ROUTE_H__
22
23 #define RT_DUPLICATE 0x01
24 #define RT_REDIRECT 0x02
25 #define RT_DESTROY 0x04
26 #define RT_COMMAND_MASK (RT_DUPLICATE|RT_REDIRECT|RT_DESTROY)
27
28 #define RT_CLEAR_ENTRY 0x10
29 #define RT_ALL_DESTINATION 0x20
30
31 typedef enum { RT_STORE = 1, RT_DELETE } RT_ENTRY;
32 typedef enum { RT_PRIMITIVE_TYPE = 1, RT_SIGNAL_TYPE, RT_TIMEOUT_TYPE } RT_MESSAGE_TYPE;
33
34 typedef struct _T_ROUTING_ENTRY
35 {
36 T_HANDLE SndTaskHandle; /* sender of a mesage */
37 T_HANDLE OldDestComHandle; /* original destination queue handle */
38 T_HANDLE OldDestTaskHandle;/* original destination task handle */
39 T_HANDLE NewDestComHandle; /* new destination queue handle */
40 RT_MESSAGE_TYPE MsgType; /* message type (primitive,timeout,signal) */
41 ULONG opcStatus; /* mask for messages to be routed */
42 ULONG opcMask; /* relevant bits in opcStatus */
43 int Command; /* redirect/duplicate */
44 char ExtDest[RESOURCE_NAMELEN];
45 struct _T_ROUTING_ENTRY * pNextEntry;
46 struct _T_ROUTING_ENTRY * pPrevEntry;
47 } T_FRM_ROUTING_TABLE_ENTRY;
48
49 #define RT_OK 0
50 #define RT_ERROR (-1)
51 #define RT_NO_MEM (-2)
52
53 #define ROUTE_ALL (T_HANDLE)0xFFFF
54
55 #define RT_CLEAR_TOKEN "CLEAR"
56 #define RT_ALL_TOKEN "ALL"
57
58 #define RT_SIGNAL_TOKEN "S"
59 #define RT_TIMEOUT_TOKEN "T"
60
61 GLOBAL SHORT rt_Init (void);
62 GLOBAL SHORT rt_RoutingModify ( T_HANDLE TaskHandle, char *Command, char *String);
63 GLOBAL SHORT rt_ConnectRoute ( T_HANDLE TaskHandle, char *Destination);
64 GLOBAL SHORT rt_DisconnectRoute ( T_HANDLE TaskHandle, char *Destination);
65 GLOBAL SHORT rt_Route ( T_HANDLE SndTaskHandle, T_HANDLE RcvComHandle, USHORT Prio, ULONG Suspend, OS_QDATA *Msg );
66 GLOBAL SHORT rt_RouteRead ( T_HANDLE TaskHandle, char *token );
67 GLOBAL void rt_ExtPrimitive ( T_HANDLE TaskHandle, T_HANDLE DestComHandle, T_HANDLE OrgDestComHandle, char *ExtDest, OS_QDATA *Msg ) ;
68 GLOBAL SHORT rt_isolate_entity ( T_HANDLE caller, char *entity );
69 GLOBAL int rt_desclist_to_sdu ( T_HANDLE caller, T_HANDLE dst, T_PRIM_HEADER *prim, T_PRIM_HEADER **sdu_prim );
70
71
72 #endif /* ROUTE_H */