MODULE_DEVICE_TABLE
__attribute__((alias(__stringify(A)))) 设置函数、变量的别名
#include <stdio.h> #define __stringify_1(x...) #x #define __stringify(x...) __stringify_1(x) void a(int n) __attribute__((alias(__stringify(A)))); //void sys_socket(int n) __attribute__((alias("SyS_socket"))); void A(int num) { printf("%d\n", num); } int main(void) { a(1); }
驱动程序里经常看到MODULE_DEVICE_TABLE这个宏定义,一般用于动态加载驱动也就是热插拔的时候使用
#define MODULE_DEVICE_TABLE(type, name) \ extern typeof(name) __mod_##type##__##name##_device_table \ __attribute__ ((unused, alias(__stringify(name))))
在编译时,从所有驱动程序中提取此信息,并创建一个设备表。
插入设备时,内核会引用设备表,并且如果找到与添加设备的设备/供应商ID匹配的条目,则将加载驱动
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2018-04-12 linux command ------ netstat(显示网络信息)
2017-04-12 贴片机贴片焊盘设计注意