FUCKKKK
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
/* 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;
|
||||
}
|
||||
Reference in New Issue
Block a user