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

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

?? scull.h

?? 這些是對(用 )于 書的來源文件" Linux Device Drivers" 。 在這里你(們)找到已經包括在書里的完全來源。 我盡可能地測試了他們, 但是, 可以(可能)有一些問題離開了
?? H
字號:
/* * scull.h -- definitions for the char module * *********/#include <linux/ioctl.h>/* version dependencies have been confined to a separate file */#define VERSION_CODE(vers,rel,seq) ( ((vers)<<16) | ((rel)<<8) | (seq) )#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#endiftypedef 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;   unsigned int access_key;  /* used by sculluid and scullpriv */   unsigned int usage;       /* lock the device while using it */} 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);read_write_t scull_read (struct inode *inode, struct file *filp,                char *buf, count_t count);read_write_t scull_write (struct inode *inode, struct file *filp,                const char *buf, count_t count);int scull_lseek (struct inode *inode, struct file *filp,                 off_t off, int whence);int scull_ioctl (struct inode *inode, struct file *filp,                 unsigned int cmd, unsigned long arg);#ifdef SCULL_DEBUG#  if LINUX_VERSION_CODE > VERSION_CODE(1,99,3) /* 1.99.4 exported the needed symbols */#    define SCULL_USE_PROC#  endif#endif#ifndef min#  define min(a,b) ((a)<(b) ? (a) : (b))#endif/* * 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久蜜桃| 欧美精选一区二区| 国产乱子伦视频一区二区三区 | 91久久奴性调教| 国产精品88av| 国产丶欧美丶日本不卡视频| 蜜桃精品视频在线| 另类综合日韩欧美亚洲| 美国一区二区三区在线播放| 日韩福利电影在线| 日本不卡高清视频| 美腿丝袜亚洲三区| 久久精品99国产精品日本| 免费观看在线综合色| 精品在线免费视频| 国产米奇在线777精品观看| 国产馆精品极品| 成人高清视频免费观看| 91啪在线观看| 91久久精品网| 91精品国产麻豆| 精品国产乱码久久久久久影片| 久久只精品国产| 亚洲国产高清aⅴ视频| 亚洲视频免费看| 午夜影院在线观看欧美| 久久国产欧美日韩精品| 国产精品一级黄| 91一区一区三区| 91精品国产日韩91久久久久久| 欧美一区二区女人| 中文字幕在线播放不卡一区| 亚洲在线视频网站| 久久99精品国产麻豆婷婷| 国产白丝网站精品污在线入口| 99re8在线精品视频免费播放| 欧美午夜精品免费| 精品日韩在线一区| 亚洲欧洲精品一区二区精品久久久| 亚洲综合另类小说| 国产一区二区三区不卡在线观看 | 成人免费视频在线观看| 亚洲一区二区免费视频| 国产a久久麻豆| 欧美日韩亚洲综合一区二区三区| 久久伊人蜜桃av一区二区| 一区二区视频免费在线观看| 蜜臀av在线播放一区二区三区| 国产99久久久国产精品潘金| 欧美无人高清视频在线观看| 国产亚洲美州欧州综合国| 一区二区三区在线观看视频| 国产一区二区在线观看视频| 欧美在线观看一二区| 国产视频在线观看一区二区三区| 天天综合天天做天天综合| 成人在线视频一区| 欧美精品少妇一区二区三区 | 亚洲欧美怡红院| 美女免费视频一区二区| 欧美亚洲动漫制服丝袜| 国产精品入口麻豆原神| 老司机免费视频一区二区三区| 色老综合老女人久久久| 国产精品毛片a∨一区二区三区| 蜜臀av一区二区在线观看| 欧美吻胸吃奶大尺度电影| 亚洲色图都市小说| 成人午夜激情视频| 国产日韩精品一区二区浪潮av | 日韩欧美www| 亚洲国产裸拍裸体视频在线观看乱了| 成人性生交大片免费| 精品国产乱码久久久久久久久 | 久久av老司机精品网站导航| 欧美日韩视频在线第一区 | 蜜桃视频在线观看一区| 欧美裸体bbwbbwbbw| 亚洲女同一区二区| 91视视频在线观看入口直接观看www | 在线免费不卡电影| 亚洲激情图片一区| 在线精品视频一区二区| 一区二区三区成人| 在线观看成人小视频| 亚洲一区影音先锋| 欧美午夜视频网站| 天天综合天天综合色| 欧美精品日韩一本| 另类小说色综合网站| 精品av久久707| 国产成人av电影在线观看| 久久精品视频免费| 成人爱爱电影网址| 亚洲色图在线播放| 欧美精品视频www在线观看 | 成人午夜视频网站| 日韩久久一区二区| 欧美在线观看一二区| 日本不卡一区二区| 2014亚洲片线观看视频免费| 国产一区二区精品在线观看| 国产精品国产三级国产aⅴ无密码| 不卡欧美aaaaa| 亚洲高清视频中文字幕| 欧美一个色资源| 成人综合激情网| 一区二区三区91| 精品免费国产二区三区| 不卡视频一二三| 日韩在线卡一卡二| 久久久美女毛片| 色婷婷av一区二区| 精品午夜久久福利影院| 国产精品久久久久久久午夜片| 91久久精品一区二区| 精品一区二区三区在线播放 | 久草精品在线观看| 亚洲欧美偷拍另类a∨色屁股| 欧美一区二区国产| 91欧美激情一区二区三区成人| 午夜激情一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 91免费国产在线| 久久激情综合网| 一区二区三区欧美| 久久综合一区二区| 在线电影欧美成精品| www.亚洲激情.com| 精品制服美女久久| 午夜欧美在线一二页| 国产精品蜜臀在线观看| 欧美一级在线免费| 欧美日韩综合不卡| 91在线无精精品入口| 国产精品亚洲第一| 久久精品久久综合| 天天综合色天天| 亚洲乱码一区二区三区在线观看| 久久奇米777| 精品日韩一区二区三区 | 国产一区二区三区四区在线观看| 亚洲主播在线播放| 亚洲天堂成人网| 久久久久久久久久久久久久久99| 91精品在线麻豆| 欧美日本乱大交xxxxx| 91极品视觉盛宴| 色综合久久六月婷婷中文字幕| 国产91在线|亚洲| 国产精品小仙女| 国产一区二区导航在线播放| 麻豆精品久久久| 日韩专区中文字幕一区二区| 亚洲成va人在线观看| 亚洲第一成人在线| 一区二区理论电影在线观看| 亚洲激情男女视频| 亚洲精品一卡二卡| 亚洲乱码国产乱码精品精小说 | 精品一区二区国语对白| 日韩影院免费视频| 日本不卡的三区四区五区| 天天色天天操综合| 午夜电影久久久| 日韩1区2区日韩1区2区| 免费成人av资源网| 九九**精品视频免费播放| 加勒比av一区二区| 国产一区亚洲一区| 国产电影一区在线| 一本色道久久综合亚洲精品按摩| 在线日韩国产精品| 日韩视频在线你懂得| 精品国产一区二区三区四区四| 欧美大胆人体bbbb| 国产女人aaa级久久久级 | 91视频一区二区| 欧美午夜精品久久久久久孕妇| 欧美人伦禁忌dvd放荡欲情| 日韩亚洲欧美一区| 国产欧美日韩另类视频免费观看| 国产精品家庭影院| 亚洲成人第一页| 久久97超碰色| 91欧美一区二区| 91精品国产日韩91久久久久久| 精品国产一区二区三区不卡| 国产精品日韩成人| 偷窥国产亚洲免费视频| 国产福利一区在线| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩中文精品| 久久久久亚洲蜜桃| 亚洲一级二级三级| 国产盗摄一区二区| 91精品国产日韩91久久久久久| 国产精品久久午夜| 久久97超碰国产精品超碰| 色又黄又爽网站www久久|