annotate packages/hal/common/current/include/hal_if.h @ 183:9160a8005d76

Merge from eCos master repository on 2001-09-12-03:52:30-BST
author jlarmour
date Wed, 12 Sep 2001 04:21:13 +0000
parents 391299f9e541
children e0c0827131d1
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
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
61 // Special monitor locking procedures. These are necessary when the monitor
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
62 // and eCos share facilities, e.g. the network hardware.
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
63 #ifdef CYGPKG_NET
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
64 #include <cyg/hal/hal_intr.h>
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
65 #include <cyg/hal/drv_api.h> // cyg_drv_dsr_lock(), etc
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
66 #define _ENTER_MONITOR() \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
67 cyg_uint32 ints; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
68 HAL_DISABLE_INTERRUPTS(ints); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
69 cyg_drv_dsr_lock()
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
70
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
71 #define _EXIT_MONITOR() \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
72 cyg_drv_dsr_unlock(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
73 HAL_RESTORE_INTERRUPTS(ints)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
74 #else // !CYGPKG_NET
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
75 #define _ENTER_MONITOR() CYG_EMPTY_STATEMENT
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
76 #define _EXIT_MONITOR() CYG_EMPTY_STATEMENT
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
77 #endif
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
78
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
79 //--------------------------------------------------------------------------
112
02ea4320376c Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents: 107
diff changeset
80 #ifndef _BSP_HANDLER_T_DEFINED
02ea4320376c Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents: 107
diff changeset
81 #define _BSP_HANDLER_T_DEFINED
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
82 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
83 #endif // _BSP_HANDLER_T_DEFINED
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
84
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 // 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
87 // 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
88 // of this table.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
89
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
90 typedef enum {
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 * 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
93 * current baud rate. Usage:
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 * 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
96 * 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
97 *
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
98 * baud = (*__control)(COMMCTL_GETBAUD);
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
99 * 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
100 */
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
101 __COMMCTL_SETBAUD=0,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
102 __COMMCTL_GETBAUD,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
103
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
104 /*
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
105 * 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
106 * 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
107 * program to the debugger stub.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
108 */
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
109 __COMMCTL_INSTALL_DBG_ISR,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
110 __COMMCTL_REMOVE_DBG_ISR,
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
111
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
112 /*
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
113 * 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
114 * FALSE otherwise.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
115 */
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
116 __COMMCTL_IRQ_DISABLE,
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 /*
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
119 * Enable comm port interrupt.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
120 */
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
121 __COMMCTL_IRQ_ENABLE,
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
122
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
123 /*
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
124 * 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
125 * interrupt handler.
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
126 */
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
127 __COMMCTL_DBG_ISR_VECTOR,
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
128
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
129 /*
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
130 * 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
131 * Timeout resolution is in milliseconds.
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
132 * 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
133 * cyg_int32 new_timeout);
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
134 */
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
135 __COMMCTL_SET_TIMEOUT,
138
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
136
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
137 /*
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
138 * 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
139 * 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
140 * any hardware FIFO, etc.
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
141 */
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
142 __COMMCTL_FLUSH_OUTPUT,
289bf90c6a9b Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents: 130
diff changeset
143
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
144 } __comm_control_cmd_t;
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
145
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 #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
148 #define CYGNUM_COMM_IF_WRITE 1
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
149 #define CYGNUM_COMM_IF_READ 2
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
150 #define CYGNUM_COMM_IF_PUTC 3
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
151 #define CYGNUM_COMM_IF_GETC 4
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
152 #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
153 #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
154 #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
155
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
156 #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
157
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
158 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
159
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
160 // 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
161 // 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
162 // 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
163 // 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
164
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
165 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
166 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
167 cyg_uint32 __len);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
168 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
169 cyg_uint32 __len);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
170 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
171 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
172 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
173 __comm_control_cmd_t __func, ...);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
174 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
175 int* __ctrlc, CYG_ADDRWORD __vector,
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
176 CYG_ADDRWORD __data);
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
177 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
178
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
179 #define __call_COMM0(_n_,_rt_,_t_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
180 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
181 __call_COMM_##_n_(hal_virtual_comm_table_t t) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
182 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
183 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
184 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
185 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
186 res = ((_t_)(t[CYGNUM_COMM_##_n_]))(dp); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
187 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
188 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
189 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
190
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
191 #define __call_voidCOMM(_n_,_rt_,_t_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
192 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
193 __call_COMM_##_n_(hal_virtual_comm_table_t t) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
194 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
195 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
196 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
197 ((_t_)(t[CYGNUM_COMM_##_n_]))(dp); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
198 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
199 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
200
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
201 #define __call_COMM1(_n_,_rt_,_t_,_t1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
202 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
203 __call_COMM_##_n_(hal_virtual_comm_table_t t, _t1_ _p1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
204 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
205 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
206 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
207 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
208 res = ((_t_)(t[CYGNUM_COMM_##_n_]))(dp, _p1_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
209 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
210 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
211 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
212
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
213 #define __call_voidCOMM1(_n_,_rt_,_t_,_t1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
214 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
215 __call_COMM_##_n_(hal_virtual_comm_table_t t, _t1_ _p1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
216 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
217 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
218 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
219 ((_t_)(t[CYGNUM_COMM_##_n_]))(dp, _p1_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
220 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
221 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
222
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
223 #define __call_COMM2(_n_,_rt_,_t_,_t1_,_t2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
224 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
225 __call_COMM_##_n_(hal_virtual_comm_table_t t, _t1_ _p1_, _t2_ _p2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
226 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
227 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
228 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
229 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
230 res = ((_t_)(t[CYGNUM_COMM_##_n_]))(dp, _p1_, _p2_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
231 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
232 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
233 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
234
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
235 #define __call_voidCOMM2(_n_,_rt_,_t_,_t1_,_t2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
236 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
237 __call_COMM_##_n_(hal_virtual_comm_table_t t, _t1_ _p1_, _t2_ _p2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
238 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
239 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
240 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
241 ((_t_)(t[CYGNUM_COMM_##_n_]))(dp, _p1_, _p2_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
242 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
243 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
244
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
245 #define __call_COMM3(_n_,_rt_,_t_,_t1_,_t2_,_t3_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
246 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
247 __call_COMM_##_n_(hal_virtual_comm_table_t t, _t1_ _p1_, _t2_ _p2_, _t3_ _p3_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
248 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
249 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
250 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
251 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
252 res = ((_t_)(t[CYGNUM_COMM_##_n_]))(dp, _p1_, _p2_, _p3_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
253 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
254 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
255 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
256
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
257 #define __call_voidCOMM3(_n_,_rt_,_t_,_t1_,_t2_,_t3_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
258 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
259 __call_COMM_##_n_(hal_virtual_comm_table_t t, _t1_ _p1_, _t2_ _p2_, _t3_ _p3_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
260 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
261 void *dp = (__comm_if_ch_data_t)t[CYGNUM_COMM_IF_CH_DATA]; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
262 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
263 ((_t_)(t[CYGNUM_COMM_##_n_]))(dp, _p1_, _p2_, _p3_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
264 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
265 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
266
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
267 #ifndef CYGACC_COMM_IF_DEFINED
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
268
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
269 #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
270 ((__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
271 #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
272 (_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
273
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
274 __call_voidCOMM2(IF_WRITE, void, __comm_if_write_t, const cyg_uint8 *, cyg_uint32)
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
275 #define CYGACC_COMM_IF_WRITE(_t_, _b_, _l_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
276 __call_COMM_IF_WRITE(_t_, _b_, _l_)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
277 #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
278 (_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
279
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
280 __call_voidCOMM2(IF_READ, void, __comm_if_read_t, cyg_uint8 *, cyg_uint32)
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
281 #define CYGACC_COMM_IF_READ(_t_, _b_, _l_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
282 __call_COMM_IF_READ(_t_, _b_, _l_)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
283 #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
284 (_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
285
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
286 __call_voidCOMM1(IF_PUTC, void, __comm_if_putc_t, cyg_uint8)
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
287 #define CYGACC_COMM_IF_PUTC(_t_, _c_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
288 __call_COMM_IF_PUTC(_t_,_c_)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
289 #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
290 (_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
291
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
292 __call_COMM0(IF_GETC, cyg_uint8, __comm_if_getc_t)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
293 #define CYGACC_COMM_IF_GETC(_t_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
294 __call_COMM_IF_GETC(_t_)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
295 #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
296 (_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
297
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
298 // This macro has not been changed to use inline functions like the
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
299 // others, simply because it uses variable arguments, and the change
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
300 // would break binary compatibility.
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
301 #define CYGACC_COMM_IF_CONTROL(_t_, args...) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
302 ({ int res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
303 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
304 res = ((__comm_if_control_t)((_t_)[CYGNUM_COMM_IF_CONTROL]))(CYGACC_COMM_IF_CH_DATA(_t_), args); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
305 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
306 res;})
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
307 #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
308 (_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
309
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
310 __call_COMM3(IF_DBG_ISR, int, __comm_if_dbg_isr_t, int *, CYG_ADDRWORD, CYG_ADDRWORD)
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
311 #define CYGACC_COMM_IF_DBG_ISR(_t_, _c_, _v_, _d_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
312 __call_COMM_IF_DBG_ISR(_t_, _c_, _v_, _d_)
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
313 #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
314 (_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
315
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
316 __call_COMM1(IF_GETC_TIMEOUT, cyg_bool, __comm_if_getc_timeout_t, cyg_uint8 *)
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
317 #define CYGACC_COMM_IF_GETC_TIMEOUT(_t_, _c_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
318 __call_COMM_IF_GETC_TIMEOUT(_t_, _c_)
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
319 #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
320 (_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
321
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
322 #endif // CYGACC_COMM_IF_DEFINED
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
323
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
324 //--------------------------------------------------------------------------
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
325 // 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
326 // 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
327 // the location.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
328 #define CYGNUM_CALL_IF_VERSION 0
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
329 #define CYGNUM_CALL_IF_available_1 1
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
330 #define CYGNUM_CALL_IF_available_2 2
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
331 #define CYGNUM_CALL_IF_available_3 3
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
332 #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
333 #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
334 #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
335 #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
336 #define CYGNUM_CALL_IF_FLUSH_ICACHE 8
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
337 #define CYGNUM_CALL_IF_available_9 9
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
338 #define CYGNUM_CALL_IF_available_10 10
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
339 #define CYGNUM_CALL_IF_available_11 11
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
340 #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
341 #define CYGNUM_CALL_IF_SET_CONSOLE_COMM 13
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
342 #define CYGNUM_CALL_IF_available_14 14
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 112
diff changeset
343 #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
344 #define CYGNUM_CALL_IF_RESET 16
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
345 #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
346 #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
347 #define CYGNUM_CALL_IF_DBG_DATA 19
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
348 #define CYGNUM_CALL_IF_FLASH_CFG_OP 20
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
349
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
350 #define CYGNUM_CALL_IF_LAST_ENTRY CYGNUM_CALL_IF_FLASH_CFG_OP
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
351
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
352 #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
353
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
354 #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
355
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
356 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
357
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
358 // 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
359 // 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
360 // 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
361 #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
362 #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
363 #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
364 #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
365 #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
366 #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
367 #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
368
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
369
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
370 // 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
371 // 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
372 // returned.
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
373 // 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
374 // pointer)
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
375 // 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
376 // 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
377 // 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
378 #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
379 #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
380 #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
381
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
382 // 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
383 // 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
384 // 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
385 // 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
386
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
387 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
388 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
389 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
390 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
391 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
392 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
393 typedef hal_virtual_comm_table_t *__call_if_debug_procs_t;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
394 typedef void (__call_if_flush_dcache_t)(void *__p, int __nbytes);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
395 typedef void (__call_if_flush_icache_t)(void *__p, int __nbytes);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
396 typedef int (__call_if_set_debug_comm_t)(int __comm_id);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
397 typedef int (__call_if_set_console_comm_t)(int __comm_id);
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
398 typedef void* __call_if_dbg_data_t;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
399 typedef int (__call_if_dbg_syscall_t) (enum dbg_syscall_ids id,
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
400 union dbg_thread_syscall_parms *p );
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
401 typedef void (__call_if_reset_t)(void);
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
402 typedef int __call_if_console_interrupt_flag_t;
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
403 typedef void (__call_if_delay_us_t)(cyg_int32 usecs);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
404 typedef void (__call_if_install_bpt_fn_t)(void *__epc);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
405 typedef cyg_bool (__call_if_flash_cfg_op_fn_t)(int __oper, char *__key,
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
406 void *__val, int __type);
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
407
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
408 #ifndef CYGACC_CALL_IF_DEFINED
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
409
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
410 #define __data_VV(_n_,_tt_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
411 static __inline__ _tt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
412 __call_vv_##_n_(void) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
413 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
414 return ((_tt_)hal_virtual_vector_table[_n_]); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
415 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
416
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
417 #define __call_VV0(_n_,_tt_,_rt_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
418 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
419 __call_vv_##_n_(void) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
420 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
421 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
422 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
423 res = ((_tt_ *)hal_virtual_vector_table[_n_])(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
424 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
425 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
426 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
427
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
428 #define __call_voidVV0(_n_,_tt_,_rt_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
429 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
430 __call_vv_##_n_(void) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
431 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
432 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
433 ((_tt_ *)hal_virtual_vector_table[_n_])(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
434 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
435 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
436
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
437 #define __call_VV1(_n_,_tt_,_rt_,_t1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
438 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
439 __call_vv_##_n_(_t1_ _p1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
440 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
441 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
442 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
443 res = ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
444 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
445 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
446 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
447
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
448 #define __call_voidVV1(_n_,_tt_,_rt_,_t1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
449 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
450 __call_vv_##_n_(_t1_ _p1_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
451 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
452 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
453 ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
454 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
455 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
456
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
457 #define __call_VV2(_n_,_tt_,_rt_,_t1_,_t2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
458 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
459 __call_vv_##_n_(_t1_ _p1_, _t2_ _p2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
460 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
461 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
462 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
463 res = ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
464 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
465 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
466 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
467
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
468 #define __call_voidVV2(_n_,_tt_,_rt_,_t1_,_t2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
469 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
470 __call_vv_##_n_(_t1_ _p1_, _t2_ _p2_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
471 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
472 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
473 ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
474 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
475 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
476
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
477 #define __call_VV4(_n_,_tt_,_rt_,_t1_,_t2_,_t3_,_t4_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
478 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
479 __call_vv_##_n_(_t1_ _p1_, _t2_ _p2_, _t3_ _p3_, _t4_ _p4_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
480 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
481 _rt_ res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
482 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
483 res = ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_,_p3_,_p4_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
484 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
485 return res; \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
486 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
487
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
488 #define __call_voidVV4(_n_,_tt_,_rt_,_t1_,_t2_,_t3_,_t4_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
489 static __inline__ _rt_ \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
490 __call_vv_##_n_(_t1_ _p1_, _t2_ _p2_, _t3_ _p3_, _t4_ _p4_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
491 { \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
492 _ENTER_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
493 ((_tt_ *)hal_virtual_vector_table[_n_])(_p1_,_p2_,_p3_,_p4_); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
494 _EXIT_MONITOR(); \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
495 }
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
496
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
497
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
498 #define CYGACC_DATA_VV(t,e) __call_vv_##e()
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
499 #define CYGACC_CALL_VV0(t,e) __call_vv_##e
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
500 #define CYGACC_CALL_VV1(t,e,p1) __call_vv_##e((p1))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
501 #define CYGACC_CALL_VV2(t,e,p1,p2) __call_vv_##e((p1),(p2))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
502 #define CYGACC_CALL_VV3(t,e,p1,p2,p3) __call_vv_##e((p1),(p2),(p3))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
503 #define CYGACC_CALL_VV4(t,e,p1,p2,p3,p4) __call_vv_##e((p1),(p2),(p3),(p4))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
504
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
505 #define CYGACC_CALL_IF_VERSION() \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
506 CYGACC_DATA_VV(__call_if_version_t, CYGNUM_CALL_IF_VERSION)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
507 __data_VV(CYGNUM_CALL_IF_VERSION, __call_if_version_t)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
508 #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
509 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
510
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
511 #define CYGACC_CALL_IF_KILL_VECTOR() \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
512 CYGACC_DATA_VV(__call_if_kill_vector_t, CYGNUM_CALL_IF_KILL_VECTOR)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
513 __data_VV(CYGNUM_CALL_IF_KILL_VECTOR, __call_if_kill_vector_t)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
514 #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
515 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
516
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
517 #define CYGACC_CALL_IF_CONSOLE_PROCS() \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
518 CYGACC_DATA_VV(__call_if_console_procs_t, CYGNUM_CALL_IF_CONSOLE_PROCS)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
519 __data_VV(CYGNUM_CALL_IF_CONSOLE_PROCS, __call_if_console_procs_t)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
520 #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
521 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
522
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
523 #define CYGACC_CALL_IF_FLUSH_DCACHE(_p_, _n_) \
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
524 ((__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
525 #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
526 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
527
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
528 #define CYGACC_CALL_IF_FLUSH_ICACHE(_p_, _n_) \
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
529 ((__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
530 #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
531 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
532
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
533 #define CYGACC_CALL_IF_DEBUG_PROCS() \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
534 CYGACC_DATA_VV(__call_if_debug_procs_t, CYGNUM_CALL_IF_DEBUG_PROCS)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
535 __data_VV(CYGNUM_CALL_IF_DEBUG_PROCS, __call_if_debug_procs_t)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
536 #define CYGACC_CALL_IF_DEBUG_PROCS_SET(_x_) \
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
537 hal_virtual_vector_table[CYGNUM_CALL_IF_DEBUG_PROCS]=(CYG_ADDRWORD)(_x_)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
538
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
539 #define CYGACC_CALL_IF_SET_DEBUG_COMM(_i_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
540 CYGACC_CALL_VV1(__call_if_set_debug_comm_t*, CYGNUM_CALL_IF_SET_DEBUG_COMM, (_i_))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
541 __call_VV1(CYGNUM_CALL_IF_SET_DEBUG_COMM, __call_if_set_debug_comm_t, int, int)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
542 #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
543 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
544
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
545 #define CYGACC_CALL_IF_SET_CONSOLE_COMM(_i_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
546 CYGACC_CALL_VV1(__call_if_set_console_comm_t*, CYGNUM_CALL_IF_SET_CONSOLE_COMM, (_i_))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
547 __call_VV1(CYGNUM_CALL_IF_SET_CONSOLE_COMM, __call_if_set_console_comm_t, int, int)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
548 #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
549 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
550
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
551 #define CYGACC_CALL_IF_DBG_DATA() \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
552 CYGACC_DATA_VV(__call_if_dbg_data_t, CYGNUM_CALL_IF_DBG_DATA)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
553 __data_VV(CYGNUM_CALL_IF_DBG_DATA, __call_if_dbg_data_t)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
554 #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
555 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
556
183
9160a8005d76 Merge from eCos master repository on 2001-09-12-03:52:30-BST
jlarmour
parents: 179
diff changeset
557 #define CYGACC_CALL_IF_DBG_SYSCALL(_id_,_p_) \
9160a8005d76 Merge from eCos master repository on 2001-09-12-03:52:30-BST
jlarmour
parents: 179
diff changeset
558 CYGACC_CALL_VV2(__call_if_dbg_syscall_t, CYGNUM_CALL_IF_DBG_SYSCALL, _id_, _p_)
9160a8005d76 Merge from eCos master repository on 2001-09-12-03:52:30-BST
jlarmour
parents: 179
diff changeset
559 __call_VV2(CYGNUM_CALL_IF_DBG_SYSCALL, __call_if_dbg_syscall_t, int, enum dbg_syscall_ids , union dbg_thread_syscall_parms *)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
560 #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
561 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
562
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
563 #define CYGACC_CALL_IF_RESET() \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
564 CYGACC_CALL_VV0(__call_if_reset_t*, CYGNUM_CALL_IF_RESET)()
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
565 __call_voidVV0(CYGNUM_CALL_IF_RESET, __call_if_reset_t, void)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
566 #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
567 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
568 #define CYGACC_CALL_IF_RESET_GET() \
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
569 ((__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
570
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
571 #define CYGACC_CALL_IF_CONSOLE_INTERRUPT_FLAG() \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
572 CYGACC_DATA_VV(__call_if_console_interrupt_flag_t, CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG)
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
573 __data_VV(CYGNUM_CALL_IF_CONSOLE_INTERRUPT_FLAG, __call_if_console_interrupt_flag_t)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
574 #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
575 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
576
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
577 #define CYGACC_CALL_IF_DELAY_US(_u_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
578 CYGACC_CALL_VV1(__call_if_delay_us_t*, CYGNUM_CALL_IF_DELAY_US, (_u_))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
579 __call_voidVV1(CYGNUM_CALL_IF_DELAY_US, __call_if_delay_us_t, void, cyg_int32)
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
580 #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
581 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
582
107
7f461c3a372c Merge from eCos master repository on 2000-07-04-08:04:30-BST
jlarmour
parents: 105
diff changeset
583 #define CYGACC_CALL_IF_INSTALL_BPT_FN(_e_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
584 CYGACC_CALL_VV1(__call_if_install_bpt_fn_t*, CYGNUM_CALL_IF_INSTALL_BPT_FN, (_e_))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
585 __call_voidVV1(CYGNUM_CALL_IF_INSTALL_BPT_FN, __call_if_install_bpt_fn_t, void, void *)
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
586 #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
587 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
588
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
589 #define CYGACC_CALL_IF_FLASH_CFG_OP(_o_,_k_,_d_,_t_) \
179
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
590 CYGACC_CALL_VV4(__call_if_flash_cfg_op_fn_t*, CYGNUM_CALL_IF_FLASH_CFG_OP, (_o_),(_k_),(_d_),(_t_))
391299f9e541 Merge from eCos master repository on 2001-08-17-16:31:54-BST
jlarmour
parents: 156
diff changeset
591 __call_VV4(CYGNUM_CALL_IF_FLASH_CFG_OP, __call_if_flash_cfg_op_fn_t, cyg_bool, int, char *, void *, int)
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
592 #define CYGACC_CALL_IF_FLASH_CFG_OP_SET(_x_) \
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
593 hal_virtual_vector_table[CYGNUM_CALL_IF_FLASH_CFG_OP]=(CYG_ADDRWORD)(_x_)
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
594 #define CYGNUM_CALL_IF_FLASH_CFG_GET (0)
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
595
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
596 #endif // CYGACC_CALL_IF_DEFINED
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
597
103
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
598 //--------------------------------------------------------------------------
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
599 // Diag wrappers.
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
600 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
601 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
602 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
603
105
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
604 //--------------------------------------------------------------------------
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
605 // Ctrl-c support.
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
606 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
607 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
608
5a0cc6c243a9 Merge from eCos master repository on 2000-06-30-08:18:49-BST
jlarmour
parents: 103
diff changeset
609 #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
610 #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
611
151
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
612 #else
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
613
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
614 #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
615 || 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
616 // 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
617 #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
618 #endif
25e238959bae Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents: 138
diff changeset
619
103
95f3e12a6327 Merge from eCos master repository on 2000-06-23-16:41:10-BST
jlarmour
parents: 101
diff changeset
620 #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
621
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
622 //--------------------------------------------------------------------------
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
623 // Functions provided by the HAL interface.
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
624 externC void hal_if_init(void);
156
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
625 #if 0 != CYGINT_HAL_PLF_IF_INIT
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
626 externC void plf_if_init(void);
b939e9cada46 Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents: 151
diff changeset
627 #endif
101
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
628
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
629 //-----------------------------------------------------------------------------
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
630 #endif // CYGONCE_HAL_HAL_IF_H
c37d3a9e1b28 Merge from eCos master repository on 2000-06-16-07:47:03-BST
jlarmour
parents:
diff changeset
631 // End of hal_if.h