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/poll.h>      // COPY_TO_USER */
 

#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)

#include <linux/module.h>      //MODULE_LICENSE("GPL");内核认识的特定许可有, 
                     "GPL"( 适用 GNU 通用公共许可的任何版本 ), 
                     "GPL v2"( 只适用 GPL 版本 2 ), 
                     "GPL and additional rights", 
                     "Dual BSD/GPL", 
                     "Dual MPL/GPL", 
                     "Proprietary".
                除非你的模块明确标识是在内核认识的一个自由许可
                               下,否则就假定它是私有的,内核在模块加载时被"弄污
                               浊"了. 象我们在第 1 章"许可条款"中提到的, 内核开
                               发者不会热心帮助在加载了私有模块后遇到问题的用户.
                MODULE_AUTHOR ( 声明谁编写了模块 ), 
                      MODULE_DESCRIPION( 一个人可读的关于模块做什么的声明 ), 
                               MODULE_VERSION(一个代码修订版本号;看 <linux/module.h> 
                               的注释以便知道创建版本字串使用的惯例), 
                        MODULE_ALIAS ( 模块为人所知的另一个名子 ), 
                          MODULE_DEVICE_TABLE(来告知用户空间, 模块支持那些设备 )

linux 下各个头文件的作用[典]的更多相关文章

  1. linux下SVN忽略文件/文件夹的方法

    linux下SVN忽略文件/文件夹的方法 假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录) ...

  2. linux下执行.sh文件的方法和语法

    linux下执行.sh文件的方法    .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限.       是bash脚本么   可以用touch test.sh ...

  3. Linux下内存映射文件的用法简介

    由于项目需要,所以学习了一下Linux下内存映射文件的用法,在这里共享一下自己的收获,希望大家提出宝贵意见,进行交流. 简介: 内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区 ...

  4. 用脚本如何实现将Linux下的txt文件批量转化为Windows下的txt文件?

    众所周知,Windows和Linux的文件换行回车格式不同,Windows下换行格式是\r\n(回车+换行),Linux下换行格式为\n(只是换行),因此,其中一个操作系统的文本文件若需要在另外一个中 ...

  5. 【Linux学习】Linux下用户组、文件权限详解

    原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在li ...

  6. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  7. Linux下执行.sh文件

    Linux下执行.sh文件有两种情况: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必须有x权限] 二.直接sh 加上文件名.sh,如运行hello.s ...

  8. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

  9. albert1017 Linux下压缩某个文件夹(文件夹打包)

    albert1017 Linux下压缩某个文件夹(文件夹打包) tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录例子:把 ...

随机推荐

  1. SNORT--install ---dependency-resolve

    # ./configure 遇到ERROR: checking for pfring_open in -lpcap... no ERROR!  Libpcap library/headers (lib ...

  2. python基础-第十一篇-11.1JavaScript基础

    JavaScript是一门解释型编程语言,主要是增强html页面的动态效果 JavaScript是有三部分组成:ECMAScript.BOM.DOM 单行注释//   多行/*   */(必须是scr ...

  3. 利用wget批量下载http目录下文件

    原理:下载你需要down的目录页面的index.html,可能名字不是如此!!!之后用wget下载该文件里包含的所有链接! 例如:wget -vE -rLnp -nH --tries=20 --tim ...

  4. Flask之请求和响应

    from flask import Flask from flask import request from flask import render_template from flask impor ...

  5. Linux touch命令

    touch命令不常用,一般用于更改文件时间戳,或创建一个空文件 命令选项 -a:只更改访问时间 -c:--no-create 不创建任何文件 -d:--date=字符串 使用指定字符串表示时间而非当前 ...

  6. redis实现自动输入完成(八)

    1. 介绍 当我们在京东商城的搜索框,输入想要搜索的内容,比如你想要搜索"热水瓶",刚输入一个"热"字,就会出现一个下拉框,列出了很多以"热" ...

  7. SSH secure shell 原理与运用

    转: http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 作者: 阮一峰 日期: 2011年12月21日 SSH是每一台Linux ...

  8. GlusterFS部署

    一.GlusterFS简介 PB级容量.高可用.读写性能.基于文件系统级别共享.分布式.无metadata(元数据)的存储方式. GlusterFS(GNU ClusterFile System)是一 ...

  9. python16_day25【crm】

    一.CRM模拟admin功能 1.过滤功能 2.显示数据分页 3.动态菜单 项目:https://github.com/willianflasky/growup/tree/master/s16/hom ...

  10. 爬虫-Beautiful Soup模块

    阅读目录 一 介绍 二 基本使用 三 遍历文档树 四 搜索文档树 五 修改文档树 六 总结 一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通 ...