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

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

?? sysdep-2.1.h

?? Linux設備驅動程序第二版
?? 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一区二区三区免费野_久草精品视频
麻豆高清免费国产一区| 制服.丝袜.亚洲.中文.综合| 色哟哟精品一区| 2023国产精华国产精品| 亚洲一区二区三区美女| 成人性视频免费网站| 日韩三级精品电影久久久| 亚洲私人黄色宅男| 国产精品1区2区| 精品国产一区二区三区忘忧草 | 日本丰满少妇一区二区三区| 精品久久久久久最新网址| 亚洲国产日韩精品| 日本高清不卡在线观看| 中文字幕一区二区三| 国产成人夜色高潮福利影视| 日韩一区二区电影网| 五月天亚洲精品| 色噜噜狠狠成人中文综合| 国产精品久久久99| 国产精品综合av一区二区国产馆| 91精品国产综合久久久蜜臀粉嫩| 一区二区三区鲁丝不卡| www.亚洲人| 国产精品白丝在线| 成人av网址在线观看| 中文字幕第一区二区| 福利一区在线观看| 日本一区二区视频在线| 国产成人亚洲综合a∨婷婷| 精品国产乱码久久久久久1区2区 | 蜜桃视频一区二区三区在线观看| 在线日韩一区二区| 一区二区三区在线观看国产| av电影天堂一区二区在线 | 亚洲精品乱码久久久久久黑人| 豆国产96在线|亚洲| 国产精品美女久久久久久久| 播五月开心婷婷综合| 一区视频在线播放| 91国产福利在线| 午夜伦欧美伦电影理论片| 欧美色爱综合网| 日韩不卡免费视频| 欧美电影免费观看完整版| 国产中文一区二区三区| 中文字幕精品一区二区精品绿巨人| 成人三级在线视频| 亚洲综合激情另类小说区| 欧美影院精品一区| 麻豆精品国产传媒mv男同| 久久免费的精品国产v∧| 成人免费看视频| 亚洲精品视频在线看| 欧美少妇xxx| 狠狠色丁香九九婷婷综合五月| 国产亚洲短视频| 色婷婷久久久久swag精品| 午夜日韩在线电影| 久久久国产午夜精品| 99re这里只有精品视频首页| 亚洲第一福利一区| 久久久三级国产网站| 日本电影欧美片| 久久精品av麻豆的观看方式| 国产精品卡一卡二卡三| 在线成人小视频| 成人中文字幕合集| 天天操天天色综合| 国产精品久久久久9999吃药| 欧美日韩成人综合天天影院 | 国产天堂亚洲国产碰碰| 91精品91久久久中77777| 看电视剧不卡顿的网站| 亚洲欧美日韩综合aⅴ视频| 日韩一区二区在线看片| 97久久精品人人做人人爽50路| 日韩av电影免费观看高清完整版 | 日韩精品中文字幕在线一区| 国产福利91精品一区二区三区| 亚洲成在线观看| 欧美激情综合在线| 在线播放一区二区三区| 99久久国产免费看| 久久av老司机精品网站导航| 亚洲一本大道在线| **欧美大码日韩| 久久久不卡影院| 欧美高清www午色夜在线视频| 白白色亚洲国产精品| 久久精品免费观看| 亚洲一区二区三区四区在线观看 | 日韩精品一区二区三区在线观看| 91欧美一区二区| 国产激情一区二区三区四区 | 国精品**一区二区三区在线蜜桃| 亚洲国产精品久久久久秋霞影院| 国产精品不卡在线| 国产视频在线观看一区二区三区 | 精品中文字幕一区二区小辣椒| 一区二区三区四区蜜桃| 国产精品日韩精品欧美在线| 久久久精品综合| 精品人在线二区三区| 91精品在线一区二区| 欧美亚洲日本国产| 91香蕉视频污在线| 91免费视频网址| 成人av在线网| 丰满少妇久久久久久久| 国产精品一区二区在线观看不卡| 韩国精品一区二区| 久久激情五月婷婷| 久久精品国产亚洲aⅴ| 久久99热狠狠色一区二区| 日本三级韩国三级欧美三级| 日本女优在线视频一区二区| 日日夜夜免费精品| 免费xxxx性欧美18vr| 蜜芽一区二区三区| 久久99精品一区二区三区三区| 美女视频黄久久| 精品系列免费在线观看| 精品在线视频一区| 国产成人丝袜美腿| 91网上在线视频| 在线观看视频一区二区| 欧美性xxxxxx少妇| 3d动漫精品啪啪一区二区竹菊 | 一本在线高清不卡dvd| 在线视频国产一区| 91精品国产色综合久久不卡电影 | 久久er99热精品一区二区| 国产一区二区剧情av在线| 成人国产精品免费观看视频| 97精品久久久久中文字幕| 欧美日韩三级一区二区| 日韩精品在线网站| 国产精品卡一卡二| 午夜日韩在线观看| 国产乱人伦偷精品视频免下载| 成人午夜精品一区二区三区| 色综合天天综合网国产成人综合天| 欧美性受极品xxxx喷水| 日韩欧美你懂的| 国产拍揄自揄精品视频麻豆| 亚洲精品国产a| 蜜臀av亚洲一区中文字幕| 国产98色在线|日韩| 日本乱人伦一区| 日韩精品一区二区三区swag| 中文字幕一区免费在线观看| 午夜私人影院久久久久| 国产一区二区三区黄视频 | 久久成人麻豆午夜电影| 成人激情视频网站| 555www色欧美视频| 中文字幕在线免费不卡| 美国毛片一区二区三区| eeuss影院一区二区三区| 欧美高清你懂得| 亚洲视频1区2区| 秋霞电影网一区二区| caoporn国产精品| 欧美va亚洲va在线观看蝴蝶网| 国产精品久久夜| 久久www免费人成看片高清| 在线欧美小视频| 国产日产亚洲精品系列| 日韩在线一区二区| 一本大道久久a久久综合| 久久精品一区二区| 青青草精品视频| 欧美性受xxxx| 中文字幕一区免费在线观看| 国产一区二区免费视频| 日韩一区二区在线观看视频播放| 亚洲精品视频在线看| 粉嫩一区二区三区在线看| 日韩亚洲欧美在线观看| 亚洲成人黄色小说| 色综合天天做天天爱| 国产精品污污网站在线观看| 韩国女主播一区| 精品美女一区二区三区| 日韩中文字幕av电影| 欧美老年两性高潮| 亚洲综合成人在线视频| 色综合久久精品| 亚洲色图20p| 不卡视频在线看| 国产精品丝袜久久久久久app| 国产精品一区二区在线看| 精品久久人人做人人爽| 久久疯狂做爰流白浆xx| 欧美一级片免费看| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一区在线视频| 麻豆精品一区二区综合av| 欧美一区二区三区思思人|