annotate packages/hal/common/current/include/hal_if.h @ 151:25e238959bae

Merge from eCos master repository on 2001-02-12-23:44:24-GMT
author jlarmour
date Tue, 13 Feb 2001 01:23:16 +0000
parents 289bf90c6a9b
children b939e9cada46
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
29 // Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
101
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
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
58 // Architecture/var/platform may override the accessor macros.
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
59 #include <cyg/hal/hal_arch.h>
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
60
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
61 //--------------------------------------------------------------------------
112
02ea4320376c Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents: 107
diff changeset
62 #ifndef _BSP_HANDLER_T_DEFINED
02ea4320376c Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents: 107
diff changeset
63 #define _BSP_HANDLER_T_DEFINED
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
64 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
65 #endif // _BSP_HANDLER_T_DEFINED
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
66
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
67 //--------------------------------------------------------------------------
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
68 // 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
69 // 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
70 // of this table.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
71
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
72 typedef enum {
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 * 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
75 * current baud rate. Usage:
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 * 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
78 * 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
79 *
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
80 * baud = (*__control)(COMMCTL_GETBAUD);
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
81 * 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
82 */
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
83 __COMMCTL_SETBAUD=0,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
84 __COMMCTL_GETBAUD,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
85
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
86 /*
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
87 * 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
88 * 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
89 * program to the debugger stub.
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 __COMMCTL_INSTALL_DBG_ISR,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
92 __COMMCTL_REMOVE_DBG_ISR,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
93
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 * 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
96 * FALSE otherwise.
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 __COMMCTL_IRQ_DISABLE,
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 /*
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
101 * Enable comm port interrupt.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
102 */
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
103 __COMMCTL_IRQ_ENABLE,
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
104
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 * 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
107 * interrupt handler.
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 __COMMCTL_DBG_ISR_VECTOR,
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
110
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
111 /*
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
112 * 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
113 * Timeout resolution is in milliseconds.
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
114 * 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
115 * cyg_int32 new_timeout);
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
116 */
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
117 __COMMCTL_SET_TIMEOUT,
138
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
118
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
119 /*
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
120 * Forces driver to send all characters which may be buffered in
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
121 * the driver. This only flushes the driver buffers, not necessarily
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
122 * any hardware FIFO, etc.
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
123 */
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
124 __COMMCTL_FLUSH_OUTPUT,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
125
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
126 } __comm_control_cmd_t;
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
127
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
128
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
129 #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
130 #define CYGNUM_COMM_IF_WRITE 1
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
131 #define CYGNUM_COMM_IF_READ 2
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
132 #define CYGNUM_COMM_IF_PUTC 3
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
133 #define CYGNUM_COMM_IF_GETC 4
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
134 #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
135 #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
136 #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
137
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
138 #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
139
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
140 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
141
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
142 // 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
143 // 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
144 // 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
145 // 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
146
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
147 typedef void* __comm_if_ch_data_t;
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
148 typedef void (*__comm_if_write_t)(void* __ch_data, const cyg_uint8* __buf,
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
149 cyg_uint32 __len);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
150 typedef int (*__comm_if_read_t)(void* __ch_data, cyg_uint8* __buf,
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
151 cyg_uint32 __len);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
152 typedef void (*__comm_if_putc_t)(void* __ch_data, cyg_uint8 __ch);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
153 typedef cyg_uint8 (*__comm_if_getc_t)(void* __ch_data);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
154 typedef int (*__comm_if_control_t)(void *__ch_data,
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
155 __comm_control_cmd_t __func, ...);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
156 typedef int (*__comm_if_dbg_isr_t)(void *__ch_data,
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
157 int* __ctrlc, CYG_ADDRWORD __vector,
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
158 CYG_ADDRWORD __data);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
159 typedef cyg_bool (*__comm_if_getc_timeout_t)(void* __ch_data, cyg_uint8* __ch);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
160
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
161 #ifndef CYGACC_COMM_IF_DEFINED
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
162 #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
163 ((__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
164 #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
165 (_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
166
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
167 #define CYGACC_COMM_IF_WRITE(_t_, _b_, _l_) \
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
168 ((__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
169 #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
170 (_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
171
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
172 #define CYGACC_COMM_IF_READ(_t_, _b_, _l_) \
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
173 ((__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
174 #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
175 (_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
176
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
177 #define CYGACC_COMM_IF_PUTC(_t_, _c_) \
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
178 ((__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
179 #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
180 (_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
181
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
182 #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
183 ((__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
184 #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
185 (_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
186
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
187 #define CYGACC_COMM_IF_CONTROL(_t_, args...) \
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
188 ((__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
189 #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
190 (_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
191
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
192 #define CYGACC_COMM_IF_DBG_ISR(_t_, _c_, _v_, _d_) \
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
193 ((__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
194 #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
195 (_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
196
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
197 #define CYGACC_COMM_IF_GETC_TIMEOUT(_t_, _c_) \
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
198 ((__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
199 #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
200 (_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
201
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
202 #endif // CYGACC_COMM_IF_DEFINED
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
203
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
204 //--------------------------------------------------------------------------
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
205 // 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
206 // 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
207 // the location.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
208 #define CYGNUM_CALL_IF_VERSION 0
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
209 #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
210 #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
211 #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
212 #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
213 #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
214 #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
215 #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
216 #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
217 #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
218 #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
219 #define CYGNUM_CALL_IF_SYSINFO 11
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
220 #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
221 #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
222 #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
223 #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
224 #define CYGNUM_CALL_IF_RESET 16
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
225 #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
226 #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
227 #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
228
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 112
diff changeset
229 #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
230
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
231 #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
232
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
233 #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
234
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
235 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
236
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
237 // Table version contains version information for both the CALL table
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
238 // itself (the number of the last active entry in the table), and the
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
239 // COMM table (the size of the table).
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
240 #define CYGNUM_CALL_IF_TABLE_VERSION_CALL CYGNUM_CALL_IF_LAST_ENTRY
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
241 #define CYGNUM_CALL_IF_TABLE_VERSION_CALL_HACK (CYGNUM_CALL_IF_TABLE_SIZE+1)
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
242 #define CYGNUM_CALL_IF_TABLE_VERSION_CALL_MAX CYGNUM_CALL_IF_TABLE_SIZE
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
243 #define CYGNUM_CALL_IF_TABLE_VERSION_COMM CYGNUM_COMM_IF_TABLE_SIZE
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
244 #define CYGNUM_CALL_IF_TABLE_VERSION_CALL_MASK 0x0000ffff
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
245 #define CYGNUM_CALL_IF_TABLE_VERSION_COMM_MASK 0xffff0000
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
246 #define CYGNUM_CALL_IF_TABLE_VERSION_COMM_shift 16
103
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
247
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
248
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
249 // 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
250 // 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
251 // returned.
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
252 // 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
253 // pointer)
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
254 // 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
255 // 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
256 // 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
257 #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
258 #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
259 #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
260
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
261 // 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
262 // 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
263 // 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
264 // 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
265
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
266 typedef int __call_if_version_t;
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
267 typedef void* __call_if_ictrl_table_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
268 typedef void* __call_if_exc_table_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
269 typedef bsp_handler_t *__call_if_dbg_vector_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
270 typedef bsp_handler_t __call_if_kill_vector_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
271 typedef hal_virtual_comm_table_t *__call_if_console_procs_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
272 typedef hal_virtual_comm_table_t *__call_if_debug_procs_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
273 typedef void (*__call_if_flush_dcache_t)(void *__p, int __nbytes);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
274 typedef void (*__call_if_flush_icache_t)(void *__p, int __nbytes);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
275 typedef void* __call_if_cpu_data_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
276 typedef void* __call_if_board_data_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
277 typedef int (*__call_if_sysinfo_t)(int __id, void* __ap);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
278 //typedef int (*__call_if_sysinfo_t)(enum bsp_info_id __id, va_list __ap);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
279 typedef int (*__call_if_set_debug_comm_t)(int __comm_id);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
280 typedef int (*__call_if_set_console_comm_t)(int __comm_id);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
281 typedef int (*__call_if_set_serial_baud_t)(int __comm_id, int __baud);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
282 typedef void* __call_if_dbg_data_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
283 typedef int (*__call_if_dbg_syscall_t) (enum dbg_syscall_ids id,
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
284 union dbg_thread_syscall_parms *p );
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
285 typedef void (*__call_if_reset_t)(void);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
286 typedef int __call_if_console_interrupt_flag_t;
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
287 typedef void (*__call_if_delay_us_t)(cyg_int32 usecs);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
288 typedef void (*__call_if_install_bpt_fn_t)(void *__epc);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
289
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
290 #ifndef CYGACC_CALL_IF_DEFINED
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
291
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
292 #define CYGACC_CALL_IF_VERSION() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
293 ((__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
294 #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
295 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
296
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
297 #define CYGACC_CALL_IF_ICTRL_TABLE() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
298 ((__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
299 #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
300 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
301
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
302 #define CYGACC_CALL_IF_EXC_TABLE() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
303 ((__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
304 #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
305 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
306
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
307 #define CYGACC_CALL_IF_DBG_VECTOR() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
308 ((__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
309 #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
310 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
311
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
312 #define CYGACC_CALL_IF_KILL_VECTOR() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
313 ((__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
314 #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
315 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
316
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
317 #define CYGACC_CALL_IF_CONSOLE_PROCS() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
318 ((__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
319 #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
320 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
321
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
322 #define CYGACC_CALL_IF_DEBUG_PROCS() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
323 ((__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
324 #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
325 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
326
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
327 #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
328 ((__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
329 #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
330 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
331
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
332 #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
333 ((__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
334 #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
335 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
336
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
337 #define CYGACC_CALL_IF_CPU_DATA() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
338 ((__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
339 #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
340 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
341
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
342 #define CYGACC_CALL_IF_BOARD_DATA() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
343 ((__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
344 #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
345 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
346
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
347 #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
348 ((__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
349 #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
350 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
351
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
352 #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
353 ((__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
354 #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
355 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
356
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
357 #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
358 ((__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
359 #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
360 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
361
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
362 #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
363 ((__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
364 #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
365 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
366
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
367 #define CYGACC_CALL_IF_DBG_DATA() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
368 ((__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
369 #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
370 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
371
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
372 #define CYGACC_CALL_IF_DBG_SYSCALL() \
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
373 ((__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
374 #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
375 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
376
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
377 #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
378 ((__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
379 #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
380 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
381 #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
382 ((__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
383
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
384 #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
385 ((__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
386 #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
387 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
388
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
389 #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
390 ((__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
391 #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
392 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
393
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
394 #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
395 ((__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
396 #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
397 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
398
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
399 #endif // CYGACC_CALL_IF_DEFINED
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
400
103
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
401 //--------------------------------------------------------------------------
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
402 // Diag wrappers.
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
403 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
404 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
405 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
406
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
407 //--------------------------------------------------------------------------
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
408 // Ctrl-c support.
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
409 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
410 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
411
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
412 #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
413 #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
414
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
415 #else
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
416
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
417 #if defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT) \
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
418 || defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT)
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
419 // Then other code might invoke this macro
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
420 #define HAL_CTRLC_CHECK(a1,a2) (0) // Nothing, no CTRLC here
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
421 #endif
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
422
103
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
423 #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
424
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
425 //--------------------------------------------------------------------------
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
426 // Functions provided by the HAL interface.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
427 externC void hal_if_init(void);
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
428
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
429 //-----------------------------------------------------------------------------
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
430 #endif // CYGONCE_HAL_HAL_IF_H
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
431 // End of hal_if.h