![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
随笔
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 · 567 阅读 · 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 · 554 阅读 · 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 · 793 阅读 · 0 评论 -
linux备忘-work queue
kernel work queue使用方法/************************************************************************************** 头文件 ******************************************************************原创 2021-09-27 11:28:56 · 149 阅读 · 0 评论