Да, и сам процесс запускается. Файл init.yaml выглядит так:
entities:
# Entity "client"
- name: ds.Client
connections:
- target: ds.VfsNet
id: {var: _VFS_CONNECTION_ID, include: vfs/defs.h}
@INIT_Client_ENTITY_CONNECTIONS+@
- name: ds.VfsNet
@INIT_VfsNet_ENTITY_CONNECTIONS@
- name: ds.ModemDriver
@INIT_ModemDriver_ENTITY_CONNECTIONS@
@INIT_EXTERNAL_ENTITIES@
В программе драйвера (упрощено для теста):
DNetDriver* _DNetDriverEntryTest(void *context)
{
fprintf(stderr, "_DNetDriverEntryTest()\n");
return(NULL);
}
int main(void)
{
fprintf(stderr, "DNetRegisterDriver...\n");
DNetError err = DNetRegisterDriver(_DNetDriverEntryTest, NULL);
if(err != DNET_EOK)
{
fprintf(stderr, "DNetRegisterDriver failed with %u\n", err);
}
fprintf(stderr, "DNetRegisterDriver passed\n");
// ...
}
При запуске DNetRegisterDriver отрабатывает с кодом DNET_EOK, но _DNetDriverEntryTest не вызывается.
Посмотрел этот пример, вижу, что при компиляции добавляется LWEXT4_LIB. Посмотрел библиотеку liblwext4.a, нашел несколько init функций внутри секции initcall_fs_section, нашел упоминание в vfs/fs.h, там же нашелся REGISTER_FILESYSTEM. Поискал аналогичное для сети, но не нашел.