zoukankan      html  css  js  c++  java
  • 【驱动开发】file_operations ---linux 2.6.30

    路径: 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 **);
    };


  • 相关阅读:
    『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件
    『Asp.Net 组件』Asp.Net 服务器组件 的开发优势和劣势
    『开源』简单的代码统计工具 开源啦[有图有真相]
    文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: FormMain --- 未能加载基类
    DB2:FETCH FIRST 1 ROWS ONLY
    IEnumerable的几个简单用法
    一个字符串中包含逗号个数
    字符串处理总结之一(C#String类)
    C# 中DateTime的各种使用
    C# 键值对类相关
  • 原文地址:https://www.cnblogs.com/roger0212/p/4436645.html
Copyright © 2011-2022 走看看