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> |
||
|---|---|---|
| .. | ||
| app_smem_aligned.ld | ||
| app_smem_unaligned.ld | ||
| app_smem.ld | ||
| common-ram.ld | ||
| common-rom.ld | ||
| cplusplus-ram.ld | ||
| cplusplus-rom.ld | ||
| debug-sections.ld | ||
| intlist.ld | ||
| kobject-rom.ld | ||
| kobject-text.ld | ||
| kobject.ld | ||
| linker-defs.h | ||
| linker-tool-gcc.h | ||
| linker-tool.h | ||
| rel-sections.ld | ||
| section_tags.h | ||
| sections.h | ||