Changeset 3a4ae6c in rtems for c/src/exec/sapi/headers
- Timestamp:
- 09/11/95 19:35:39 (28 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- ced11f99
- Parents:
- 5072b07
- Location:
- c/src/exec/sapi/headers
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/exec/sapi/headers/config.h
r5072b07 r3a4ae6c 22 22 #endif 23 23 24 #include <rtems/types.h> 25 #include <rtems/object.h> 26 #include <rtems/thread.h> 27 28 /* 29 * The following records define the Initialization Tasks Table. 30 * Each entry contains the information required by RTEMS to 31 * create and start a user task automatically at executive 32 * initialization time. 33 */ 34 35 typedef struct { 36 rtems_name name; /* task name */ 37 unsigned32 stack_size; /* task stack size */ 38 rtems_task_priority initial_priority; /* task priority */ 39 rtems_attribute attribute_set; /* task attributes */ 40 rtems_task_entry entry_point; /* task entry point */ 41 rtems_mode mode_set; /* task initial mode */ 42 unsigned32 argument; /* task argument */ 43 } rtems_initialization_tasks_table; 44 45 /* 46 * 47 * The following defines the types for: 48 * 49 * + major and minor numbers 50 * + the return type of a device driver entry 51 * + a pointer to a device driver entry 52 * + an entry in the the Device Driver Address Table. Each entry in this 53 * table corresponds to an application provided device driver and 54 * defines the entry points for that device driver. 55 */ 56 57 typedef unsigned32 rtems_device_major_number; 58 typedef unsigned32 rtems_device_minor_number; 59 60 typedef rtems_status_code rtems_device_driver; 61 62 typedef rtems_device_driver ( *rtems_device_driver_entry )( 63 rtems_device_major_number, 64 rtems_device_minor_number, 65 void * 66 ); 67 68 typedef struct { 69 rtems_device_driver_entry initialization; /* initialization procedure */ 70 rtems_device_driver_entry open; /* open request procedure */ 71 rtems_device_driver_entry close; /* close request procedure */ 72 rtems_device_driver_entry read; /* read request procedure */ 73 rtems_device_driver_entry write; /* write request procedure */ 74 rtems_device_driver_entry control; /* special functions procedure */ 75 } rtems_driver_address_table; 76 77 /* 78 * The following records defines the User Extension Table. 79 * This table defines the application dependent routines which 80 * are invoked at critical points in the life of each task and 81 * the system as a whole. 82 */ 83 84 typedef void rtems_extension; 85 86 typedef rtems_extension ( *rtems_task_create_extension )( 87 rtems_tcb *, 88 rtems_tcb * 89 ); 90 91 typedef rtems_extension ( *rtems_task_delete_extension )( 92 rtems_tcb *, 93 rtems_tcb * 94 ); 95 96 typedef rtems_extension ( *rtems_task_start_extension )( 97 rtems_tcb *, 98 rtems_tcb * 99 ); 100 101 typedef rtems_extension ( *rtems_task_restart_extension )( 102 rtems_tcb *, 103 rtems_tcb * 104 ); 105 106 typedef rtems_extension ( *rtems_task_switch_extension )( 107 rtems_tcb *, 108 rtems_tcb * 109 ); 110 111 typedef rtems_extension ( *rtems_task_begin_extension )( 112 rtems_tcb * 113 ); 114 115 typedef rtems_extension ( *rtems_task_exitted_extension )( 116 rtems_tcb * 117 ); 118 119 typedef rtems_extension ( *rtems_fatal_extension )( 120 unsigned32 121 ); 122 123 typedef struct { 124 rtems_task_create_extension rtems_task_create; 125 rtems_task_start_extension rtems_task_start; 126 rtems_task_restart_extension rtems_task_restart; 127 rtems_task_delete_extension rtems_task_delete; 128 rtems_task_switch_extension task_switch; 129 rtems_task_begin_extension task_begin; 130 rtems_task_exitted_extension task_exitted; 131 rtems_fatal_extension fatal; 132 } rtems_extensions_table; 133 134 /* 135 * The following records define the Multiprocessor Communications 136 * Interface (MPCI) Table. This table defines the user-provided 137 * MPCI which is a required part of a multiprocessor RTEMS system. 138 * 139 * For non-blocking local operations that become remote operations, 140 * we need a timeout. This is a per-driver timeout: default_timeout 141 */ 142 143 /* XXX FORWARD REFERENCES */ 144 145 typedef struct Configuration_Table rtems_configuration_table; 146 typedef struct Configuration_Table_MP rtems_multiprocessing_table; 147 148 typedef void rtems_mpci_entry; 149 150 typedef rtems_mpci_entry ( *rtems_mpci_initialization_entry )( 151 rtems_configuration_table *, 152 rtems_cpu_table *, 153 rtems_multiprocessing_table * 154 ); 155 156 typedef rtems_mpci_entry ( *rtems_mpci_get_packet_entry )( 157 rtems_packet_prefix ** 158 ); 159 160 typedef rtems_mpci_entry ( *rtems_mpci_return_packet_entry )( 161 rtems_packet_prefix * 162 ); 163 164 typedef rtems_mpci_entry ( *rtems_mpci_send_entry )( 165 unsigned32, 166 rtems_packet_prefix * 167 ); 168 169 typedef rtems_mpci_entry ( *rtems_mpci_receive_entry )( 170 rtems_packet_prefix ** 171 ); 172 173 typedef struct { 174 unsigned32 default_timeout; /* in ticks */ 175 unsigned32 maximum_packet_size; 176 rtems_mpci_initialization_entry initialization; 177 rtems_mpci_get_packet_entry get_packet; 178 rtems_mpci_return_packet_entry return_packet; 179 rtems_mpci_send_entry send_packet; 180 rtems_mpci_receive_entry receive_packet; 181 } rtems_mpci_table; 24 #include <rtems/rtems/status.h> 25 #include <rtems/extension.h> 26 #include <rtems/io.h> 27 #include <rtems/core/mpci.h> 28 #include <rtems/rtems/types.h> 29 #include <rtems/rtems/tasks.h> 182 30 183 31 /* … … 188 36 */ 189 37 190 struct Configuration_Table_MP{191 unsigned32 node; /* local node number */192 unsigned32 maximum_nodes; /* maximum # nodes in system */193 unsigned32 maximum_global_objects; /* maximum # global objects */194 unsigned32 maximum_proxies; /* maximum # proxies */195 rtems_mpci_table *User_mpci_table;/* pointer to MPCI table */196 } ;38 typedef struct { 39 unsigned32 node; /* local node number */ 40 unsigned32 maximum_nodes; /* maximum # nodes in system */ 41 unsigned32 maximum_global_objects; /* maximum # global objects */ 42 unsigned32 maximum_proxies; /* maximum # proxies */ 43 MPCI_Control *User_mpci_table; /* pointer to MPCI table */ 44 } rtems_multiprocessing_table; 197 45 198 46 /* … … 208 56 */ 209 57 210 struct Configuration_Table{58 typedef struct { 211 59 void *work_space_start; 212 60 unsigned32 work_space_size; … … 225 73 rtems_initialization_tasks_table *User_initialization_tasks_table; 226 74 unsigned32 number_of_device_drivers; 75 unsigned32 maximum_devices; 227 76 rtems_driver_address_table *Device_driver_table; 228 77 rtems_extensions_table *User_extension_table; 229 78 rtems_multiprocessing_table *User_multiprocessing_table; 230 } ;79 } rtems_configuration_table; 231 80 232 81 /* 233 * The following defines the default Multiprocessing Configuration234 * Table. This table is used in a single processor system.82 * The following are provided strictly for the convenience of 83 * the user. They are not used in RTEMS itself. 235 84 */ 236 85 237 extern const rtems_multiprocessing_table 238 _Configuration_Default_multiprocessing_table; 239 240 /* 241 * The following define the internal pointers to the user's 242 * configuration information. 243 */ 244 245 EXTERN rtems_configuration_table *_Configuration_Table; 246 EXTERN rtems_multiprocessing_table *_Configuration_MP_table; 247 EXTERN rtems_mpci_table *_Configuration_MPCI_table; 248 249 /* 250 * 251 * _Configuration_Handler_initialization 252 * 253 * DESCRIPTION: 254 * 255 * This routine performs the initialization necessary for this handler. 256 */ 257 258 STATIC INLINE void _Configuration_Handler_initialization( 259 rtems_configuration_table *configuration_table, 260 rtems_multiprocessing_table *multiprocessing_table, 261 rtems_mpci_table *users_mpci_table 262 ); 263 264 /* 265 * _Configuration_Is_multiprocessing 266 * 267 * DESCRIPTION: 268 * 269 * This function determines if a multiprocessing application has been 270 * configured, if so, TRUE is returned, otherwise FALSE is returned. 271 */ 272 273 STATIC INLINE boolean _Configuration_Is_multiprocessing( void ); 274 275 /* 276 * _Configuration_Is_null_driver_address_table_pointer 277 * 278 * DESCRIPTION: 279 * 280 * This function returns TRUE if the_table is NULL and FALSE otherwise. 281 */ 282 283 STATIC INLINE boolean _Configuration_Is_null_driver_address_table_pointer( 284 rtems_driver_address_table *the_table 285 ); 286 287 /* 288 * _Configuration_Is_null_extension_table_pointer 289 * 290 * DESCRIPTION: 291 * 292 * This function returns TRUE if the_table is NULL and FALSE otherwise. 293 */ 294 295 STATIC INLINE boolean _Configuration_Is_null_extension_table_pointer( 296 rtems_extensions_table *the_table 297 ); 298 299 /* 300 * _Configuration_Is_null_initialization_tasks_table_pointer 301 * 302 * DESCRIPTION: 303 * 304 * This function returns TRUE if the_table is NULL and FALSE otherwise. 305 */ 306 307 STATIC INLINE boolean 308 _Configuration_Is_null_initialization_tasks_table_pointer( 309 rtems_initialization_tasks_table *the_table 310 ); 311 312 #include <rtems/config.inl> 86 EXTERN rtems_configuration_table *_Configuration_Table; 87 EXTERN rtems_multiprocessing_table *_Configuration_MP_table; 313 88 314 89 #ifdef __cplusplus -
c/src/exec/sapi/headers/directives.h
r5072b07 r3a4ae6c 107 107 #define RTEMS_NUMBER_OF_ENTRY_POINTS 82 108 108 109 /* 110 * The jump table of entry points into RTEMS directives. 111 */ 112 113 extern const void *_Entry_points[ RTEMS_NUMBER_OF_ENTRY_POINTS ]; 114 109 115 #ifdef __cplusplus 110 116 } -
c/src/exec/sapi/headers/extension.h
r5072b07 r3a4ae6c 29 29 #endif 30 30 31 #include <rtems.h> 32 #include <rtems/object.h> 33 #include <rtems/userext.h> 31 #include <rtems/core/object.h> 32 #include <rtems/core/userext.h> 33 #include <rtems/rtems/status.h> /* XXX */ 34 #include <rtems/rtems/types.h> /* XXX */ 35 36 /* 37 * Extension related types 38 */ 39 40 typedef User_extensions_routine rtems_extension; 41 typedef User_extensions_thread_create_extension rtems_task_create_extension; 42 typedef User_extensions_thread_delete_extension rtems_task_delete_extension; 43 typedef User_extensions_thread_start_extension rtems_task_start_extension; 44 typedef User_extensions_thread_restart_extension rtems_task_restart_extension; 45 typedef User_extensions_thread_switch_extension rtems_task_switch_extension; 46 typedef User_extensions_thread_post_switch_extension 47 rtems_task_post_switch_extension; 48 typedef User_extensions_thread_begin_extension rtems_task_begin_extension; 49 typedef User_extensions_thread_exitted_extension rtems_task_exitted_extension; 50 typedef User_extensions_fatal_extension rtems_fatal_extension; 51 52 typedef User_extensions_Table rtems_extensions_table; 34 53 35 54 /* … … 74 93 75 94 rtems_status_code rtems_extension_create( 76 rtems_name 95 rtems_name name, 77 96 rtems_extensions_table *extension_table, 78 Objects_Id 97 Objects_Id *id 79 98 ); 80 99 -
c/src/exec/sapi/headers/init.h
r5072b07 r3a4ae6c 31 31 #endif 32 32 33 #include <rtems/ types.h>33 #include <rtems/rtems/types.h> 34 34 #include <rtems/config.h> 35 #include <rtems/intr.h> 35 #include <rtems/rtems/intr.h> 36 37 /* 38 * The following defines the default Multiprocessing Configuration 39 * Table. This table is used in a single processor system. 40 */ 41 42 extern const rtems_multiprocessing_table 43 _Initialization_Default_multiprocessing_table; 36 44 37 45 /* -
c/src/exec/sapi/headers/io.h
r5072b07 r3a4ae6c 33 33 #endif 34 34 35 #include <rtems/config.h> 36 37 /* 38 * The following declare the data required to manage the Device Driver 39 * Address Table. 40 */ 41 42 EXTERN unsigned32 _IO_Number_of_drivers; 43 EXTERN rtems_driver_address_table *_IO_Driver_address_table; 44 35 #include <rtems/rtems/status.h> 36 37 /* 38 * 39 * The following defines the types for: 40 * 41 * + major and minor numbers 42 * + the return type of a device driver entry 43 * + a pointer to a device driver entry 44 * + an entry in the the Device Driver Address Table. Each entry in this 45 * table corresponds to an application provided device driver and 46 * defines the entry points for that device driver. 47 */ 48 49 typedef unsigned32 rtems_device_major_number; 50 typedef unsigned32 rtems_device_minor_number; 51 52 typedef rtems_status_code rtems_device_driver; 53 54 typedef rtems_device_driver ( *rtems_device_driver_entry )( 55 rtems_device_major_number, 56 rtems_device_minor_number, 57 void * 58 ); 59 60 typedef struct { 61 rtems_device_driver_entry initialization; /* initialization procedure */ 62 rtems_device_driver_entry open; /* open request procedure */ 63 rtems_device_driver_entry close; /* close request procedure */ 64 rtems_device_driver_entry read; /* read request procedure */ 65 rtems_device_driver_entry write; /* write request procedure */ 66 rtems_device_driver_entry control; /* special functions procedure */ 67 } rtems_driver_address_table; 68 45 69 /* 46 70 * Table for the io device names … … 54 78 } rtems_driver_name_t; 55 79 56 /*XXX this really should be allocated some better way... */ 57 /*XXX it should probably be a chain and use a 'maximum' drivers field 58 * in config table */ 59 #define RTEMS_MAX_DRIVER_NAMES 20 60 EXTERN rtems_driver_name_t rtems_driver_name_table[RTEMS_MAX_DRIVER_NAMES]; 61 80 /* 81 * This is the table of device names. 82 */ 83 84 /* 85 * The following declare the data required to manage the Driver 86 * Address Table and Device Name Table. 87 */ 88 89 EXTERN unsigned32 _IO_Number_of_drivers; 90 EXTERN rtems_driver_address_table *_IO_Driver_address_table; 91 EXTERN unsigned32 _IO_Number_of_devices; 92 EXTERN rtems_driver_name_t *_IO_Driver_name_table; 62 93 63 94 /* … … 71 102 STATIC INLINE void _IO_Manager_initialization( 72 103 rtems_driver_address_table *driver_table, 73 unsigned32 number_of_drivers 104 unsigned32 number_of_drivers, 105 unsigned32 number_of_devices 74 106 ); 75 107 -
c/src/exec/sapi/headers/sptables.h
r5072b07 r3a4ae6c 24 24 #include <rtems/config.h> 25 25 26 #include <rtems/debug.h> 27 #include <rtems/fatal.h> 28 #include <rtems/init.h> 29 #include <rtems/io.h> 30 #include <rtems/sysstate.h> 31 32 #include <rtems/rtems/intr.h> 33 #include <rtems/rtems/clock.h> 34 #include <rtems/rtems/tasks.h> 35 #include <rtems/rtems/dpmem.h> 36 #include <rtems/rtems/event.h> 37 #include <rtems/rtems/message.h> 38 #include <rtems/rtems/mp.h> 39 #include <rtems/rtems/part.h> 40 #include <rtems/rtems/ratemon.h> 41 #include <rtems/rtems/region.h> 42 #include <rtems/rtems/sem.h> 43 #include <rtems/rtems/signal.h> 44 #include <rtems/rtems/timer.h> 45 26 46 /* 27 47 * This is the default Multiprocessing Configuration Table. … … 30 50 31 51 const rtems_multiprocessing_table 32 _ Configuration_Default_multiprocessing_table = {52 _Initialization_Default_multiprocessing_table = { 33 53 1, /* local node number */ 34 54 1, /* maximum number nodes in system */
Note: See TracChangeset
for help on using the changeset viewer.