RTEMS: cpukit/include/rtems/ioimpl.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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
23extern "C" {
24#endif /* __cplusplus */
25
26extern const size_t _IO_Number_of_drivers;
27
28extern rtems_driver_address_table _IO_Driver_address_table[];
29
30extern bool _IO_All_drivers_initialized;
31
37void _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{
45 _ISR_lock_ISR_disable_and_acquire(
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{
55 _ISR_lock_Release_and_ISR_enable(
56 &_IO_Driver_registration_lock,
57 lock_context
58 );
59}
60
61#ifdef __cplusplus
62}
63#endif /* __cplusplus */
64
65#endif /* _RTEMS_IOIMPL_H */
io.h
Classic Input/Output Manager API.
RTEMS_INLINE_ROUTINE
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
ISR_LOCK_DECLARE
#define ISR_LOCK_DECLARE(_qualifier, _designator)
Declares an ISR lock variable.
Definition: isrlock.h:104
_ISR_lock_Release_and_ISR_enable
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Definition: isrlock.h:263
_ISR_lock_ISR_disable_and_acquire
#define _ISR_lock_ISR_disable_and_acquire(_lock, _context)
Acquires an ISR lock.
Definition: isrlock.h:238
_IO_Initialize_all_drivers
void _IO_Initialize_all_drivers(void)
Initialization of all device drivers.
Definition: io.c:26
isrlock.h
ISR Locks.
ISR_lock_Context
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65
rtems_driver_address_table
Definition: io.h:48