diff options
author | Kevin Kirspel <kevin-kirspel@idexx.com> | 2017-01-30 11:58:18 -0500 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-14 09:36:40 +0100 |
commit | ea395a736d7242db72a2c8087b102b6def7b672e (patch) | |
tree | bbf93d58977b6ff352492cd9225b47debf11e113 | |
parent | README.waf: Change BSP, add QEMU command line (diff) | |
download | rtems-libbsd-ea395a736d7242db72a2c8087b102b6def7b672e.tar.bz2 |
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.
-rwxr-xr-x[-rw-r--r--] | freebsd/sys/sys/linker_set.h | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | rtemsbsd/include/rtems/bsd/bsd.h | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/freebsd/sys/sys/linker_set.h b/freebsd/sys/sys/linker_set.h index 918d7242..a310b066 100644..100755 --- a/freebsd/sys/sys/linker_set.h +++ b/freebsd/sys/sys/linker_set.h @@ -77,7 +77,11 @@ #define RTEMS_BSD_DEFINE_SET_ITEM(set, sym, type) \ 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) \ RTEMS_BSD_DEFINE_SET_ITEM(set, sym, const void *) = &sym diff --git a/rtemsbsd/include/rtems/bsd/bsd.h b/rtemsbsd/include/rtems/bsd/bsd.h index 09680623..2e89dce6 100644..100755 --- a/rtemsbsd/include/rtems/bsd/bsd.h +++ b/rtemsbsd/include/rtems/bsd/bsd.h @@ -83,6 +83,12 @@ typedef struct { { #name, unit, (resource_count), (resources), \ &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); /** |