Files

57 lines
1.7 KiB
Cheetah
Raw Permalink Normal View History

2026-08-09 22:14:01 +08:00
/* Deshab SDK 驱动入口模板
*
* 由 scaffold/new-module.ps1 生成时自动替换:
* {{MODULE_NAME}} -> 驱动名 (如 mydriver)
* {{CLASS}} -> DKM_CLASS_* 类别 (如 DKM_CLASS_MISC)
* {{STAGE}} -> 加载阶段 0-3
*
* 展示最小 DKM 驱动框架: driver_desc + driver_init + driver_exit。
* 构建方式: clang -c main.c -> ld.lld -r -o {{MODULE_NAME}}.drv main.o
* (见 scaffold/driver/build.ps1 片段或 build.ps1 的 Build-DkmDriver)
*/
#include "deshab/driver.h"
#include "deshab/serial.h"
static const dkm_log_api *g_log = 0;
static const char *const g_depends[] = { 0 };
static const char *const g_provides[] = { "{{MODULE_NAME}}" };
__attribute__((visibility("default")))
const dkm_driver_desc driver_desc = {
.magic = DKM_DRIVER_MAGIC,
.abi_version = DKM_ABI_VERSION,
.desc_size = sizeof(dkm_driver_desc),
.name = "{{MODULE_NAME}}",
.version = "1.0",
.vendor = "Deshab",
.driver_class = {{CLASS}},
.stage = {{STAGE}},
.flags = 0,
.priority = 100,
.depends = g_depends,
.depends_count = 0,
.provides = g_provides,
.provides_count = 1,
.min_kernel_abi = DKM_KERNEL_API_VERSION,
.feature_bits = 0,
};
__attribute__((visibility("default")))
int driver_init(const dkm_kernel_api *api, dkm_driver_handle *handle) {
(void)handle;
if (!api || !api->log) return -1;
g_log = api->log;
g_log->info("[{{MODULE_NAME}}] init begin");
/* TODO: 驱动初始化逻辑 */
g_log->info("[{{MODULE_NAME}}] driver ready");
return 0;
}
__attribute__((visibility("default")))
int driver_exit(dkm_driver_handle *handle) {
(void)handle;
if (g_log) g_log->info("[{{MODULE_NAME}}] exit");
return 0;
}