路径: 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. 【转】Spark:Master High Availability(HA)高可用配置的2种实现

    原博文出自于: 感谢! Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题.如何解决这个 ...

  2. Windows Azure中文博客 Windows Azure入门教学系列 (一): 创建第一个WebRole程序

    http://blogs.msdn.com/b/azchina/ 本文转自:http://blogs.msdn.com/b/azchina/archive/2010/02/09/windows-azu ...

  3. 网站开发综合技术 第一部分HTML 1.3.2表单

    <form id="" name="" method="post/get" action="负责处理的服务端"&g ...

  4. Hadoop的数据采集框架

    问题导读: Hadoop数据采集框架都有哪些? Hadoop数据采集框架异同及适用场景? Hadoop提供了一个高度容错的分布式存储系统,帮助我们实现集中式的数据分析和数据共享.在日常应用中我们比如要 ...

  5. 预采订单管理接收来源App数据

  6. LN : leetcode 529 Minesweeper

    lc 529 Minesweeper 529 Minesweeper Let's play the minesweeper game! You are given a 2D char matrix r ...

  7. PHP语言开发Paypal支付demo的具体实现

    如果我们的应用是面向国际的.那么支付的时候通常会考虑使用paypal.以下为个人写的一个paypal支付示例,已亲测可行.paypal有个很不错的地方就是为开发者提供了sandbox(沙箱)测试功能. ...

  8. SQL 语句在存储过程执行和在SSMS中执行的差异

    SQL 语句在存储过程执行和在SSMS中执行的差异 SSMS是SQlSerever management studio.本文所述情形在SQLServer2008中测试. 有时发现同样几条语句,在SSM ...

  9. Linux 学习(三)

    Linux进程 1.进程 进程:可执行应用程序执行后产生的对应的进程,重量级:进程是由一个线程或多个线程构成: 线程:是计算机中的最小单位,轻量级(依赖和物理性是独立存在的).损耗较低 假设进程1是由 ...

  10. oracle查询性能优化

    原文http://www.cnblogs.com/cnjava/archive/2013/02/28/2937699.html 讲解的oracle数据库面对大数据如何优化查询.