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> |
||
|---|---|---|
| .. | ||
| modules | ||
| CMakeLists.txt | ||
| Kconfig | ||
| Kconfig.backends | ||
| Kconfig.template.shell_log_queue_size | ||
| Kconfig.template.shell_log_queue_timeout | ||
| shell_cmds.c | ||
| shell_dummy.c | ||
| shell_fprintf.c | ||
| shell_help.c | ||
| shell_help.h | ||
| shell_history.c | ||
| shell_log_backend.c | ||
| shell_ops.c | ||
| shell_ops.h | ||
| shell_rtt.c | ||
| shell_telnet_protocol.h | ||
| shell_telnet.c | ||
| shell_uart.c | ||
| shell_utils.c | ||
| shell_utils.h | ||
| shell_vt100.h | ||
| shell_wildcard.c | ||
| shell_wildcard.h | ||
| shell.c | ||