annotate src/gpf/frame/route.h @ 121:746db8fa3398

C155 bootloader interface support for TMS470
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 07 Nov 2018 06:42:31 +0000
parents 1ea54a97e831
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 +-----------------------------------------------------------------------------
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 | File: route.h
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 +-----------------------------------------------------------------------------
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 | Copyright 2002 Texas Instruments Berlin, AG
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 | All rights reserved.
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 |
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 | This file is confidential and a trade secret of Texas
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 | Instruments Berlin, AG
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 | The receipt of or possession of this file does not convey
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 | any rights to reproduce or disclose its contents or to
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 | manufacture, use, or sell anything it may describe, in
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 | whole, or in part, without the specific written consent of
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 | Texas Instruments Berlin, AG.
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 +-----------------------------------------------------------------------------
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 | Purpose : Type definitions and prototypes for routing.
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 +-----------------------------------------------------------------------------
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 #ifndef __ROUTE_H__
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 #define __ROUTE_H__
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 #define RT_DUPLICATE 0x01
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 #define RT_REDIRECT 0x02
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 #define RT_DESTROY 0x04
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 #define RT_COMMAND_MASK (RT_DUPLICATE|RT_REDIRECT|RT_DESTROY)
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 #define RT_CLEAR_ENTRY 0x10
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 #define RT_ALL_DESTINATION 0x20
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 typedef enum { RT_STORE = 1, RT_DELETE } RT_ENTRY;
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 typedef enum { RT_PRIMITIVE_TYPE = 1, RT_SIGNAL_TYPE, RT_TIMEOUT_TYPE } RT_MESSAGE_TYPE;
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 typedef struct _T_ROUTING_ENTRY
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 {
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 T_HANDLE SndTaskHandle; /* sender of a mesage */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 T_HANDLE OldDestComHandle; /* original destination queue handle */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 T_HANDLE OldDestTaskHandle;/* original destination task handle */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 T_HANDLE NewDestComHandle; /* new destination queue handle */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 RT_MESSAGE_TYPE MsgType; /* message type (primitive,timeout,signal) */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 ULONG opcStatus; /* mask for messages to be routed */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 ULONG opcMask; /* relevant bits in opcStatus */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 int Command; /* redirect/duplicate */
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 char ExtDest[RESOURCE_NAMELEN];
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 struct _T_ROUTING_ENTRY * pNextEntry;
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 struct _T_ROUTING_ENTRY * pPrevEntry;
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 } T_FRM_ROUTING_TABLE_ENTRY;
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 #define RT_OK 0
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 #define RT_ERROR (-1)
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 #define RT_NO_MEM (-2)
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 #define ROUTE_ALL (T_HANDLE)0xFFFF
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 #define RT_CLEAR_TOKEN "CLEAR"
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 #define RT_ALL_TOKEN "ALL"
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 #define RT_SIGNAL_TOKEN "S"
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 #define RT_TIMEOUT_TOKEN "T"
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 GLOBAL SHORT rt_Init (void);
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 GLOBAL SHORT rt_RoutingModify ( T_HANDLE TaskHandle, char *Command, char *String);
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 GLOBAL SHORT rt_ConnectRoute ( T_HANDLE TaskHandle, char *Destination);
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 GLOBAL SHORT rt_DisconnectRoute ( T_HANDLE TaskHandle, char *Destination);
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
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 );
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 GLOBAL SHORT rt_RouteRead ( T_HANDLE TaskHandle, char *token );
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
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 ) ;
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 GLOBAL SHORT rt_isolate_entity ( T_HANDLE caller, char *entity );
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
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 );
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
1ea54a97e831 src/gpf: import of Magnetite src/gpf3
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 #endif /* ROUTE_H */