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

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

?? sysdep-2.1.h

?? 這些是對(用 )于 書的來源文件" Linux Device Drivers" 。 在這里你(們)找到已經包括在書里的完全來源。 我盡可能地測試了他們, 但是, 可以(可能)有一些問題離開了
?? H
字號:
/* * sysdep-2.1.h -- a trial to centralize changes between 2.0 and 2.1.43 * * export rules changed in 2.1.18 * poll.h is there * cpu_to_le15 etc. appeared in 2.1.10 * they "p" and "s" forms appeared in 2.1.43 */#ifndef _SYSDEP_21_H_#define _SYSDEP_21_H_#ifndef LINUX_VERSION_CODE#  include <linux/version.h>#endif#ifndef VERSION_CODE#  define VERSION_CODE(vers,rel,seq) ( ((vers)<<16) | ((rel)<<8) | (seq) )#endif/* only allow 2.0.x and 2.1.y */#if LINUX_VERSION_CODE < VERSION_CODE(2,0,0)#  error "This kernel is too old: not supported by this file"#endif#if LINUX_VERSION_CODE < VERSION_CODE(2,1,0)#  define LINUX_20#else#  define LINUX_21#endif#include <linux/types.h> /* used later in this header *//* Modularization issues */#if LINUX_VERSION_CODE < VERSION_CODE(2,1,18)#  define __USE_OLD_SYMTAB__#  define EXPORT_NO_SYMBOLS register_symtab(NULL);#  define REGISTER_SYMTAB(tab) register_symtab(tab)#else#  define REGISTER_SYMTAB(tab) /* nothing */#endif#ifdef __USE_OLD_SYMTAB__#  define __MODULE_STRING(s)         /* nothing */#  define MODULE_PARM(v,t)           /* nothing */#  define MODULE_PARM_DESC(v,t)      /* nothing */#  define MODULE_AUTHOR(n)           /* nothing */#  define MODULE_DESCRIPTION(d)      /* nothing */#  define MODULE_SUPPORTED_DEVICE(n) /* nothing */#endif/* * "select" changed in 2.1.23. The implementation is twin, but this * header is new */#if LINUX_VERSION_CODE > VERSION_CODE(2,1,22)#  include <linux/poll.h>#else#  define __USE_OLD_SELECT__#endif/* Other change in the fops are solved using pseudo-types */#ifdef LINUX_21#  define lseek_t      long long#  define lseek_off_t  long long#else#  define lseek_t      int#  define lseek_off_t  off_t#endif/* changed the prototype of read/write */#if defined(LINUX_21) || defined(__alpha__)# define count_t unsigned long# define read_write_t long#else# define count_t int# define read_write_t int#endif#if LINUX_VERSION_CODE < VERSION_CODE(2,1,31)# define release_t void#  define release_return(x) return#else#  define release_t int#  define release_return(x) return (x)#endif/* * access to user space: use the 2.1 functions, * and implement them as macros for 2.0 */#ifdef LINUX_20#  include <asm/segment.h>#  define access_ok(t,a,sz)           (verify_area((t),(a),(sz)) ? 0 : 1)#  define verify_area_20              verify_area#  define copy_to_user(t,f,n)         (memcpy_tofs(t,f,n), 0)#  define __copy_to_user(t,f,n)       copy_to_user((t),(f),(n))#  define copy_to_user_ret(t,f,n,r)   copy_to_user((t),(f),(n))#  define copy_from_user(t,f,n)       (memcpy_fromfs((t),(f),(n)), 0)#  define __copy_from_user(t,f,n)     copy_from_user((t),(f),(n))#  define copy_from_user_ret(t,f,n,r) copy_from_user((t),(f),(n))#  define PUT_USER(val,add)           (put_user((val),(add)), 0)#  define __PUT_USER(val,add)         PUT_USER((val),(add))#  define PUT_USER_RET(val,add,ret)   PUT_USER((val),(add))#  define GET_USER(dest,add)          ((dest)=get_user((add)), 0)#  define __GET_USER(dest,add)        GET_USER((dest),(add))#  define GET_USER_RET(dest,add,ret)  GET_USER((dest),(add))#else#  include <asm/uaccess.h>#  include <asm/io.h>#  define verify_area_20(t,a,sz) (0) /* == success */#  define PUT_USER put_user#  define __PUT_USER __put_user#  define PUT_USER_RET put_user_ret#  define GET_USER get_user#  define __GET_USER __get_user#  define GET_USER_RET get_user_ret#endif/* ioremap */#ifdef LINUX_20# define ioremap vremap# define iounmap vfree#endif/* The use_count of exec_domain and binfmt changed in 2.1.23 */#ifdef LINUX_20#  define INCRCOUNT(p)  ((p)->module ? __MOD_INC_USE_COUNT((p)->module) : 0)#  define CURRCOUNT(p)  ((p)->module && (p)->module->usecount)#  define DECRCOUNT(p)  ((p)->module ? __MOD_DEC_USE_COUNT((p)->module) : 0)#else#  define INCRCOUNT(p)  ((p)->use_count++)#  define CURRCOUNT(p)  ((p)->use_count)#  define DECRCOUNT(p)  ((p)->use_count--)#endif/* register_dynamic no more existent -- just have 0 as inum */#if LINUX_VERSION_CODE >= VERSION_CODE(2,1,29)#  define proc_register_dynamic proc_register#endif#if LINUX_VERSION_CODE < VERSION_CODE(2,1,37)#  define test_and_set_bit(nr,addr)  test_bit((nr),(addr))#  define test_and_clear_bit(nr,addr) clear_bit((nr),(addr))#  define test_and_change_bit(nr,addr) change_bit((nr),(addr))#endif/* 2.1.30 removed these functions. Let's define them, just in case */#if LINUX_VERSION_CODE > VERSION_CODE(2,1,29)#  define queue_task_irq      queue_task#  define queue_task_irq_off  queue_task#endif/* 2.1.10 and 2.1.43 introduced new functions. They are worth using */#if LINUX_VERSION_CODE < VERSION_CODE(2,1,10)#  include <asm/byteorder.h>#  ifdef __LITTLE_ENDIAN#    define cpu_to_le16(x) (x)#    define cpu_to_le32(x) (x)#    define cpu_to_be16(x) htons((x))#    define cpu_to_be32(x) htonl((x))#  else#    define cpu_to_be16(x) (x)#    define cpu_to_be32(x) (x)     extern inline __u16 cpu_to_le16(__u16 x) { return (x<<8) | (x>>8);}     extern inline __u32 cpu_to_le32(__u32 x) { return((x>>24) |             ((x>>8)&0xff00) | ((x<<8)&0xff0000) | (x<<24));}#  endif#  define le16_to_cpu(x)  cpu_to_le16(x)#  define le32_to_cpu(x)  cpu_to_le32(x)#  define be16_to_cpu(x)  cpu_to_be16(x)#  define be32_to_cpu(x)  cpu_to_be32(x)#endif#if LINUX_VERSION_CODE < VERSION_CODE(2,1,43)#  define cpu_to_le16p(addr) (cpu_to_le16(*(addr)))#  define cpu_to_le32p(addr) (cpu_to_le32(*(addr)))#  define cpu_to_be16p(addr) (cpu_to_be16(*(addr)))#  define cpu_to_be32p(addr) (cpu_to_be32(*(addr)))   extern inline void cpu_to_le16s(__u16 *a) {*a = cpu_to_le16(*a);}   extern inline void cpu_to_le32s(__u16 *a) {*a = cpu_to_le32(*a);}   extern inline void cpu_to_be16s(__u16 *a) {*a = cpu_to_be16(*a);}   extern inline void cpu_to_be32s(__u16 *a) {*a = cpu_to_be32(*a);}#  define le16_to_cpup(x) cpu_to_le16p(x)#  define le32_to_cpup(x) cpu_to_le32p(x)#  define be16_to_cpup(x) cpu_to_be16p(x)#  define be32_to_cpup(x) cpu_to_be32p(x)#  define le16_to_cpus(x) cpu_to_le16s(x)#  define le32_to_cpus(x) cpu_to_le32s(x)#  define be16_to_cpus(x) cpu_to_be16s(x)#  define be32_to_cpus(x) cpu_to_be32s(x)#endif#if LINUX_VERSION_CODE < VERSION_CODE(2,1,15)#  define __USE_OLD_REBUILD_HEADER__#endif#if LINUX_VERSION_CODE < VERSION_CODE(2,1,30)#  define in_interrupt() (intr_count!=0)#endif#endif /* _SYSDEP_21_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品最新网址| 五月激情综合婷婷| 天天色天天操综合| 懂色一区二区三区免费观看| 日本高清视频一区二区| 国产日本一区二区| 日韩成人一级片| 色诱视频网站一区| 国产欧美日韩一区二区三区在线观看| 亚洲国产成人av| 91亚洲精品久久久蜜桃| 久久一日本道色综合| 美女高潮久久久| 欧美高清hd18日本| 一区二区欧美在线观看| 床上的激情91.| 国产日本亚洲高清| 亚洲a一区二区| 亚洲精品v日韩精品| 国产精品一线二线三线精华| 欧美日韩国产高清一区二区三区| 日本一区二区动态图| 国产一区不卡在线| 日韩欧美www| 日韩成人免费电影| 欧美精品自拍偷拍| 亚洲第一福利一区| 欧美欧美欧美欧美首页| 亚洲一级二级三级在线免费观看| 色综合久久综合| 国产女人aaa级久久久级| 国产精品夜夜嗨| 国产三区在线成人av| 亚洲另类在线一区| 国产一区二区三区| 久久综合久色欧美综合狠狠| 狠狠色丁香婷婷综合久久片| 制服丝袜日韩国产| 九九视频精品免费| 精品久久久久久久人人人人传媒| 久久精品99久久久| 精品精品国产高清一毛片一天堂| 蜜桃一区二区三区四区| 欧美xxxx在线观看| 国产精品1区二区.| 国产精品免费aⅴ片在线观看| 成人小视频免费在线观看| 一区在线播放视频| 欧美性一二三区| 男人操女人的视频在线观看欧美| 日韩一区二区三区av| 国产精品123| 亚洲视频每日更新| 欧美日韩国产欧美日美国产精品| 视频精品一区二区| 国产欧美视频在线观看| 一本久久a久久免费精品不卡| 午夜欧美大尺度福利影院在线看| 欧美一区二区三区四区久久| 国产剧情一区二区| 亚洲精品美腿丝袜| 日韩女优视频免费观看| www.欧美日韩| 日韩成人免费在线| 国产精品五月天| 欧美吻胸吃奶大尺度电影| 另类小说一区二区三区| 亚洲欧洲日韩av| 欧美成人在线直播| 色呦呦国产精品| 精品一二线国产| 亚洲永久免费av| 国产亚洲成年网址在线观看| 欧美视频在线观看一区二区| 国产伦精品一区二区三区视频青涩 | 久久久午夜精品| 成人高清视频在线观看| 日韩电影在线一区| 中文字幕亚洲欧美在线不卡| 日韩情涩欧美日韩视频| 91蜜桃在线免费视频| 久久 天天综合| 亚洲无线码一区二区三区| 国产欧美精品一区二区三区四区| 欧美视频中文字幕| 白白色亚洲国产精品| 久久激情五月激情| 亚洲国产欧美日韩另类综合 | 日韩精品电影在线观看| 国产精品超碰97尤物18| 欧美大尺度电影在线| 欧美亚男人的天堂| 99天天综合性| 丁香桃色午夜亚洲一区二区三区| 免费欧美在线视频| 天天综合日日夜夜精品| 樱桃视频在线观看一区| 中文字幕一区二区三区在线播放 | 色婷婷精品大视频在线蜜桃视频| 国产一区二区三区美女| 日本色综合中文字幕| 亚洲一二三四久久| 亚洲人成网站影音先锋播放| 久久久久9999亚洲精品| 欧美大度的电影原声| 欧美日韩高清在线| 欧美日韩一本到| 在线观看成人小视频| 91蜜桃婷婷狠狠久久综合9色| 国产精品影视在线| 国产成人午夜精品影院观看视频| 国产一区二区在线视频| 国产制服丝袜一区| 国产一区二区毛片| 国产福利一区在线| 大陆成人av片| 91亚洲大成网污www| 91免费版pro下载短视频| 一本一道综合狠狠老| 99精品桃花视频在线观看| 成人avav在线| 97久久精品人人澡人人爽| 成人av电影免费在线播放| 成人激情动漫在线观看| 色综合天天综合网天天看片| 91黄色激情网站| 欧美日韩久久久久久| 日韩亚洲国产中文字幕欧美| 精品国产三级a在线观看| 精品国产123| 亚洲国产成人一区二区三区| 亚洲欧美另类久久久精品| 亚洲一区二区三区四区在线免费观看 | 在线成人av网站| 日韩欧美色综合网站| 久久精品水蜜桃av综合天堂| 国产精品成人网| 午夜精品国产更新| 久久精品理论片| 99国产精品一区| 欧美高清视频一二三区 | 欧美精品一区二区蜜臀亚洲| 久久久精品tv| 亚洲精品大片www| 人人超碰91尤物精品国产| 国产一区二区在线看| 色欧美片视频在线观看在线视频| 欧美久久一区二区| 中文一区二区完整视频在线观看| 亚洲欧美日韩在线| 久久激情五月婷婷| 欧美在线观看你懂的| 日韩精品一区二区三区四区视频| 综合久久久久久| 久久精品国产久精国产| 色偷偷一区二区三区| 久久免费电影网| 亚洲国产日韩一区二区| 懂色av一区二区三区蜜臀| 欧美日韩高清一区二区| 国产精品久久久久久亚洲伦 | 亚洲电影一区二区| 国产成人免费在线视频| 91精品国产综合久久久蜜臀图片| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产一区二区在线观看免费| 在线一区二区三区四区| 国产欧美日韩在线看| 日本怡春院一区二区| 91久久精品一区二区| 亚洲国产高清不卡| 久久99这里只有精品| 欧美日韩美女一区二区| 亚洲裸体xxx| 床上的激情91.| 久久美女高清视频| 蜜臀精品久久久久久蜜臀| 欧美综合视频在线观看| 国产精品久久精品日日| 国产精品1区2区| 精品国产一区二区三区不卡 | 五月激情丁香一区二区三区| 一本一道综合狠狠老| 国产精品视频免费| 国产一区二区三区在线观看精品| 91精品免费观看| 午夜精品久久久久久久蜜桃app| 色综合天天综合在线视频| 亚洲视频狠狠干| 99久久综合国产精品| 1区2区3区精品视频| 不卡一区中文字幕| 国产精品不卡一区二区三区| 高潮精品一区videoshd| 国产偷国产偷精品高清尤物| 国模大尺度一区二区三区| 久久一日本道色综合| 国产成人av自拍| 中文字幕的久久| 91亚洲精品久久久蜜桃网站|