annotate packages/kernel/current/include/kapidata.h @ 148:8f2f7615e727

Merge from eCos master repository on 2001-01-12-06:43:03-GMT
author jlarmour
date Fri, 12 Jan 2001 08:11:46 +0000
parents 6ed91473a1cd
children 4c750ce71ae3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_KERNEL_KAPIDATA_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 #define CYGONCE_KERNEL_KAPIDATA_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 /*=============================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
5 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
6 // kapidata.h
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
8 // Native API data structures
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
9 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
10 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
11 //####COPYRIGHTBEGIN####
64
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
12 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
13 // -------------------------------------------
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
14 // The contents of this file are subject to the Red Hat eCos Public License
66
bf00f99aec69 Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents: 64
diff changeset
15 // Version 1.1 (the "License"); you may not use this file except in
64
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
16 // compliance with the License. You may obtain a copy of the License at
66
bf00f99aec69 Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents: 64
diff changeset
17 // http://www.redhat.com/
64
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
18 //
66
bf00f99aec69 Merge from eCos master repository on 2000-02-02-19:16:44-GMT
jlarmour
parents: 64
diff changeset
19 // Software distributed under the License is distributed on an "AS IS"
64
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
20 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
21 // License for the specific language governing rights and limitations under
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
22 // the License.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
23 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
24 // The Original Code is eCos - Embedded Configurable Operating System,
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
25 // released September 30, 1998.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
26 //
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
27 // The Initial Developer of the Original Code is Red Hat.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
28 // Portions created by Red Hat are
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
29 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
30 // All Rights Reserved.
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
31 // -------------------------------------------
c38311975d4f Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents: 2
diff changeset
32 //
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
33 //####COPYRIGHTEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
34 //==========================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
35 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
36 //
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
37 // Author(s): nickg
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
38 // Contributors: nickg
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
39 // Date: 1998-03-13
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
40 // Purpose: Native API data structures
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
41 // Description: This file defines the structures used in the native API. The
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 // sizes of these structures are dependent on the system
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 // configuration and must be kept in step with their real
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44 // counterparts in the C++ headers.
148
8f2f7615e727 Merge from eCos master repository on 2001-01-12-06:43:03-GMT
jlarmour
parents: 115
diff changeset
45 // IMPORTANT: It is NOT guaranteed that the fields of these
8f2f7615e727 Merge from eCos master repository on 2001-01-12-06:43:03-GMT
jlarmour
parents: 115
diff changeset
46 // structures correspond to the equivalent fields in the
8f2f7615e727 Merge from eCos master repository on 2001-01-12-06:43:03-GMT
jlarmour
parents: 115
diff changeset
47 // C++ classes they shadow.
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
48 // Usage: included by kapi.h
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52 //==========================================================================*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 #include <pkgconf/kernel.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
56 #include <cyg/infra/cyg_type.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57 #include <cyg/hal/hal_intr.h> // exception defines
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61 #ifdef __cplusplus
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 extern "C" {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 #ifndef CYGNUM_KERNEL_SCHED_BITMAP_SIZE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68 #if defined(CYGSEM_KERNEL_SCHED_MLQUEUE)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69 #define CYGNUM_KERNEL_SCHED_BITMAP_SIZE 32
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 #elif defined(CYGSEM_KERNEL_SCHED_BITMAP)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71 #define CYGNUM_KERNEL_SCHED_BITMAP_SIZE 32
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75 #if CYGNUM_KERNEL_SCHED_BITMAP_SIZE <= 8
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 typedef cyg_ucount8 cyg_sched_bitmap;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77 #elif CYGNUM_KERNEL_SCHED_BITMAP_SIZE <= 16
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78 typedef cyg_ucount16 cyg_sched_bitmap;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79 #elif CYGNUM_KERNEL_SCHED_BITMAP_SIZE <= 32
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 typedef cyg_ucount32 cyg_sched_bitmap;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81 #elif CYGNUM_KERNEL_SCHED_BITMAP_SIZE <= 64
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82 typedef cyg_ucount64 cyg_sched_bitmap;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 #error Bitmaps greater than 64 bits not currently allowed
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 typedef struct
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 #if defined(CYGSEM_KERNEL_SCHED_BITMAP)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 cyg_sched_bitmap map;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 #elif defined(CYGSEM_KERNEL_SCHED_MLQUEUE)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95 cyg_thread *queue;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 #elif defined(CYGSEM_KERNEL_SCHED_LOTTERY)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99 cyg_thread *queue;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103 #error Undefined scheduler type
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106 } cyg_threadqueue;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110 struct cyg_interrupt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 cyg_vector_t vector;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 cyg_priority_t priority;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 cyg_ISR_t *isr;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115 cyg_DSR_t *dsr;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116 CYG_ADDRWORD data;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 #ifdef CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 cyg_ucount32 dsr_count;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120 cyg_interrupt *next_dsr;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122 #ifdef CYGIMP_KERNEL_INTERRUPTS_CHAIN
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123 cyg_interrupt *next;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
127
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
129
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130 struct cyg_counter
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 #if defined(CYGIMP_KERNEL_COUNTERS_SINGLE_LIST)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133 cyg_alarm *alarm_list;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 #elif defined(CYGIMP_KERNEL_COUNTERS_MULTI_LIST)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135 cyg_alarm *alarm_list[CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 cyg_tick_count_t counter;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138 cyg_uint32 increment;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 struct cyg_clock
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145 cyg_counter counter;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 cyg_resolution_t resolution;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 struct cyg_alarm
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153 #if defined(CYGIMP_KERNEL_COUNTERS_SINGLE_LIST) || defined(CYGIMP_KERNEL_COUNTERS_MULTI_LIST)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 cyg_alarm *next;
148
8f2f7615e727 Merge from eCos master repository on 2001-01-12-06:43:03-GMT
jlarmour
parents: 115
diff changeset
155 cyg_alarm *prev;
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157 cyg_counter *counter;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 cyg_alarm_t *alarm;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159 CYG_ADDRWORD data;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160 cyg_tick_count_t trigger;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 cyg_tick_count_t interval;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162 cyg_bool enabled;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 /* Exception controller */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168 #ifdef CYGPKG_KERNEL_EXCEPTIONS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 typedef struct
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 #ifdef CYGSEM_KERNEL_EXCEPTIONS_DECODE
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
172 cyg_exception_handler_t *exception_handler[CYGNUM_HAL_EXCEPTION_COUNT];
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
173
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
174 CYG_ADDRWORD exception_data[CYGNUM_HAL_EXCEPTION_COUNT];
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 cyg_exception_handler_t *exception_handler; // Handler function
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 CYG_ADDRWORD exception_data; // Handler data
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181 } cyg_exception_control;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
183 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186 /* Thread structure */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 typedef struct
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190 CYG_ADDRESS stack_base; /* pointer to base of stack area */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 cyg_uint32 stack_size; /* size of stack area in bytes */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 #ifdef CYGFUN_KERNEL_THREADS_STACK_LIMIT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 CYG_ADDRESS stack_limit; /* movable stack limit */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
195 CYG_ADDRESS stack_ptr; /* pointer to saved state on stack */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196 CYG_ADDRWORD entry_point; /* main entry point (code pointer!) */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 CYG_ADDRWORD entry_data; /* entry point argument */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198 #ifdef CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199 void *saved_context; // If non-zero, this points at a more
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200 // interesting context than stack_ptr.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203 } cyg_hardwarethread;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205 typedef struct
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
207 #if defined(CYGSEM_KERNEL_SCHED_BITMAP)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209 cyg_priority_t priority; /* current thread priority */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 #elif defined(CYGSEM_KERNEL_SCHED_MLQUEUE)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 cyg_thread *next;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214 cyg_thread *prev;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 cyg_priority_t priority; /* current thread priority */
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
217
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
218 #ifdef CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
219 cyg_bool timeslice_enabled; /* per-thread timeslice enable */
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
220 #endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 #elif defined(CYGSEM_KERNEL_SCHED_LOTTERY)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 cyg_thread *next;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 cyg_thread *prev;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 cyg_priority_t priority; /* current thread priority */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 cyg_priority_t compensation_tickets; /* sleep compensation */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
230 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 #error Undefined scheduler type
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 cyg_threadqueue *queue;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
238 #ifdef CYGSEM_KERNEL_SCHED_ASR_SUPPORT
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
239 volatile cyg_bool asr_inhibit; // If true, blocks calls to ASRs
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
240 volatile cyg_bool asr_pending; // If true, this thread's ASR should be called.
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
241 #ifndef CYGSEM_KERNEL_SCHED_ASR_GLOBAL
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
242 void (*asr)(CYG_ADDRWORD); // ASR function
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
243 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
244 #ifndef CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
245 CYG_ADDRWORD asr_data; // ASR data pointer
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
246 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
247 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
248 #ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249 cyg_count32 mutex_count;
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
250 #ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_SIMPLE
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 cyg_priority_t original_priority;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 cyg_bool priority_inherited;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 } cyg_schedthread;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 typedef struct
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 cyg_alarm alarm;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 cyg_thread *thread;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 } cyg_threadtimer;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 typedef int cyg_reason_t; /* cyg_reason is originally an enum */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 struct cyg_thread
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269 cyg_hardwarethread hwthread;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270 cyg_schedthread schedthread;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 cyg_uint32 state;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
273 cyg_ucount32 suspend_count;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
274 cyg_ucount32 wakeup_count;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
275 CYG_ADDRWORD wait_info;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
276 cyg_uint16 unique_id;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
277
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
278
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
279 #if defined(CYGPKG_KERNEL_EXCEPTIONS) && !defined(CYGSEM_KERNEL_EXCEPTIONS_GLOBAL)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
281 cyg_exception_control exception_control;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
282
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
284
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
285 #ifdef CYGFUN_KERNEL_THREADS_TIMER
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
286 cyg_threadtimer timer;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
287 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
288
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
289 cyg_reason_t sleep_reason;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
290 cyg_reason_t wake_reason;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
291
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
292 #ifdef CYGVAR_KERNEL_THREADS_DATA
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
293
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
294 CYG_ADDRWORD thread_data[CYGNUM_KERNEL_THREADS_DATA_MAX];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
298 #ifdef CYGVAR_KERNEL_THREADS_NAME
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
299
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
300 char *name;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
301
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304 #ifdef CYGVAR_KERNEL_THREADS_LIST
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 cyg_thread *list_next;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
308 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
309
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
314 struct cyg_mbox
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
315 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
316 cyg_count32 base; /* index of first used slot */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
317 cyg_count32 count; /* count of used slots */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
318 cyg_threadqueue get_threadq; /* Queue of waiting threads */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
319 #ifdef CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
320 cyg_threadqueue put_threadq; /* Queue of waiting threads */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
322 void * itemqueue[ CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE ];
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
323 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
326
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
327 struct cyg_sem_t
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
328 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
329 cyg_count32 count; /* The semaphore count */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
330 cyg_threadqueue queue; /* Queue of waiting threads */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
331 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
332
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
333 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
334
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
335 struct cyg_flag_t
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
336 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
337 cyg_flag_value_t value; /* The flag value */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
338 cyg_threadqueue queue; /* Queue of waiting threads */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
339 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
340
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
341 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
342
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
343 struct cyg_mutex_t
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
344 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
345 cyg_bool locked; /* true if locked */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
346 cyg_thread *owner; /* Current locking thread */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
347 cyg_threadqueue queue; /* Queue of waiting threads */
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
348
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
349 #ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
350 cyg_uint32 protocol; /* this mutex's protocol */
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
351 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
352 #ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
353 cyg_priority_t ceiling; /* mutex priority ceiling */
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
354 #endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
355
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
356 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
358 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 struct cyg_cond_t
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361 {
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
362 cyg_mutex_t *mutex; /* Associated mutex */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 cyg_threadqueue queue; /* Queue of waiting threads */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
364 };
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
365
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
366 /*------------------------------------------------------------------------*/
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
368 /* Memory allocator types now come from the "memalloc" package which is */
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
369 /* where the implementation lives. */
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
370
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 66
diff changeset
371 #include <cyg/memalloc/kapidata.h>
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
372
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
373 #ifdef __cplusplus
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
374 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
375 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
376
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
377 /*---------------------------------------------------------------------------*/
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
378 /* EOF kapidata.h */
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379 #endif /* CYGONCE_KERNEL_KAPIDATA_H */