mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-07-23 13:26:37 +08:00
Add ordered Nexus devices
Add support for ordering the initialization of Nexus devices. This can be used to make sure a device is initialized before a dependant device.
This commit is contained in:
parent
2c4840fba0
commit
ea395a736d
6
freebsd/sys/sys/linker_set.h
Normal file → Executable file
6
freebsd/sys/sys/linker_set.h
Normal file → Executable file
@ -77,7 +77,11 @@
|
|||||||
|
|
||||||
#define RTEMS_BSD_DEFINE_SET_ITEM(set, sym, type) \
|
#define RTEMS_BSD_DEFINE_SET_ITEM(set, sym, type) \
|
||||||
static type const __set_##set##_sym_##sym \
|
static type const __set_##set##_sym_##sym \
|
||||||
__section(".rtemsroset.bsd." __STRING(set) ".content") __used
|
__section(".rtemsroset.bsd." __STRING(set) ".content.1") __used
|
||||||
|
|
||||||
|
#define RTEMS_BSD_DEFINE_SET_ITEM_ORDERED(set, sym, order, type) \
|
||||||
|
static type const __set_##set##_sym_##sym \
|
||||||
|
__section(".rtemsroset.bsd." __STRING(set) ".content.0." RTEMS_XSTRING( order )) __used
|
||||||
|
|
||||||
#define __MAKE_SET(set, sym) \
|
#define __MAKE_SET(set, sym) \
|
||||||
RTEMS_BSD_DEFINE_SET_ITEM(set, sym, const void *) = &sym
|
RTEMS_BSD_DEFINE_SET_ITEM(set, sym, const void *) = &sym
|
||||||
|
6
rtemsbsd/include/rtems/bsd/bsd.h
Normal file → Executable file
6
rtemsbsd/include/rtems/bsd/bsd.h
Normal file → Executable file
@ -83,6 +83,12 @@ typedef struct {
|
|||||||
{ #name, unit, (resource_count), (resources), \
|
{ #name, unit, (resource_count), (resources), \
|
||||||
&SYSINIT_ENTRY_NAME(name##_nexusmodule) }
|
&SYSINIT_ENTRY_NAME(name##_nexusmodule) }
|
||||||
|
|
||||||
|
#define RTEMS_BSD_DEFINE_NEXUS_DEVICE_ORDERED(name, unit, order, resource_count, resources) \
|
||||||
|
extern struct sysinit SYSINIT_ENTRY_NAME(name##_nexusmodule); \
|
||||||
|
RTEMS_BSD_DEFINE_SET_ITEM_ORDERED(nexus, name##unit, order, rtems_bsd_device) = \
|
||||||
|
{ #name, unit, (resource_count), (resources), \
|
||||||
|
&SYSINIT_ENTRY_NAME(name##_nexusmodule) }
|
||||||
|
|
||||||
rtems_status_code rtems_bsd_initialize(void);
|
rtems_status_code rtems_bsd_initialize(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user