RTEMS  5.0.0
ioimpl.h
Go to the documentation of this file.
1 
7 /*
8  * COPYRIGHT (c) 1989-2008.
9  * On-Line Applications Research Corporation (OAR).
10  *
11  * The license and distribution terms for this file may be
12  * found in the file LICENSE in this distribution or at
13  * http://www.rtems.org/license/LICENSE.
14  */
15 
16 #ifndef _RTEMS_IOIMPL_H
17 #define _RTEMS_IOIMPL_H
18 
19 #include <rtems/io.h>
20 #include <rtems/score/isrlock.h>
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif /* __cplusplus */
25 
26 extern const size_t _IO_Number_of_drivers;
27 
28 extern rtems_driver_address_table _IO_Driver_address_table[];
29 
30 extern bool _IO_All_drivers_initialized;
31 
37 void _IO_Initialize_all_drivers( void );
38 
39 ISR_LOCK_DECLARE( extern, _IO_Driver_registration_lock )
40 
41 RTEMS_INLINE_ROUTINE void _IO_Driver_registration_acquire(
42  ISR_lock_Context *lock_context
43 )
44 {
46  &_IO_Driver_registration_lock,
47  lock_context
48  );
49 }
50 
51 RTEMS_INLINE_ROUTINE void _IO_Driver_registration_release(
52  ISR_lock_Context *lock_context
53 )
54 {
56  &_IO_Driver_registration_lock,
57  lock_context
58  );
59 }
60 
61 #ifdef __cplusplus
62 }
63 #endif /* __cplusplus */
64 
65 #endif /* _RTEMS_IOIMPL_H */
#define _ISR_lock_ISR_disable_and_acquire(_lock, _context)
Acquires an ISR lock.
Definition: isrlock.h:223
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:65
#define ISR_LOCK_DECLARE(_qualifier, _designator)
Declares an ISR lock variable.
Definition: isrlock.h:104
Definition: io.h:48
Classic Input/Output Manager API.
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Definition: isrlock.h:248
void _IO_Initialize_all_drivers(void)
Initialization of all device drivers.
Definition: io.c:26
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65
ISR Locks.