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

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

?? segment.h

?? <Linux1.0核心游記>電子書+書后源碼+Linux1.0源碼
?? H
字號:
#ifndef _ASM_SEGMENT_H#define _ASM_SEGMENT_Hstatic inline unsigned char get_user_byte(const char * addr){	register unsigned char _v;	__asm__ ("movb %%fs:%1,%0":"=q" (_v):"m" (*addr));	return _v;}#define get_fs_byte(addr) get_user_byte((char *)(addr))static inline unsigned short get_user_word(const short *addr){	unsigned short _v;	__asm__ ("movw %%fs:%1,%0":"=r" (_v):"m" (*addr));	return _v;}#define get_fs_word(addr) get_user_word((short *)(addr))static inline unsigned long get_user_long(const int *addr){	unsigned long _v;	__asm__ ("movl %%fs:%1,%0":"=r" (_v):"m" (*addr)); \	return _v;}#define get_fs_long(addr) get_user_long((int *)(addr))static inline void put_user_byte(char val,char *addr){__asm__ ("movb %0,%%fs:%1": /* no outputs */ :"iq" (val),"m" (*addr));}#define put_fs_byte(x,addr) put_user_byte((x),(char *)(addr))static inline void put_user_word(short val,short * addr){__asm__ ("movw %0,%%fs:%1": /* no outputs */ :"ir" (val),"m" (*addr));}#define put_fs_word(x,addr) put_user_word((x),(short *)(addr))static inline void put_user_long(unsigned long val,int * addr){__asm__ ("movl %0,%%fs:%1": /* no outputs */ :"ir" (val),"m" (*addr));}#define put_fs_long(x,addr) put_user_long((x),(int *)(addr))static inline void __generic_memcpy_tofs(void * to, const void * from, unsigned long n){__asm__("cld\n\t"	"push %%es\n\t"	"push %%fs\n\t"	"pop %%es\n\t"	"testb $1,%%cl\n\t"	"je 1f\n\t"	"movsb\n"	"1:\ttestb $2,%%cl\n\t"	"je 2f\n\t"	"movsw\n"	"2:\tshrl $2,%%ecx\n\t"	"rep ; movsl\n\t"	"pop %%es"	: /* no outputs */	:"c" (n),"D" ((long) to),"S" ((long) from)	:"cx","di","si");}static inline void __constant_memcpy_tofs(void * to, const void * from, unsigned long n){	switch (n) {		case 0:			return;		case 1:			put_user_byte(*(const char *) from, (char *) to);			return;		case 2:			put_user_word(*(const short *) from, (short *) to);			return;		case 3:			put_user_word(*(const short *) from, (short *) to);			put_user_byte(*(2+(const char *) from), 2+(char *) to);			return;		case 4:			put_user_long(*(const int *) from, (int *) to);			return;	}#define COMMON(x) \__asm__("cld\n\t" \	"push %%es\n\t" \	"push %%fs\n\t" \	"pop %%es\n\t" \	"rep ; movsl\n\t" \	x \	"pop %%es" \	: /* no outputs */ \	:"c" (n/4),"D" ((long) to),"S" ((long) from) \	:"cx","di","si")	switch (n % 4) {		case 0:			COMMON("");			return;		case 1:			COMMON("movsb\n\t");			return;		case 2:			COMMON("movsw\n\t");			return;		case 3:			COMMON("movsw\n\tmovsb\n\t");			return;	}#undef COMMON}static inline void __generic_memcpy_fromfs(void * to, const void * from, unsigned long n){__asm__("cld\n\t"	"testb $1,%%cl\n\t"	"je 1f\n\t"	"fs ; movsb\n"	"1:\ttestb $2,%%cl\n\t"	"je 2f\n\t"	"fs ; movsw\n"	"2:\tshrl $2,%%ecx\n\t"	"rep ; fs ; movsl"	: /* no outputs */	:"c" (n),"D" ((long) to),"S" ((long) from)	:"cx","di","si","memory");}static inline void __constant_memcpy_fromfs(void * to, const void * from, unsigned long n){	switch (n) {		case 0:			return;		case 1:			*(char *)to = get_user_byte((const char *) from);			return;		case 2:			*(short *)to = get_user_word((const short *) from);			return;		case 3:			*(short *) to = get_user_word((const short *) from);			*(char *) to = get_user_byte(2+(const char *) from);			return;		case 4:			*(int *) to = get_user_long((const int *) from);			return;	}#define COMMON(x) \__asm__("cld\n\t" \	"rep ; fs ; movsl\n\t" \	x \	: /* no outputs */ \	:"c" (n/4),"D" ((long) to),"S" ((long) from) \	:"cx","di","si","memory")	switch (n % 4) {		case 0:			COMMON("");			return;		case 1:			COMMON("fs ; movsb");			return;		case 2:			COMMON("fs ; movsw");			return;		case 3:			COMMON("fs ; movsw\n\tfs ; movsb");			return;	}#undef COMMON}#define memcpy_fromfs(to, from, n) \(__builtin_constant_p(n) ? \ __constant_memcpy_fromfs((to),(from),(n)) : \ __generic_memcpy_fromfs((to),(from),(n)))#define memcpy_tofs(to, from, n) \(__builtin_constant_p(n) ? \ __constant_memcpy_tofs((to),(from),(n)) : \ __generic_memcpy_tofs((to),(from),(n)))/* * Someone who knows GNU asm better than I should double check the followig. * It seems to work, but I don't know if I'm doing something subtly wrong. * --- TYT, 11/24/91 * [ nothing wrong here, Linus: I just changed the ax to be any reg ] */static inline unsigned long get_fs(void){	unsigned long _v;	__asm__("mov %%fs,%w0":"=r" (_v):"0" (0));	return _v;}static inline unsigned long get_ds(void){	unsigned long _v;	__asm__("mov %%ds,%w0":"=r" (_v):"0" (0));	return _v;}static inline void set_fs(unsigned long val){	__asm__ __volatile__("mov %w0,%%fs": /* no output */ :"r" (val));}#endif /* _ASM_SEGMENT_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费在线观看| 久久福利资源站| 日本一区二区视频在线| 日韩三级av在线播放| 欧美三级电影在线看| 色狠狠一区二区三区香蕉| 成人av电影观看| www.欧美色图| 色婷婷av一区二区三区软件 | 91美女片黄在线观看91美女| 国产福利一区二区三区视频在线| 国产一区二区日韩精品| 韩国v欧美v日本v亚洲v| 国产黄色91视频| 91在线云播放| 欧美日韩激情一区二区三区| 欧美午夜精品免费| 91精品一区二区三区久久久久久| 欧美videossexotv100| 精品日韩av一区二区| 国产精品嫩草久久久久| 亚洲欧美日韩国产综合在线| 亚洲精品乱码久久久久久久久| 亚洲成人资源在线| 青青青伊人色综合久久| 狠狠色伊人亚洲综合成人| 国产成人一区在线| 欧美亚男人的天堂| 日韩欧美国产三级电影视频| 日韩精品一区二| 国产精品白丝在线| 日本欧美一区二区三区乱码| 狠狠色丁香婷婷综合久久片| aa级大片欧美| 日韩一区二区精品在线观看| 国产精品网友自拍| 亚洲一区二区视频在线观看| 国产一区二区三区四区在线观看| 99久久精品国产毛片| 日韩欧美国产一区二区三区| 亚洲三级理论片| 国产在线麻豆精品观看| 欧美探花视频资源| 久久九九久久九九| 美女诱惑一区二区| 91黄视频在线| 国产拍揄自揄精品视频麻豆| 日本美女一区二区| 欧美日韩中文字幕一区二区| 久久久精品2019中文字幕之3| 亚洲电影在线免费观看| 成人ar影院免费观看视频| 精品国产1区二区| 丝袜诱惑亚洲看片| 欧洲一区在线电影| 专区另类欧美日韩| 国产成人免费9x9x人网站视频| 欧美精品色一区二区三区| 亚洲免费视频中文字幕| 成a人片国产精品| 国产亚洲欧美激情| 精品一区二区三区香蕉蜜桃| 欧美另类z0zxhd电影| 亚洲欧美另类图片小说| 久久女同性恋中文字幕| 精品国产亚洲一区二区三区在线观看| 亚洲精品乱码久久久久久日本蜜臀| 国产精品1区2区| 日韩欧美视频一区| 日本怡春院一区二区| 欧美揉bbbbb揉bbbbb| 伊人夜夜躁av伊人久久| 一本色道久久综合狠狠躁的推荐| 国产精品传媒入口麻豆| 国产成人亚洲精品狼色在线| 久久夜色精品国产欧美乱极品| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩国产成人在线免费| 亚洲一区二区三区四区五区中文| 欧洲另类一二三四区| 自拍偷拍国产亚洲| 色诱视频网站一区| 亚洲成人动漫一区| 欧美一卡在线观看| 久久99国产精品久久| 久久精品无码一区二区三区| 国产在线不卡一卡二卡三卡四卡| 久久在线观看免费| 成人激情文学综合网| 亚洲欧美另类久久久精品| 欧美性色欧美a在线播放| 亚洲午夜激情网站| 日韩欧美在线1卡| 国产成人欧美日韩在线电影| 国产精品理论在线观看| 91福利国产精品| 蜜桃传媒麻豆第一区在线观看| 久久综合视频网| 99re在线精品| 日韩专区一卡二卡| 久久久亚洲精华液精华液精华液 | 欧美激情一区二区| youjizz久久| 亚洲福利国产精品| 久久久精品黄色| 在线亚洲高清视频| 国产在线视频一区二区| 亚洲视频每日更新| 日韩一区二区在线免费观看| 国产一区三区三区| 亚洲一区二区美女| 日本一区二区综合亚洲| 在线播放中文一区| 成人国产精品免费网站| 三级久久三级久久| 国产精品家庭影院| 日韩欧美自拍偷拍| 日本韩国一区二区| 国产高清亚洲一区| 视频在线观看国产精品| 日韩理论电影院| 久久先锋影音av鲁色资源网| 欧美色综合久久| www.在线成人| 国产精品自拍av| 五月婷婷综合激情| 亚洲精品欧美激情| 国产午夜精品一区二区三区视频 | 欧美成人精品高清在线播放| 色婷婷久久久久swag精品| 国产一区二区三区精品视频| 婷婷夜色潮精品综合在线| 亚洲国产成人自拍| 久久人人爽人人爽| 国内成人自拍视频| 日韩欧美精品在线| 在线观看成人小视频| 久久精品国产精品亚洲精品| 亚洲女爱视频在线| 久久精品欧美一区二区三区不卡| 欧美另类videos死尸| 日本韩国一区二区三区| 成人激情免费视频| 国产成人三级在线观看| 国产精品影视天天线| 美国十次综合导航| 蜜臀久久久99精品久久久久久| 亚洲国产视频a| 亚洲一二三四区| 亚洲影视在线观看| 亚洲一区二区三区在线| 伊人一区二区三区| 亚洲综合视频在线观看| 亚欧色一区w666天堂| 亚洲人成网站精品片在线观看| 亚洲天堂免费看| 亚洲免费av高清| 亚洲综合清纯丝袜自拍| 亚洲午夜激情网页| 日韩黄色免费网站| 久久99精品久久久久久动态图| 捆绑调教一区二区三区| 久久97超碰国产精品超碰| 国产一区不卡精品| av在线一区二区三区| 91蜜桃传媒精品久久久一区二区| 91成人看片片| 欧美老女人第四色| 久久久久88色偷偷免费| 国产欧美一区视频| 亚洲综合一区二区| 免费成人小视频| 国产+成+人+亚洲欧洲自线| av综合在线播放| 欧美日韩国产另类不卡| 精品国产免费人成在线观看| 精品久久一区二区三区| 国产精品色在线观看| 一区二区高清免费观看影视大全| 午夜精品一区二区三区电影天堂| 日本不卡视频在线| 成人美女视频在线观看18| 欧美性受极品xxxx喷水| 日韩视频一区在线观看| 国产日本欧洲亚洲| 亚洲成人1区2区| 国产老肥熟一区二区三区| 成人av电影在线观看| 欧美一区二区三区在线视频| 国产欧美精品一区二区三区四区| 亚洲主播在线播放| 国产一区二区三区久久久 | 欧美系列在线观看| 精品国产成人系列| 一区二区三区在线视频免费| 麻豆精品国产传媒mv男同| 日本大香伊一区二区三区| 精品三级在线看| 亚洲国产成人av网| 成人免费视频视频在线观看免费|