路径: 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. (斯特林公式)51NOD 1058 N的阶乘的长度

    输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Out ...

  2. less新手入门(一) 变量、extend扩展

    前景提要 个人在学习less时候的学习笔记及个人总结,主要是结合less中文网来学习的,但是说是中文网并不是中文呀,看起来很耽误时间,为了避免以后再次看的时候还要翻译思考,特意做此总结,方便以后查阅. ...

  3. tomcat 参数调优

    JAVA_OPTS="-Xms2g -Xmx2g  -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath= ...

  4. DP Codeforces Round #FF (Div. 1) A. DZY Loves Sequences

    题目传送门 /* DP:先用l,r数组记录前缀后缀上升长度,最大值会在三种情况中产生: 1. a[i-1] + 1 < a[i+1],可以改a[i],那么值为l[i-1] + r[i+1] + ...

  5. Spring加载applicationContext.xml实现spring容器管理的单例模式

    package com.etc.pojo; import org.springframework.context.ApplicationContext; import org.springframew ...

  6. 向Linus学习,让代码具有good taste

    在最近关于 Linus Torvalds 的一个采访中,这位 Linux 的创始人,在采访过程中大约 14:20 的时候,提及了关于代码的 “good taste”.good taste?采访者请他展 ...

  7. 聊聊MyBatis缓存机制

    https://tech.meituan.com/mybatis_cache.html 前言 MyBatis是常见的Java数据库访问层框架.在日常工作中,开发人员多数情况下是使用MyBatis的默认 ...

  8. Linux shell脚本中 数组的声明:

    数组的声明: 1)array[key]=value # array[0]=one,array[1]=two 复制代码 2)declare -a array # array被当作数组名 复制代码 3)a ...

  9. 远程监视jboss应用java内存的配置(实测) .

    前言 因为最近一个项目部署在客户那边运行一个月左右就会出现java内存溢出的问题,为了时时监控java内存的情况需要,需要远程查看服务器上java内存的一些情况.在公司模拟部署了远程监视linux下项 ...

  10. dubbo之服务降级

    向注册中心写入动态配置覆盖规则:(通过由监控中心或治理中心的页面完成) RegistryFactory registryFactory = ExtensionLoader.getExtensionLo ...