
随笔
xh.wang
谁说做IT的闷骚?我内外兼骚!
展开
-
linux备忘-typeof高级用法
typeof 高级用法细节 基础用法 功能: typeof用于获取参数“param”的类型 typeof(param) 基本用法 /**定义一个int型变量a**/ int a; /**定义一个与a类型一样的变量b**/ typeof(a) b; 高级用法 先说结论 当typeof 对象想要的是指针时推荐使用加1操作,即“typeof((a)+1)”,这样当传入非指针时引发编译错误 举例说明 详情请参考kernel源码kfifo实现。 看个高级用法的例子: #define kfifo_reset(fi原创 2021-10-11 11:00:57 · 691 阅读 · 0 评论 -
linux备忘-必须使用copy_from_user的原因
关于为什么要使用copy_from_user的一些原因 首先必须明确一点,不使用copy_from_user而是用memcopy在一些情况下是完全可以的(比如关闭了CONFIG_ARM64_SW_TTBR0_PAN 内核配置后)。 之所以要使用copy_from_user有以下2个原因 安全性 memcpy函数只是一个内存搬运,而copy_from_user有做access_ok判断(内核地址安全访问,具体看内核该函数定义)。 两相比较,显而易见的是memcpy并不安全。用户在对接口进行攻击时完全可以传入一原创 2021-10-08 13:50:07 · 682 阅读 · 0 评论 -
linux备忘-驱动class 节点
驱动class create 模版demo代码如下: struct class *pSmClass = NULL; //设备类指针 //读取xxx节点 static ssize_t xxx_show(struct class *class, struct class_attribute *attr, char *buf) { return 0; } //写入xxx节点 static ssize_t xxx_store(struct class *class, struct class_a原创 2021-09-30 16:00:35 · 1000 阅读 · 0 评论 -
linux备忘-work queue
kernel work queue 使用方法 /************************************************************************************ ** 头文件 ** ****************************************************************原创 2021-09-27 11:28:56 · 192 阅读 · 0 评论