zephyr/subsys
Tomasz Bursztyka 8d7bb8ffd8 device: Refactor device structures
When the device driver model got introduced, there were no concept of
SYS_INIT() which can be seen as software service. These were introduced
afterwards and reusing the device infrastructure for simplicity.
However, it meant to allocate a bit too much for something that only
required an initialization function to be called at right time.

Thus refactoring the devices structures relevantly:
- introducing struct init_entry which is a generic init end-point
- struct deviceconfig is removed and struct device owns everything now.
- SYS_INIT() generates only a struct init_entry via calling
  INIT_ENTRY_DEFINE()
- DEVICE_AND_API_INIT() generates a struct device and calls
  INIT_ENTRY_DEFINE()
- init objects sections are in ROM
- device objects sections are in RAM (but will end up in ROM once they
  will be 'constified')

It also generate a tiny memory gain on both ROM and RAM, which is nice.

Perhaps kernel/device.c could be renamed to something more relevant.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-05-08 23:07:44 +02:00
..
bluetooth Bluetooth: controller: Remove legacy LL 2020-05-08 15:07:00 +02:00
canbus canbus: canopen: add program download support 2020-05-08 10:53:42 +02:00
console console: Port to the new timeout API 2020-05-07 11:01:55 +02:00
cpp kconfig: Replace some single-symbol 'if's with 'depends on' 2020-02-08 08:32:42 -05:00
debug kernel: remove legacy fields in _kernel 2020-05-08 17:42:49 +02:00
dfu dfu: use stream_flash in flash_img 2020-05-06 11:14:00 +02:00
disk disk: add stm32 sdmmc disk access driver 2020-05-08 10:53:10 +02:00
fb subsys/cfb: move MSB_FIRST down to font capabilities 2020-04-27 13:27:03 +02:00
fs nvs: fix return with held lock 2020-04-06 22:09:12 -04:00
jwt kconfig: Replace some single-symbol 'if's with 'depends on' 2020-02-08 08:32:42 -05:00
logging logging: syst: enable protocol timestamp in SyS-T message 2020-05-08 17:47:30 +02:00
mgmt mgmt: smp: add UDP transport for SMP 2020-04-17 10:16:25 +03:00
net net: shell: Add command to print information about net_pkt 2020-05-08 13:24:42 +03:00
power timeouts: Fix power _sys_suspend invocation 2020-05-07 11:01:55 +02:00
random drivers: entropy: replace CONFIG_ENTROPY_NAME with DT macro 2020-04-13 09:14:21 -05:00
settings settings: add const qualifier for unmodified data source 2020-05-07 10:51:49 +02:00
shell device: Refactor device structures 2020-05-08 23:07:44 +02:00
stats
storage storage: add stream flash library 2020-05-06 11:14:00 +02:00
testsuite testsuite: Allow user to override minimal logging 2020-05-07 23:47:55 -05:00
tracing dts: Rename DT_HAS_NODE macro to DT_HAS_NODE_STATUS_OKAY 2020-05-06 05:25:41 -05:00
usb usb: Add USB audio implementation 2020-05-08 15:12:27 +02:00
CMakeLists.txt tracing: move tracing under subsys/ 2020-02-07 15:58:05 -05:00
Kconfig tracing: move tracing under subsys/ 2020-02-07 15:58:05 -05:00