Mercurial > flash_v2
annotate packages/hal/common/current/include/hal_if.h @ 130:eb9fd8c04db3 ecos-sw-2000-10-23
Merge from eCos master repository on 2000-10-23-17:01:37-BST
| author | jlarmour |
|---|---|
| date | Mon, 23 Oct 2000 17:10:57 +0000 |
| parents | 6bd9d475ed4b |
| children | 289bf90c6a9b |
| rev | line source |
|---|---|
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
1 #ifndef CYGONCE_HAL_HAL_IF_H |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
2 #define CYGONCE_HAL_HAL_IF_H |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
3 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
4 //============================================================================= |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
5 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
6 // hal_if.h |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
7 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
8 // HAL header for ROM/RAM calling interface. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
9 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
10 //============================================================================= |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
11 //####COPYRIGHTBEGIN#### |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
12 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
13 // ------------------------------------------- |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
14 // The contents of this file are subject to the Red Hat eCos Public License |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
15 // Version 1.1 (the "License"); you may not use this file except in |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
16 // compliance with the License. You may obtain a copy of the License at |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
17 // http://www.redhat.com/ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
18 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
19 // Software distributed under the License is distributed on an "AS IS" |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
20 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
21 // License for the specific language governing rights and limitations under |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
22 // the License. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
23 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
24 // The Original Code is eCos - Embedded Configurable Operating System, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
25 // released September 30, 1998. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
26 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
27 // The Initial Developer of the Original Code is Red Hat. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
28 // Portions created by Red Hat are |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
29 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
30 // All Rights Reserved. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
31 // ------------------------------------------- |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
32 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
33 //####COPYRIGHTEND#### |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
34 //============================================================================= |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
35 //#####DESCRIPTIONBEGIN#### |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
36 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
37 // Author(s): jskov |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
38 // Contributors:jskov |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
39 // Date: 2000-06-07 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
40 // Purpose: HAL RAM/ROM calling interface |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
41 // Description: ROM/RAM calling interface table definitions. The layout is a |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
42 // combination of libbsp and vectors already in use by some |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
43 // eCos platforms. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
44 // Usage: #include <cyg/hal/hal_if.h> |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
45 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
46 //####DESCRIPTIONEND#### |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
47 // |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
48 //============================================================================= |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
49 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
50 #include <cyg/infra/cyg_type.h> // types & externC |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
51 #include <cyg/hal/dbg-threads-api.h> |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
52 #include <cyg/hal/dbg-thread-syscall.h> |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
53 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
54 #include <stdarg.h> |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
55 |
|
103
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
56 #ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
57 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
58 //-------------------------------------------------------------------------- |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
107
diff
changeset
|
59 #ifndef _BSP_HANDLER_T_DEFINED |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
107
diff
changeset
|
60 #define _BSP_HANDLER_T_DEFINED |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
61 typedef int (*bsp_handler_t)(int __irq_nr, void *__regs); |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
107
diff
changeset
|
62 #endif // _BSP_HANDLER_T_DEFINED |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
63 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
64 //-------------------------------------------------------------------------- |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
65 // Communication interface table. CYGNUM_CALL_IF_CONSOLE_PROCS and |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
66 // CYGNUM_CALL_IF_DEBUG_PROCS point to instances (possibly the same) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
67 // of this table. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
68 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
69 typedef enum { |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
70 /* |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
71 * For serial ports, the control function may be used to set and get the |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
72 * current baud rate. Usage: |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
73 * |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
74 * err = (*__control)(COMMCTL_SETBAUD, int bits_per_second); |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
75 * err => Zero if successful, -1 if error. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
76 * |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
77 * baud = (*__control)(COMMCTL_GETBAUD); |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
78 * baud => -1 if error, current baud otherwise. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
79 */ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
80 __COMMCTL_SETBAUD=0, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
81 __COMMCTL_GETBAUD, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
82 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
83 /* |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
84 * Install and remove debugger interrupt handlers. These are the receiver |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
85 * interrupt routines which are used to change control from a running |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
86 * program to the debugger stub. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
87 */ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
88 __COMMCTL_INSTALL_DBG_ISR, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
89 __COMMCTL_REMOVE_DBG_ISR, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
90 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
91 /* |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
92 * Disable comm port interrupt. Returns TRUE if interrupt was enabled, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
93 * FALSE otherwise. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
94 */ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
95 __COMMCTL_IRQ_DISABLE, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
96 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
97 /* |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
98 * Enable comm port interrupt. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
99 */ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
100 __COMMCTL_IRQ_ENABLE, |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
101 |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
102 /* |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
103 * Returns the number of the interrupt vector used by the debug |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
104 * interrupt handler. |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
105 */ |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
106 __COMMCTL_DBG_ISR_VECTOR, |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
107 |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
108 /* |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
109 * Returns the current timeout value and sets a new timeout. |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
110 * Timeout resolution is in milliseconds. |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
111 * old_timeout = (*__control)(__COMMCTL_SET_TIMEOUT, |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
112 * cyg_int32 new_timeout); |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
113 */ |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
114 __COMMCTL_SET_TIMEOUT, |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
115 } __comm_control_cmd_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
116 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
117 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
118 #define CYGNUM_COMM_IF_CH_DATA 0 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
119 #define CYGNUM_COMM_IF_WRITE 1 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
120 #define CYGNUM_COMM_IF_READ 2 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
121 #define CYGNUM_COMM_IF_PUTC 3 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
122 #define CYGNUM_COMM_IF_GETC 4 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
123 #define CYGNUM_COMM_IF_CONTROL 5 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
124 #define CYGNUM_COMM_IF_DBG_ISR 6 |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
125 #define CYGNUM_COMM_IF_GETC_TIMEOUT 7 |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
126 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
127 #define CYGNUM_COMM_IF_TABLE_SIZE 8 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
128 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
129 typedef volatile CYG_ADDRWORD hal_virtual_comm_table_t[CYGNUM_COMM_IF_TABLE_SIZE]; |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
130 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
131 // The below is a (messy) attempt at adding some type safety to the |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
132 // above array. At the same time, the accessors allow the |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
133 // implementation to be easily changed in the future (both tag->data |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
134 // table and structure implementations have been suggested). |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
135 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
136 typedef void* __comm_if_ch_data_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
137 #define CYGACC_COMM_IF_CH_DATA(_t_) \ |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
138 ((__comm_if_ch_data_t)((_t_)[CYGNUM_COMM_IF_CH_DATA])) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
139 #define CYGACC_COMM_IF_CH_DATA_SET(_t_, _x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
140 (_t_)[CYGNUM_COMM_IF_CH_DATA]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
141 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
142 typedef void (*__comm_if_write_t)(void* __ch_data, const cyg_uint8* __buf, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
143 cyg_uint32 __len); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
144 #define CYGACC_COMM_IF_WRITE(_t_, _b_, _l_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
145 ((__comm_if_write_t)(((_t_))[CYGNUM_COMM_IF_WRITE]))(CYGACC_COMM_IF_CH_DATA(_t_), (_b_), (_l_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
146 #define CYGACC_COMM_IF_WRITE_SET(_t_, _x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
147 (_t_)[CYGNUM_COMM_IF_WRITE]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
148 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
149 typedef int (*__comm_if_read_t)(void* __ch_data, cyg_uint8* __buf, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
150 cyg_uint32 __len); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
151 #define CYGACC_COMM_IF_READ(_t_, _b_, _l_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
152 ((__comm_if_read_t)(((_t_))[CYGNUM_COMM_IF_READ]))(CYGACC_COMM_IF_CH_DATA(_t_), (_b_), (_l_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
153 #define CYGACC_COMM_IF_READ_SET(_t_, _x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
154 (_t_)[CYGNUM_COMM_IF_READ]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
155 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
156 typedef void (*__comm_if_putc_t)(void* __ch_data, cyg_uint8 __ch); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
157 #define CYGACC_COMM_IF_PUTC(_t_, _c_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
158 ((__comm_if_putc_t)(((_t_))[CYGNUM_COMM_IF_PUTC]))(CYGACC_COMM_IF_CH_DATA(_t_), (_c_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
159 #define CYGACC_COMM_IF_PUTC_SET(_t_, _x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
160 (_t_)[CYGNUM_COMM_IF_PUTC]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
161 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
162 typedef cyg_uint8 (*__comm_if_getc_t)(void* __ch_data); |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
163 #define CYGACC_COMM_IF_GETC(_t_) \ |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
164 ((__comm_if_getc_t)((_t_)[CYGNUM_COMM_IF_GETC]))(CYGACC_COMM_IF_CH_DATA(_t_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
165 #define CYGACC_COMM_IF_GETC_SET(_t_, _x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
166 (_t_)[CYGNUM_COMM_IF_GETC]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
167 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
168 typedef int (*__comm_if_control_t)(void *__ch_data, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
169 __comm_control_cmd_t __func, ...); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
170 #define CYGACC_COMM_IF_CONTROL(_t_, args...) \ |
|
121
6bd9d475ed4b
Merge from eCos master repository on 2000-09-04-20:50:20-BST
jlarmour
parents:
119
diff
changeset
|
171 ((__comm_if_control_t)(((_t_))[CYGNUM_COMM_IF_CONTROL]))(CYGACC_COMM_IF_CH_DATA(_t_), args) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
172 #define CYGACC_COMM_IF_CONTROL_SET(_t_, _x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
173 (_t_)[CYGNUM_COMM_IF_CONTROL]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
174 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
175 typedef int (*__comm_if_dbg_isr_t)(void *__ch_data, |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
176 int* __ctrlc, CYG_ADDRWORD __vector, |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
177 CYG_ADDRWORD __data); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
178 #define CYGACC_COMM_IF_DBG_ISR(_t_, _c_, _v_, _d_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
179 ((__comm_if_dbg_isr_t)(((_t_))[CYGNUM_COMM_IF_DBG_ISR]))(CYGACC_COMM_IF_CH_DATA(_t_), (_c_), (_v_), (_d_)) |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
180 #define CYGACC_COMM_IF_DBG_ISR_SET(_t_, _x_) \ |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
181 (_t_)[CYGNUM_COMM_IF_DBG_ISR]=(CYG_ADDRWORD)(_x_) |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
182 |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
183 typedef cyg_bool (*__comm_if_getc_timeout_t)(void* __ch_data, cyg_uint8* __ch); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
184 #define CYGACC_COMM_IF_GETC_TIMEOUT(_t_, _c_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
185 ((__comm_if_getc_timeout_t)(((_t_))[CYGNUM_COMM_IF_GETC_TIMEOUT]))(CYGACC_COMM_IF_CH_DATA(_t_), (_c_)) |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
186 #define CYGACC_COMM_IF_GETC_TIMEOUT_SET(_t_, _x_) \ |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
187 (_t_)[CYGNUM_COMM_IF_GETC_TIMEOUT]=(CYG_ADDRWORD)(_x_) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
188 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
189 //-------------------------------------------------------------------------- |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
190 // Main calling interface table. Will be assigned a location by the |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
191 // linker script. Both ROM and RAM startup applications will know about |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
192 // the location. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
193 #define CYGNUM_CALL_IF_VERSION 0 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
194 #define CYGNUM_CALL_IF_ICTRL_TABLE 1 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
195 #define CYGNUM_CALL_IF_EXC_TABLE 2 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
196 #define CYGNUM_CALL_IF_DBG_VECTOR 3 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
197 #define CYGNUM_CALL_IF_KILL_VECTOR 4 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
198 #define CYGNUM_CALL_IF_CONSOLE_PROCS 5 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
199 #define CYGNUM_CALL_IF_DEBUG_PROCS 6 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
200 #define CYGNUM_CALL_IF_FLUSH_DCACHE 7 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
201 #define CYGNUM_CALL_IF_FLUSH_ICACHE 8 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
202 #define CYGNUM_CALL_IF_CPU_DATA 9 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
203 #define CYGNUM_CALL_IF_BOARD_DATA 10 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
204 #define CYGNUM_CALL_IF_SYSINFO 11 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
205 #define CYGNUM_CALL_IF_SET_DEBUG_COMM 12 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
206 #define CYGNUM_CALL_IF_SET_CONSOLE_COMM 13 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
207 #define CYGNUM_CALL_IF_SET_SERIAL_BAUD 14 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
112
diff
changeset
|
208 #define CYGNUM_CALL_IF_DBG_SYSCALL 15 |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
209 #define CYGNUM_CALL_IF_RESET 16 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
210 #define CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG 17 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
211 #define CYGNUM_CALL_IF_DELAY_US 18 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
112
diff
changeset
|
212 #define CYGNUM_CALL_IF_DBG_DATA 19 |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
213 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
112
diff
changeset
|
214 #define CYGNUM_CALL_IF_LAST_ENTRY CYGNUM_CALL_IF_DBG_DATA |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
215 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
216 #define CYGNUM_CALL_IF_INSTALL_BPT_FN 35 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
217 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
218 #define CYGNUM_CALL_IF_TABLE_SIZE 64 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
219 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
220 externC volatile CYG_ADDRWORD hal_virtual_vector_table[CYGNUM_CALL_IF_TABLE_SIZE]; |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
221 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
222 // Table version is simply the number of the last active entry in the table |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
223 // (except INSTALL_BPT_FN since it's so high). |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
224 #define CYGNUM_CALL_IF_TABLE_VERSION CYGNUM_CALL_IF_LAST_ENTRY |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
225 |
|
103
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
226 |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
227 |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
228 // These are special debug/console procs IDs |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
229 // QUERY_CURRENT will cause the ID of the currently selected proc ID to be |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
230 // returned. |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
231 // EMPTY this is the ID used for an empty procs table (i.e, NULL |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
232 // pointer) |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
233 // MANGLER selects the procs space reserved for the console mangler |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
234 // allowing the application to temporarily disable mangling |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
235 // or temporarily switch in different console procs. |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
236 #define CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT -1 |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
237 #define CYGNUM_CALL_IF_SET_COMM_ID_EMPTY -2 |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
238 #define CYGNUM_CALL_IF_SET_COMM_ID_MANGLER -3 |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
239 |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
240 // The below is a (messy) attempt at adding some type safety to the |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
241 // above array. At the same time, the accessors allow the |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
242 // implementation to be easily changed in the future (both tag->data |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
243 // table and structure implementations have been suggested). |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
244 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
245 typedef int __call_if_version_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
246 #define CYGACC_CALL_IF_VERSION() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
247 ((__call_if_version_t)hal_virtual_vector_table[CYGNUM_CALL_IF_VERSION]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
248 #define CYGACC_CALL_IF_VERSION_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
249 hal_virtual_vector_table[CYGNUM_CALL_IF_VERSION]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
250 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
251 typedef void* __call_if_ictrl_table_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
252 #define CYGACC_CALL_IF_ICTRL_TABLE() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
253 ((__call_if_ictrl_table_t)hal_virtual_vector_table[CYGNUM_CALL_IF_ICTRL_TABLE]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
254 #define CYGACC_CALL_IF_ICTRL_TABLE_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
255 hal_virtual_vector_table[CYGNUM_CALL_IF_ICTRL_TABLE]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
256 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
257 typedef void* __call_if_exc_table_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
258 #define CYGACC_CALL_IF_EXC_TABLE() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
259 ((__call_if_exc_table_t)hal_virtual_vector_table[CYGNUM_CALL_IF_EXC_TABLE]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
260 #define CYGACC_CALL_IF_EXC_TABLE_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
261 hal_virtual_vector_table[CYGNUM_CALL_IF_EXC_TABLE]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
262 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
263 typedef bsp_handler_t *__call_if_dbg_vector_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
264 #define CYGACC_CALL_IF_DBG_VECTOR() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
265 ((__call_if_dbg_vector_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_VECTOR]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
266 #define CYGACC_CALL_IF_DBG_VECTOR_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
267 hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_VECTOR]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
268 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
269 typedef bsp_handler_t __call_if_kill_vector_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
270 #define CYGACC_CALL_IF_KILL_VECTOR() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
271 ((__call_if_kill_vector_t)hal_virtual_vector_table[CYGNUM_CALL_IF_KILL_VECTOR]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
272 #define CYGACC_CALL_IF_KILL_VECTOR_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
273 hal_virtual_vector_table[CYGNUM_CALL_IF_KILL_VECTOR]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
274 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
275 typedef hal_virtual_comm_table_t *__call_if_console_procs_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
276 #define CYGACC_CALL_IF_CONSOLE_PROCS() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
277 ((__call_if_console_procs_t)hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_PROCS]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
278 #define CYGACC_CALL_IF_CONSOLE_PROCS_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
279 hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_PROCS]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
280 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
281 typedef hal_virtual_comm_table_t *__call_if_debug_procs_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
282 #define CYGACC_CALL_IF_DEBUG_PROCS() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
283 ((__call_if_debug_procs_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DEBUG_PROCS]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
284 #define CYGACC_CALL_IF_DEBUG_PROCS_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
285 hal_virtual_vector_table[CYGNUM_CALL_IF_DEBUG_PROCS]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
286 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
287 typedef void (*__call_if_flush_dcache_t)(void *__p, int __nbytes); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
288 #define CYGACC_CALL_IF_FLUSH_DCACHE(_p_, _n_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
289 ((__call_if_flush_dcache_t)hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_DCACHE])((_p_), (_n_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
290 #define CYGACC_CALL_IF_FLUSH_DCACHE_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
291 hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_DCACHE]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
292 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
293 typedef void (*__call_if_flush_icache_t)(void *__p, int __nbytes); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
294 #define CYGACC_CALL_IF_FLUSH_ICACHE(_p_, _n_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
295 ((__call_if_flush_icache_t)hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_ICACHE])((_p_), (_n_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
296 #define CYGACC_CALL_IF_FLUSH_ICACHE_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
297 hal_virtual_vector_table[CYGNUM_CALL_IF_FLUSH_ICACHE]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
298 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
299 typedef void* __call_if_cpu_data_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
300 #define CYGACC_CALL_IF_CPU_DATA() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
301 ((__call_if_cpu_data_t)hal_virtual_vector_table[CYGNUM_CALL_IF_CPU_DATA]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
302 #define CYGACC_CALL_IF_CPU_DATA_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
303 hal_virtual_vector_table[CYGNUM_CALL_IF_CPU_DATA]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
304 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
305 typedef void* __call_if_board_data_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
306 #define CYGACC_CALL_IF_BOARD_DATA() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
307 ((__call_if_board_data_t)hal_virtual_vector_table[CYGNUM_CALL_IF_BOARD_DATA]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
308 #define CYGACC_CALL_IF_BOARD_DATA_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
309 hal_virtual_vector_table[CYGNUM_CALL_IF_BOARD_DATA]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
310 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
311 typedef int (*__call_if_sysinfo_t)(int __id, void* __ap); |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
312 //typedef int (*__call_if_sysinfo_t)(enum bsp_info_id __id, va_list __ap); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
313 #define CYGACC_CALL_IF_SYSINFO(_i_, _a_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
314 ((__call_if_sysinfo_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SYSINFO])((_i_), (_a_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
315 #define CYGACC_CALL_IF_SYSINFO_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
316 hal_virtual_vector_table[CYGNUM_CALL_IF_SYSINFO]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
317 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
318 typedef int (*__call_if_set_debug_comm_t)(int __comm_id); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
319 #define CYGACC_CALL_IF_SET_DEBUG_COMM(_i_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
320 ((__call_if_set_debug_comm_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SET_DEBUG_COMM])((_i_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
321 #define CYGACC_CALL_IF_SET_DEBUG_COMM_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
322 hal_virtual_vector_table[CYGNUM_CALL_IF_SET_DEBUG_COMM]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
323 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
324 typedef int (*__call_if_set_console_comm_t)(int __comm_id); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
325 #define CYGACC_CALL_IF_SET_CONSOLE_COMM(_i_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
326 ((__call_if_set_console_comm_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SET_CONSOLE_COMM])((_i_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
327 #define CYGACC_CALL_IF_SET_CONSOLE_COMM_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
328 hal_virtual_vector_table[CYGNUM_CALL_IF_SET_CONSOLE_COMM]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
329 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
330 typedef int (*__call_if_set_serial_baud_t)(int __comm_id, int __baud); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
331 #define CYGACC_CALL_IF_SET_SERIAL_BAUD(_i_, _b_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
332 ((__call_if_set_serial_baud_t)hal_virtual_vector_table[CYGNUM_CALL_IF_SET_SERIAL_BAUD])((_i_), (_b_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
333 #define CYGACC_CALL_IF_SET_SERIAL_BAUD_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
334 hal_virtual_vector_table[CYGNUM_CALL_IF_SET_SERIAL_BAUD]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
335 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
336 typedef void* __call_if_dbg_data_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
337 #define CYGACC_CALL_IF_DBG_DATA() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
338 ((__call_if_dbg_data_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_DATA]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
339 #define CYGACC_CALL_IF_DBG_DATA_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
340 hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_DATA]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
341 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
342 typedef int (*__call_if_dbg_syscall_t) (enum dbg_syscall_ids id, |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
343 union dbg_thread_syscall_parms *p ); |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
344 #define CYGACC_CALL_IF_DBG_SYSCALL() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
345 ((__call_if_dbg_syscall_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_SYSCALL]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
346 #define CYGACC_CALL_IF_DBG_SYSCALL_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
347 hal_virtual_vector_table[CYGNUM_CALL_IF_DBG_SYSCALL]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
348 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
349 typedef void (*__call_if_reset_t)(void); |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
350 #define CYGACC_CALL_IF_RESET() \ |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
351 ((__call_if_reset_t)hal_virtual_vector_table[CYGNUM_CALL_IF_RESET])() |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
352 #define CYGACC_CALL_IF_RESET_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
353 hal_virtual_vector_table[CYGNUM_CALL_IF_RESET]=(CYG_ADDRWORD)(_x_) |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
354 #define CYGACC_CALL_IF_RESET_GET() \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
355 ((__call_if_reset_t)hal_virtual_vector_table[CYGNUM_CALL_IF_RESET]) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
356 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
357 typedef int __call_if_console_interrupt_flag_t; |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
358 #define CYGACC_CALL_IF_CONSOLE_INTERRUPT_FLAG() \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
359 ((__call_if_console_interrupt_flag_t)hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG]) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
360 #define CYGACC_CALL_IF_CONSOLE_INTERRUPT_FLAG_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
361 hal_virtual_vector_table[CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
362 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
363 typedef void (*__call_if_delay_us_t)(cyg_int32 usecs); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
364 #define CYGACC_CALL_IF_DELAY_US(_u_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
365 ((__call_if_delay_us_t)hal_virtual_vector_table[CYGNUM_CALL_IF_DELAY_US])((_u_)) |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
366 #define CYGACC_CALL_IF_DELAY_US_SET(_x_) \ |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
367 hal_virtual_vector_table[CYGNUM_CALL_IF_DELAY_US]=(CYG_ADDRWORD)(_x_) |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
368 |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
369 typedef void (*__call_if_install_bpt_fn_t)(void *__epc); |
|
107
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
370 #define CYGACC_CALL_IF_INSTALL_BPT_FN(_e_) \ |
|
7f461c3a372c
Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents:
105
diff
changeset
|
371 ((__call_if_install_bpt_fn_t)hal_virtual_vector_table[CYGNUM_CALL_IF_INSTALL_BPT_FN])((_e_)) |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
372 #define CYGACC_CALL_IF_INSTALL_BPT_FN_SET(_x_) \ |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
373 hal_virtual_vector_table[CYGNUM_CALL_IF_INSTALL_BPT_FN]=(CYG_ADDRWORD)(_x_) |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
374 |
|
103
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
375 //-------------------------------------------------------------------------- |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
376 // Diag wrappers. |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
377 externC void hal_if_diag_init(void); |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
378 externC void hal_if_diag_write_char(char c); |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
379 externC void hal_if_diag_read_char(char *c); |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
380 |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
381 //-------------------------------------------------------------------------- |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
382 // Ctrl-c support. |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
383 externC cyg_uint32 hal_ctrlc_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data); |
|
119
77cec8369160
Merge from eCos master repository on 2000-09-01-07:47:03-BST
jlarmour
parents:
115
diff
changeset
|
384 externC cyg_bool hal_ctrlc_check(CYG_ADDRWORD vector, CYG_ADDRWORD data); |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
385 |
|
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
386 #define HAL_CTRLC_ISR hal_ctrlc_isr |
|
119
77cec8369160
Merge from eCos master repository on 2000-09-01-07:47:03-BST
jlarmour
parents:
115
diff
changeset
|
387 #define HAL_CTRLC_CHECK hal_ctrlc_check |
|
105
5a0cc6c243a9
Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents:
103
diff
changeset
|
388 |
|
103
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
389 #endif // CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
390 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
391 //-------------------------------------------------------------------------- |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
392 // Functions provided by the HAL interface. |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
393 externC void hal_if_init(void); |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
394 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
395 //-------------------------------------------------------------------------- |
|
103
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
396 // Configuration control for the interface services. |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
397 // When this is set, code should initialize the vector table wherever |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
398 // appropriate. |
|
130
eb9fd8c04db3
Merge from eCos master repository on 2000-10-23-17:01:37-BST
jlarmour
parents:
121
diff
changeset
|
399 #if !defined(CYG_HAL_STARTUP_RAM) || \ |
|
103
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
400 ( defined(CYG_HAL_STARTUP_RAM) && \ |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
401 !defined(CYGSEM_HAL_USE_ROM_MONITOR)) |
|
95f3e12a6327
Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents:
101
diff
changeset
|
402 # define CYGPRI_HAL_IMPLEMENTS_IF_SERVICES |
|
101
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
403 #endif |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
404 |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
405 //----------------------------------------------------------------------------- |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
406 #endif // CYGONCE_HAL_HAL_IF_H |
|
c37d3a9e1b28
Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff
changeset
|
407 // End of hal_if.h |
