linux 下各个头文件的作用[典]
2.6.30.4的头文件的位置和2.6.25.8的不一样,除去内核源码下的include目录外,
在arch/arm/mach-s3c2410/和arch/arm/plat-s3c24xx/目录下都有include目录的。
#include <linux/kernel.h> // printk()
#include <linux/slab.h> // kmalloc()
#include <linux/fs.h> // file_operation,inode_operations,super_operations
#include <linux/errno.h> // error codes */
#include <linux/types.h> // size_t等各种系统typedef的数据类型 */
#include <linux/fcntl.h> // O_ACCMODE */
#include <linux/init.h> // #define module_init(x) __initcall(x);
// #define module_exit(x) __exitcall(x);
#include <linux/miscdevice.h> // extern int misc_register();
// 注册miscdevice结构体成员变量设备
// extern int misc_deregister();
// 注销miscdevice结构体成员变量设备
#include <linux/cdev.h> // void cdev_init()
// struct cdev *cdev_alloc(void);
// void cdev_put(struct cdev *p);
// int cdev_add(struct cdev *, dev_t, unsigned);
// void cdev_del(struct cdev *);
// void cd_forget(struct inode *);
#include <mach/hardware.h> // 和GPIO口操作相关的函数定义的头文件对应的源文件在
// /arch/arm/plat-s3c24xx/gpio.c
// void s3c2410_gpio_cfgpin(pin,function);
// unsigned int s3c2410_gpio_getcfg(pin);
// void s3c2410_gpio_pullup(pin,to);
// int s3c2410_gpio_getpull(pin);
// void s3c2410_gpio_setpin(lin,to);
// unsigned int s3c2410_gpio_getpin(pin);
// unsigned int s3c2410_modify_misccr(clear,chang)
// int s3c2410_gpio_getirq(pin);
// int s3c2410_gpio_irq2pin(pin);
#include <mach/regs-gpio.h> // 和GPIO口相关的一些宏定义
//(在arch/arm/mach-s3c2410/mach)
#include <linux/platform_device.h>
#include <linux/interrupt.h> // typedef irqreturn_t (*irq_handler_t)
// (int, void *);
// extern void free_irq(unsigned int, void *);
// extern void disable_irq(unsigned int irq);
// extern void enable_irq(unsigned int irq);
// 等和中断相关函数的声明
#include <linux/wait.h> // wake_up_interruptible唤醒 q 指定的注册在等待队列
//上的进/程。该函数不能直接的立即唤醒进程,而是由调
// 度程序转换上下文,调整为可运行状态。
// DECLARE_WAIT_QUEUE_HEAD(button_waitq);声明队列为
// 全局变量
// wait_event_interruptible该函数修改task的状态
// 为 TASK_INTERRUPTIBLE,意味着改进程将不会继续运
// 行直到被唤醒,然后被添加到等待队列wq中
#include <linux/poll.h> // poll_wait
#include <asm/uaccess.h> // copy_to_user和copy_from_user
#include <asm/io.h> // __raw_readl __raw_writel
#include <linux/clk.h> // struct clk *clk_get
// (struct device *dev, const char *id);
// unsigned long clk_get_rate(struct clk *clk);
#include <plat/clock.h> // struct clk;结构体的定义(在arch/arm/plat-
// s3c/plat/include/clock.arch中,对应的源文件在
// /arm/plat-s3c/clock.c)
#include <linux/device.h> //包含了device、class 、device_driver等结构的定义
#include <mach/regs-mem.h> // 和bank相关的寄存器的宏定义
#include <asm/div64.h> // Linux内核中64位除法函数do_div
#include <linux/fb.h> // struct fb_info 结构体的定义
#include <mach/fb.h> // struct s3c2410fb_display
//(在arch/arm/mach-s3c2410/include/mach/fb.h)
"GPL"( 适用 GNU 通用公共许可的任何版本 ),
"GPL v2"( 只适用 GPL 版本 2 ),
"GPL and additional rights",
"Dual BSD/GPL",
"Dual MPL/GPL",
"Proprietary".
除非你的模块明确标识是在内核认识的一个自由许可
MODULE_AUTHOR ( 声明谁编写了模块 ),
MODULE_DESCRIPION( 一个人可读的关于模块做什么的声明 ),
MODULE_VERSION(一个代码修订版本号;看 <linux/module.h>
MODULE_ALIAS ( 模块为人所知的另一个名子 ),
MODULE_DEVICE_TABLE(来告知用户空间, 模块支持那些设备 )
linux 下各个头文件的作用[典]的更多相关文章
- linux下SVN忽略文件/文件夹的方法
linux下SVN忽略文件/文件夹的方法 假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录) ...
- linux下执行.sh文件的方法和语法
linux下执行.sh文件的方法 .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限. 是bash脚本么 可以用touch test.sh ...
- Linux下内存映射文件的用法简介
由于项目需要,所以学习了一下Linux下内存映射文件的用法,在这里共享一下自己的收获,希望大家提出宝贵意见,进行交流. 简介: 内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区 ...
- 用脚本如何实现将Linux下的txt文件批量转化为Windows下的txt文件?
众所周知,Windows和Linux的文件换行回车格式不同,Windows下换行格式是\r\n(回车+换行),Linux下换行格式为\n(只是换行),因此,其中一个操作系统的文本文件若需要在另外一个中 ...
- 【Linux学习】Linux下用户组、文件权限详解
原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在li ...
- Linux下几种文件传输命令 sz rz sftp scp
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...
- Linux下执行.sh文件
Linux下执行.sh文件有两种情况: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必须有x权限] 二.直接sh 加上文件名.sh,如运行hello.s ...
- [原创] Linux下几种文件传输命令 sz rz sftp scp介绍
Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...
- albert1017 Linux下压缩某个文件夹(文件夹打包)
albert1017 Linux下压缩某个文件夹(文件夹打包) tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录例子:把 ...
随机推荐
- LeetCode 笔记系列11 First Missing Positive [为什么我们需要insight]
题目: Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2 ...
- Servlet------>response
request代表了请求 response代表响应 HttpServletResponse setStatus();----->发送状态码 setHeader();---->发送响应头 g ...
- wcur LOCATE +
w字符串处理 DROP PROCEDURE IF EXISTS w_unique; DELIMITER /w/ CREATE PROCEDURE w_unique() BEGIN DECLARE do ...
- [已解决]ubuntu下chrome和firefox输入框内无法快捷键全选
问题现象: 在chrome或firefox浏览器(其他地方没试)的输入框中使用ctr + a进行全选失效,在google中找到了这个已经解决的http://askubuntu.com/question ...
- 关于Android项目隐藏标题栏的方法总结
1.在代码中添加这么一行代码 this.requestWindowFeature(Window.FEATURE_NO_TITLE); 注意:这段代码需要写在setContentView()之前,否则会 ...
- puma 配置,启动脚本
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/menxu_work/article/details/24547923 配置: puma_server ...
- Runtime Permission.
http://blog.csdn.net/lmj623565791/article/details/50709663: 本文出自:[张鸿洋的博客] 一.概述 随着Android 6.0发布以及普及,我 ...
- 011-HQL中级1-Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍
如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: hive; Total MapReduce jobs Launching Job out since ...
- Spring第四弹—–Spring的三种实例化bean的方式
1.使用类构造器实例化 1 <bean id=“orderService" class="cn.itcast.OrderServiceBean"/> 2. ...
- 安装pip环境以及pip常用命令使用
1.去到Python的官网下载pip包,下载地址是:https://pypi.python.org/pypi/pip#downloads 2.下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录 ...