所需头文件 | #include <linux/fs.h> |
函数原型 | int register_chrdev(unsigned int major, const char *name,struct file_operations *fops) |
函数传入值 | major:设备驱动程序向系统申请的主设备号,如果为0则系统为此驱动程序动态地分配一个主设备号 |
name:设备名 | |
fops:对各个调用的入口点 | |
函数返回值 | 成功:如果是动态分配主设备号,此返回所分配的主设备号。且设备名就会出现在/proc/devices文件里 |
出错:-1 |
所需头文件 | #include <linux/fs.h> |
函数原型 | int unregister_chrdev(unsigned int major, const char *name) |
函数传入值 | major:设备的主设备号,必须和注册时的主设备号相同 |
name:设备名 | |
函数返回值 | 成功:0,且设备名从/proc/devices文件里消失 |
出错:-1 |
所需头文件 | #include <linux/fs.h> |
函数原型 | int register_chrdev_region (dev_t first, unsigned int count, char *name) int alloc_chrdev_region (dev_t *dev, unsigned int firstminor, unsigned int count, char *name) void unregister_chrdev_region (dev_t first, unsigned int count) |
函数传入值 | first:要分配的设备号的初始值 count:要分配(释放)的设备号数目 name:要申请设备号的设备名称(在/proc/devices和sysfs中显示) dev:动态分配的第一个设备号 |
函数返回值 | 成功:0(只限于两种注册函数) |
出错:-1(只限于两种注册函数) |
所需头文件 | #include <linux/cdev.h> |
函数原型 | sturct cdev *cdev_alloc(void) void cdev_init(struct cdev *cdev, struct file_operations *fops) int cdev_add (struct cdev *cdev, dev_t num, unsigned int count) void cdev_del(struct cdev *dev) |
函数传入值 | cdev:需要初始化/注册/删除的struct cdev结构 fops:该字符设备的file_operations结构 num:系统给该设备分配的第一个设备号 count:该设备对应的设备号数量 |
函数返回值 | 成功: cdev_alloc:返回分配到的struct cdev结构指针 cdev_add:返回0 |
出错: cdev_alloc:返回NULL cdev_add:返回 -1 |
注意 | 虽然这是对设备文件执行的第一个操作,但却不是驱动程序一定要声明的操作。若这个函数的入口为NULL,那么设备的打开操作将永远成功,但系统不会通知驱动程序。 |
所需头文件 | #include <linux/fs.h> |
函数原型 | ssize_t (*read) (struct file *filp, char *buff, size_t count, loff_t *offp) ssize_t (*write) (struct file *filp, const char *buff, size_t count, loff_t *offp) |
函数传入值 | filp:文件指针 |
buff:指向用户缓冲区 | |
count:传入的数据长度 | |
offp:用户在文件中的位置 | |
函数返回值 | 成功:写入的数据长度 |
所需头文件 | #include <asm/uaccess.h> |
函数原型 | unsigned long copy_to_user(void *to, const void *from, unsigned long count) unsigned long copy_from_user(void *to, const void *from, unsigned long count) |
函数传入值 | to:数据目的缓冲区 |
from:数据源缓冲区 | |
count:数据长度 | |
函数返回值 | 成功:写入的数据长度 失败:-EFAULT |
所需头文件 | #include <linux/fs.h> |
函数原型 | int(*ioctl)(struct inode* inode, struct file* filp, unsigned int cmd, unsigned long arg) |
函数传入值 | inode:文件的内核内部结构指针 |
filp:被打开的文件描述符 | |
cmd:命令类型 | |
arg:命令相关参数 |
所需头文件 | #include <linux/malloc.h> | |
函数原型 | void *kmalloc(unsigned int len,int flags) | |
函数传入值 | len:希望申请的字节数 | |
flags | GFP_KERNEL:内核内存的通常分配方法,可能引起睡眠 | |
GFP_BUFFER:用于管理缓冲区高速缓存 | ||
GFP_ATOMIC:为中断处理程序或其他运行于进程上下文之外的代码分配内存,且不会引起睡眠 | ||
GFP_USER:用户分配内存,可能引起睡眠 | ||
GFP_HIGHUSER:优先高端内存分配 | ||
__GFP_DMA:DMA数据传输请求内存 | ||
__GFP_HIGHMEN:请求高端内存 | ||
函数返回值 | 成功:写入的数据长度 失败:-EFAULT |
所需头文件 | #include <linux/malloc.h> |
函数原型 | void kfree(void * obj) |
函数传入值 | obj:要释放的内存指针 |
函数返回值 | 成功:写入的数据长度 失败:-EFAULT |
所需头文件 | #include <linux/malloc.h> |
函数原型 | unsigned long get_zeroed_page(int flags) unsigned long __get_free_page(int flags) unsigned long __get_free_page(int flags,unsigned long order) unsigned long __get_dma_page(int flags,unsigned long order) |
函数传入值 | flags:同kmalloc() |
order:要请求的页面数,以2为底的对数 | |
函数返回值 | 成功:返回指向新分配的页面的指针 失败:-EFAULT |
所需头文件 | #include <linux/malloc.h> |
函数原型 | unsigned long free_page(unsigned long addr) unsigned long free_pages(unsigned long addr, unsigned long order) |
函数传入值 | addr:要释放的内存起始地址 |
order:要请求的页面数,以2为底的对数 | |
函数返回值 | 成功:写入的数据长度 失败:-EFAULT |
所需头文件 | #include <linux/kernel> | |
函数原型 | int printk(const char * fmt, …) | |
函数传入值 | fmt: 日志级别 | KERN_EMERG:紧急时间消息 |
KERN_ALERT:需要立即采取动作的情况 | ||
KERN_CRIT:临界状态,通常涉及严重的硬件或软件操作失败 | ||
KERN_ERR:错误报告 | ||
KERN_WARNING:对可能出现的问题提出警告 | ||
KERN_NOTICE:有必要进行提示的正常情况 | ||
KERN_INFO:提示性信息 | ||
KERN_DEBUG:调试信息 | ||
…:与printf()相同 | ||
函数返回值 | 成功:0 失败:-1 |
注意 | 要开启klogd和syslogd服务,消息才能正常输出。 |
目 录 名 称 | 目 录 内 容 | | 目 录 名 称 | 目 录 内 容 |
apm | 高级电源管理信息 | locks | 内核锁 | |
cmdline | 内核命令行 | meminfo | 内存信息 | |
cpuinfo | CPU相关信息 | misc | 杂项 | |
devices | 设备信息(块设备/字符设备) | modules | 加载模块列表 | |
dma | 使用的DMA通道信息 | mounts | 加载的文件系统 | |
filesystems | 支持的文件系统信息 | partitions | 系统识别的分区表 | |
interrupts | 中断的使用信息 | rtc | 实时时钟 | |
ioports | I/O端口的使用信息 | stat | 全面统计状态表 | |
kcore | 内核映像 | swaps | 对换空间的利用情况 | |
kmsg | 内核消息 | version | 内核版本 | |
ksyms | 内核符号表 | uptime | 系统正常运行时间 | |
loadavg | 负载均衡 | … | … |
目 录 名 称 | 目 录 内 容 | | 目 录 名 称 | 目 录 内 容 |
cmdline | 命令行参数 | cwd | 当前工作目录的链接 | |
environ | 环境变量值 | exe | 指向该进程的执行命令文件 | |
fd | 一个包含所有文件描述符的目录 | maps | 内存映像 | |
mem | 进程的内存被利用情况 | statm | 进程内存状态信息 | |
stat | 进程状态 | root | 链接此进程的root目录 | |
status | 进程当前状态,以可读的方式显示出来 | … | … |
欢迎光临 DIY编程器网 (http://diybcq.com./) | Powered by Discuz! X3.2 |