路径: linux-2.6.30/include/linux/fs.h

struct file_operations {

struct module   *owner;

loff_t                  (*llseek)                                       (struct file *, loff_t, int);

ssize_t              (*read)                                         (struct file *, char __user *, size_t, loff_t *);

ssize_t              (*write)                                         (struct file *, const char __user *, size_t, loff_t *);

ssize_t              (*aio_read)                                 (struct kiocb *, const struct iovec *, unsigned long, loff_t);

ssize_t              (*aio_write)                                  (struct kiocb *, const struct iovec *, unsigned long, loff_t);

int                       (*readdir)                                      (struct file *, void *, filldir_t);

unsigned int     (*poll)                                           (struct file *, struct poll_table_struct *);

int                        (*ioctl)                                          (struct inode *, struct file *, unsigned int, unsigned long);

long                    (*unlocked_ioctl)                       (                          struct file *, unsigned int, unsigned long);  // 新版 ioctl 去掉了inode 参数

long                    (*compat_ioctl)                          (struct file *, unsigned int, unsigned long);

int                        (*mmap)                                     (struct file *, struct vm_area_struct *);

int                        (*open)                                        (struct inode *, struct file *);

int                        (*flush)                                        (struct file *, fl_owner_t id);

int                        (*release)                                   (struct inode *, struct file *);

int                        (*fsync)                                        (struct file *, struct dentry *, int datasync);

int                        (*aio_fsync)                                (struct kiocb *, int datasync);

int                        (*fasync)                                      (int, struct file *, int);

int                        (*lock)                                          (struct file *, int, struct file_lock *);

ssize_t                (*sendpage)                              (struct file *, struct page *, int, size_t, loff_t *, int);

unsigned long  (*get_unmapped_area)          (struct file *, unsigned long, unsigned long, unsigned long, unsigned long);

int                        (*check_flags)                           (int);

int                        (*flock)                                         (struct file *, int, struct file_lock *);

ssize_t               (*splice_write)                            (struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);

ssize_t               (*splice_read)                            (struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);

int                        (*setlease)                                 (struct file *, long, struct file_lock **);

};

【驱动开发】file_operations ---linux 2.6.30的更多相关文章

  1. (57)Linux驱动开发之三Linux字符设备驱动

    1.一般情况下,对每一种设备驱动都会定义一个软件模块,这个工程模块包含.h和.c文件,前者定义该设备驱动的数据结构并声明外部函数,后者进行设备驱动的具体实现. 2.典型的无操作系统下的逻辑开发程序是: ...

  2. 嵌入式驱动开发之---Linux ALSA音频驱动(一)

    本文的部分内容参考来自DroidPhone的博客(http://blog.csdn.net/droidphone/article/details/6271122),关于ALSA写得很不错的文章,只是少 ...

  3. Linux设备驱动开发环境的搭建(转)

    经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往 ...

  4. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  5. Linux驱动开发概述

    原文出处:http://www.cnblogs.com/jacklu/p/4722563.html Linux设备分类 设备的驱动程序也要像裸机程序那样进行一些硬件操作,不同的是驱动程序需要" ...

  6. 嵌入式Linux驱动开发日记

    嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...

  7. 嵌入式linux驱动开发之点亮led(驱动编程思想之初体验)

    这节我们就开始开始进行实战啦!这里顺便说一下啊,出来做开发的基础很重要啊,基础不好,迟早是要恶补的.个人深刻觉得像这种嵌入式的开发对C语言和微机接口与原理是非常依赖的,必须要有深厚的基础才能hold的 ...

  8. Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRjYXN0Y3Bw/font/5a6L5L2T/font ...

  9. 驱动编程思想之初体验 --------------- 嵌入式linux驱动开发之点亮LED

    这节我们就开始开始进行实战啦!这里顺便说一下啊,出来做开发的基础很重要啊,基础不好,迟早是要恶补的.个人深刻觉得像这种嵌入式的开发对C语言和微机接口与原理是非常依赖的,必须要有深厚的基础才能hold的 ...

随机推荐

  1. Hadoop回收站及fs.trash参数详解

    前言: Linux系统里,个人觉得最大的不方便之一就是没有回收站的概念.rm -rf很容易造成极大的损失.而在Hadoop或者说HDFS里面,有trash(回收站)的概念,可以使得数据被误删以后,还可 ...

  2. Java多线程(二) synchronized 针对对象进行锁定

    http://www.cnblogs.com/QQParadise/articles/5059824.html 1.方法内的变量为线程安全的 2.实例变量非线程安全的 public class Has ...

  3. ACM_发工资(简单贪心)

    发工资咯: Time Limit: 2000/1000ms (Java/Others) Problem Description: 作为广财大的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日 ...

  4. Oracle 参考脚本

    一.创建物化视图 --新建表空间 CREATE TABLESPACE MLOG_TBS LOGGING DATAFILE 'mlog_tbs.dbf' SIZE 32M AUTOEXTEND ON N ...

  5. pyinstaller遇到的坑

    最近接了一个python的活,具体的就不展开,大概就是需要搭建一个服务器,接收客户端上传文件,调用算法模型,然后返回相应的数据.算法模块用的是tensorflow模块,里面一大堆东西,网上看了很多,最 ...

  6. 上传txt文件编码格式判断(文本乱码解决方法)

    说明 通过ajax或者浏览上传文本文件,上传时候c#处理时候因为文本格式的创建不同,在获取内容时候会出现中文乱码. 解决方法 通过上传的文件流,判断文件的编码格式,在使用对应的编码格式获取文本内容 # ...

  7. LINQ数据库技术

    LINQ(Language Integrated Qyery),中文名字是语言集成查询.它提供一个统一的编程概念和语法,编程人员不需要关心将要访问的是关系数据库还是XML数据,或是远程的对象,它都采用 ...

  8. js中将html文档写入静态界面当中

    1.静态界面当中: <div id="test"></div> 2.在js当中写入 $("#test").append(html文档内容 ...

  9. 存储过程中高性能安全式SQL拼接

    不少开发人员在进行SQL拼接时头痛之极,不知道如何进行拼接操作才会更安全又不影响性能,下面我以存储过程为例与大家分享一个相对比较安全高效的方法 简介:存储过程(Stored Procedure)是在大 ...

  10. url-safe base64 && base64

    1: 为什么需要base64? ASCII码一共规定了128个字符的编码,这128个符号,范围在[0,127]之间. 其中,[0,31],及127, 33个属于不可打印的控制字符. 在电子邮件传输信息 ...