亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scull.h

?? LINUX設備驅動2源代碼
?? H
字號:
/* * scull.h -- definitions for the char module * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyright (C) 2001 O'Reilly & Associates * * The source code in this file can be freely used, adapted, * and redistributed in source or binary form, so long as an * acknowledgment appears in derived source files.  The citation * should list that the code comes from the book "Linux Device * Drivers" by Alessandro Rubini and Jonathan Corbet, published * by O'Reilly & Associates.   No warranty is attached; * we cannot take responsibility for errors or fitness for use. * * $Id: scull.h,v 1.11 2001/07/18 22:28:18 rubini Exp $ */#ifndef _SCULL_H_#define _SCULL_H_#include <linux/ioctl.h> /* needed for the _IOW etc stuff used later *//* version dependencies have been confined to a separate file */#include "sysdep.h"/* * Macros to help debugging */#undef PDEBUG             /* undef it, just in case */#ifdef SCULL_DEBUG#  ifdef __KERNEL__     /* This one if debugging is on, and kernel space */#    define PDEBUG(fmt, args...) printk( KERN_DEBUG "scull: " fmt, ## args)#  else     /* This one for user space */#    define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)#  endif#else#  define PDEBUG(fmt, args...) /* not debugging: nothing */#endif#undef PDEBUGG#define PDEBUGG(fmt, args...) /* nothing: it's a placeholder */#ifndef SCULL_MAJOR#define SCULL_MAJOR 0   /* dynamic major by default */#endif#ifndef SCULL_NR_DEVS#define SCULL_NR_DEVS 4    /* scull0 through scull3 */#endif#ifndef SCULL_P_NR_DEVS#define SCULL_P_NR_DEVS 4  /* scullpipe0 through scullpipe3 */#endif/* * The bare device is a variable-length region of memory. * Use a linked list of indirect blocks. * * "Scull_Dev->data" points to an array of pointers, each * pointer refers to a memory area of SCULL_QUANTUM bytes. * * The array (quantum-set) is SCULL_QSET long. */#ifndef SCULL_QUANTUM#define SCULL_QUANTUM 4000#endif#ifndef SCULL_QSET#define SCULL_QSET    1000#endif/* * The pipe device is a simple circular buffer. Here its default size */#ifndef SCULL_P_BUFFER#define SCULL_P_BUFFER 4000#endif#ifdef CONFIG_DEVFS_FS /* only if enabled, to avoid errors in 2.0 */#include <linux/devfs_fs_kernel.h>#else  typedef void * devfs_handle_t;  /* avoid #ifdef inside the structure */#endif/* * This is somehow a hack: avoid ifdefs in the cleanup code by declaring * an empty procedure as a placeholder for devfs_unregister. This is * only done *unless* <linux/devfs_fs_kernel.h> was included, as that * header already implements placeholder for all the devfs functions *//*............................................... degin-tag devfs-ifdef */#ifndef DEVFS_FL_DEFAULTextern inline void devfs_unregister(devfs_handle_t de) {}#endifextern devfs_handle_t scull_devfs_dir;typedef struct Scull_Dev {   void **data;   struct Scull_Dev *next;   /* next listitem */   int quantum;              /* the current quantum size */   int qset;                 /* the current array size */   unsigned long size;   devfs_handle_t handle;    /* only used if devfs is there */   unsigned int access_key;  /* used by sculluid and scullpriv */   struct semaphore sem;     /* mutual exclusion semaphore     */} Scull_Dev;/* * Split minors in two parts */#define TYPE(dev)   (MINOR(dev) >> 4)  /* high nibble */#define NUM(dev)    (MINOR(dev) & 0xf) /* low  nibble *//* * Different minors behave differently, so let's use multiple fops */extern struct file_operations scull_fops;        /* simplest: global */extern struct file_operations scull_priv_fops;   /* private region   */extern struct file_operations scull_pipe_fops;   /* circular buffer  */extern struct file_operations scull_sngl_fops;   /* single open      */extern struct file_operations scull_user_fops;   /* single process   */extern struct file_operations scull_wusr_fops;   /* single user      *//* * The different configurable parameters */extern int scull_major;     /* main.c */extern int scull_nr_devs;extern int scull_quantum;extern int scull_qset;extern int scull_p_nr_devs;    /* pipe.c */extern int scull_p_buffer;/* * Prototypes for shared functions */int     scull_p_init(void);void    scull_p_cleanup(void);int     scull_access_init(void);void    scull_access_cleanup(void);int     scull_trim(Scull_Dev *dev);ssize_t scull_read (struct file *filp, char *buf, size_t count,                    loff_t *f_pos);ssize_t scull_write (struct file *filp, const char *buf, size_t count,                     loff_t *f_pos);loff_t  scull_llseek (struct file *filp, loff_t off, int whence);int     scull_ioctl (struct inode *inode, struct file *filp,                     unsigned int cmd, unsigned long arg);/* * Ioctl definitions *//* Use 'k' as magic number */#define SCULL_IOC_MAGIC  'k'#define SCULL_IOCRESET    _IO(SCULL_IOC_MAGIC, 0)/* * S means "Set" through a ptr, * T means "Tell" directly with the argument value * G means "Get": reply by setting through a pointer * Q means "Query": response is on the return value * X means "eXchange": G and S atomically * H means "sHift": T and Q atomically */#define SCULL_IOCSQUANTUM _IOW(SCULL_IOC_MAGIC,  1, scull_quantum)#define SCULL_IOCSQSET    _IOW(SCULL_IOC_MAGIC,  2, scull_qset)#define SCULL_IOCTQUANTUM _IO(SCULL_IOC_MAGIC,   3)#define SCULL_IOCTQSET    _IO(SCULL_IOC_MAGIC,   4)#define SCULL_IOCGQUANTUM _IOR(SCULL_IOC_MAGIC,  5, scull_quantum)#define SCULL_IOCGQSET    _IOR(SCULL_IOC_MAGIC,  6, scull_qset)#define SCULL_IOCQQUANTUM _IO(SCULL_IOC_MAGIC,   7)#define SCULL_IOCQQSET    _IO(SCULL_IOC_MAGIC,   8)#define SCULL_IOCXQUANTUM _IOWR(SCULL_IOC_MAGIC, 9, scull_quantum)#define SCULL_IOCXQSET    _IOWR(SCULL_IOC_MAGIC,10, scull_qset)#define SCULL_IOCHQUANTUM _IO(SCULL_IOC_MAGIC,  11)#define SCULL_IOCHQSET    _IO(SCULL_IOC_MAGIC,  12)/* * The other entities only have "Tell" and "Query", because they're * not printed in the book, and there's no need to have all six. * (The previous stuff was only there to show different ways to do it. */#define SCULL_P_IOCTSIZE _IO(SCULL_IOC_MAGIC,   13)#define SCULL_P_IOCQSIZE _IO(SCULL_IOC_MAGIC,   14)/* ... more to come */#define SCULL_IOCHARDRESET _IO(SCULL_IOC_MAGIC, 15) /* debugging tool */#define SCULL_IOC_MAXNR 15#endif /* _SCULL_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区国产| 亚洲在线免费播放| 欧美乱妇20p| 在线观看日韩国产| 欧美日韩国产片| 欧美日韩日日摸| 精品视频在线免费看| 欧美综合色免费| 欧美综合在线视频| 91.麻豆视频| 日韩欧美www| 久久在线观看免费| 久久日韩精品一区二区五区| 久久精品一区二区三区不卡牛牛| 欧美精品一区二区三区蜜臀| 国产欧美一区二区精品性| 久久九九99视频| 亚洲欧美色图小说| 亚洲va韩国va欧美va| 视频在线观看91| 国产精品996| 91豆麻精品91久久久久久| 欧美日韩一本到| 欧美一卡二卡在线观看| 国产视频一区在线播放| 国产精品理论在线观看| 亚洲中国最大av网站| 免费不卡在线观看| 成人av电影在线观看| 91电影在线观看| xnxx国产精品| 亚洲天堂中文字幕| 日本美女一区二区| 不卡av在线免费观看| 欧美日韩综合在线免费观看| 欧美大片在线观看| 亚洲精品视频在线| 精品亚洲国内自在自线福利| 99re这里只有精品首页| 欧美一区二区三区四区视频| 久久久青草青青国产亚洲免观| 亚洲视频在线一区| 免费亚洲电影在线| 色婷婷综合久久久| 久久―日本道色综合久久| 亚洲影视在线观看| 大美女一区二区三区| 欧美日韩国产乱码电影| 欧美激情资源网| 日韩精品亚洲专区| 99久久夜色精品国产网站| 日韩一区二区三区高清免费看看| 国产精品丝袜一区| 精品一二线国产| 91精品国产综合久久精品麻豆| 国产精品久久久久久久久动漫 | 亚洲欧美另类在线| 久久激情综合网| 欧美系列亚洲系列| 国产精品久久久久桃色tv| 久久99精品久久久久久动态图| 91久久国产综合久久| 国产精品天美传媒沈樵| 黄一区二区三区| 欧美一区二区视频观看视频 | 欧美色图在线观看| 国产喂奶挤奶一区二区三区| 伦理电影国产精品| 6080午夜不卡| 午夜视频在线观看一区二区| 色综合天天天天做夜夜夜夜做| 亚洲国产精品成人久久综合一区| 精品在线一区二区| 日韩欧美一区中文| 久久国产精品色| 日韩一二三四区| 久久精品72免费观看| 日韩欧美中文字幕公布| 美女性感视频久久| 日韩亚洲欧美成人一区| 手机精品视频在线观看| 日韩午夜激情电影| 黄色小说综合网站| 欧美国产日韩精品免费观看| 国产99久久精品| 国产精品女同一区二区三区| 不卡视频在线观看| 亚洲精品国产精华液| 欧美伊人久久久久久久久影院 | 五月天亚洲精品| 在线成人av网站| 国产在线麻豆精品观看| 国产欧美日韩一区二区三区在线观看 | ●精品国产综合乱码久久久久| 97国产精品videossex| 亚洲精品日产精品乱码不卡| 91国模大尺度私拍在线视频| 亚洲va国产天堂va久久en| 日韩三区在线观看| 成人h动漫精品一区二| 怡红院av一区二区三区| 91精品国产综合久久久久久久久久| 久久99精品国产麻豆婷婷| 国产日产亚洲精品系列| 91视频在线观看| 无吗不卡中文字幕| 国产亚洲制服色| 色综合久久九月婷婷色综合| 视频一区二区三区入口| 久久久亚洲精品石原莉奈| 91网站视频在线观看| 亚洲线精品一区二区三区| 日韩精品一区二区三区四区视频 | 美女被吸乳得到大胸91| 欧美韩日一区二区三区四区| 精品视频在线免费观看| 国产91精品露脸国语对白| 亚洲一级不卡视频| 国产午夜精品久久| 欧美日韩成人综合| 岛国精品在线播放| 麻豆成人在线观看| 亚洲一区影音先锋| 久久蜜桃一区二区| 制服丝袜亚洲色图| 色先锋aa成人| 国产成人免费av在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 综合婷婷亚洲小说| 久久青草国产手机看片福利盒子| 欧美日韩一二区| 97se亚洲国产综合自在线不卡| 久久国产人妖系列| 日日夜夜免费精品视频| 亚洲欧美在线aaa| 欧美精品一区在线观看| 日韩午夜电影在线观看| 欧美体内she精高潮| av成人动漫在线观看| 国产成人免费网站| 久久99九九99精品| 麻豆一区二区在线| 日本亚洲免费观看| 亚洲成人资源网| 亚洲午夜羞羞片| 亚洲精品国久久99热| 亚洲视频一二三区| 国产精品福利影院| 中文字幕av不卡| 中文字幕第一区二区| 欧美国产欧美综合| 欧美国产欧美综合| 国产精品久久久久影院| 国产欧美日本一区视频| 国产日产精品1区| 欧美激情一区二区| |精品福利一区二区三区| 自拍偷拍欧美激情| 中文字幕永久在线不卡| 亚洲欧美另类久久久精品| 中日韩av电影| 1000精品久久久久久久久| 亚洲色图一区二区| 亚洲国产一二三| 午夜精品久久久久久久| 亚洲一卡二卡三卡四卡| 日本美女一区二区| 日韩和欧美的一区| 国产又粗又猛又爽又黄91精品| 国产成人在线网站| 99精品黄色片免费大全| 日本韩国一区二区| 欧美丰满一区二区免费视频| 欧美一区二区在线不卡| 精品国产91乱码一区二区三区 | 在线综合+亚洲+欧美中文字幕| 日韩一卡二卡三卡| 久久嫩草精品久久久精品一| 欧美激情在线一区二区三区| 一区二区三区在线不卡| 奇米影视一区二区三区| 国产一区二区三区四区五区入口| 成人性生交大合| 欧美日韩小视频| 亚洲精品一区二区三区影院| 亚洲欧洲一区二区在线播放| 亚洲成av人影院| 国产精品自在在线| 欧美日韩精品久久久| 精品国产一区a| 一区二区三区国产精品| 精品一区二区三区在线播放视频| 成人美女视频在线观看| 欧美日韩精品一区二区| 国产精品麻豆欧美日韩ww| 一级中文字幕一区二区| 国产精品69久久久久水密桃| 欧美视频在线一区| 国产人伦精品一区二区| 亚洲成人精品在线观看|