#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/kref.h>
#include <asm/uaccess.h>
#include <linux/usb.h>
#include <linux/mutex.h>
就我自己学习LDD了解到这些头文件的作用啊 LDD看了挺长时间 发现了 看了等于白看
现在把这些 咋咋乱乱的 都 了解了解
**#include <linux/kernel.h>
int printk(const cha *fmt,...)
container_of(pointer,type,filed);一个方便使用的宏,它可以用于包含摸个结构中的指针获得结构本身的指针。
**#include <linux/errno.h>#define
定义了 这些了。。
**#include <linux/init.h>
module_init(init_funciton); module_exit(cleanup_function);用于指定模块的初始化和清除函数的宏
__init __initdata
__exit __exitdata
**#include <linux/slab.h>
kamlloc(size_t size,int flags);
kfree(void obj);
**#include <linux/module.h>
必备的头文件,它必须包含在模块源代码中
** #include <linux/kref.h>
![]()
![]()
**#include <asm/uaccess.h>
copy_from_user
copy_to_user
access_ok(int type,const void *addr,unsigned long size)验证指向用户空间的指针是否可用。如果允许访问,access_of返回非零值。
put_user()
get_user()
__put_user();
__get_user()
** #include <linux/usb.h>
重要的usb 头文件 这个东东要有
**#include <linux/mutex.h>
应该是 互锁 机制 spinlock semaphore
void init_MUTEX(struct semaphore *sem).
再接再厉 这XX 头好痛。