zephyr/subsys/shell/modules
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
..
CMakeLists.txt shell: modules: Add date commands to display or set date 2020-03-10 15:04:12 +02:00
date_service.c shell: modules: Add date commands to display or set date 2020-03-10 15:04:12 +02:00
device_service.c device: Refactor device structures 2020-05-08 23:07:44 +02:00
Kconfig shell: modules: Add date commands to display or set date 2020-03-10 15:04:12 +02:00
kernel_service.c kernel: interrupt/idle stacks/threads as array 2020-03-16 23:17:36 +02:00