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

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

?? rwsem.h

?? ARM 嵌入式 系統 設計與實例開發 實驗教材 二源碼
?? H
字號:
#ifndef _ALPHA_RWSEM_H#define _ALPHA_RWSEM_H/* * Written by Ivan Kokshaysky <ink@jurassic.park.msu.ru>, 2001. * Based on asm-alpha/semaphore.h and asm-i386/rwsem.h */#ifndef _LINUX_RWSEM_H#error please dont include asm/rwsem.h directly, use linux/rwsem.h instead#endif#ifdef __KERNEL__#include <linux/compiler.h>#include <linux/list.h>#include <linux/spinlock.h>struct rwsem_waiter;extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *);/* * the semaphore definition */struct rw_semaphore {	long			count;#define RWSEM_UNLOCKED_VALUE		0x0000000000000000L#define RWSEM_ACTIVE_BIAS		0x0000000000000001L#define RWSEM_ACTIVE_MASK		0x00000000ffffffffL#define RWSEM_WAITING_BIAS		(-0x0000000100000000L)#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)	spinlock_t		wait_lock;	struct list_head	wait_list;#if RWSEM_DEBUG	int			debug;#endif};#if RWSEM_DEBUG#define __RWSEM_DEBUG_INIT      , 0#else#define __RWSEM_DEBUG_INIT	/* */#endif#define __RWSEM_INITIALIZER(name) \	{ RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, \	LIST_HEAD_INIT((name).wait_list) __RWSEM_DEBUG_INIT }#define DECLARE_RWSEM(name) \	struct rw_semaphore name = __RWSEM_INITIALIZER(name)static inline void init_rwsem(struct rw_semaphore *sem){	sem->count = RWSEM_UNLOCKED_VALUE;	spin_lock_init(&sem->wait_lock);	INIT_LIST_HEAD(&sem->wait_list);#if RWSEM_DEBUG	sem->debug = 0;#endif}static inline void __down_read(struct rw_semaphore *sem){	long oldcount;#ifndef	CONFIG_SMP	oldcount = sem->count;	sem->count += RWSEM_ACTIVE_READ_BIAS;#else	long temp;	__asm__ __volatile__(	"1:	ldq_l	%0,%1\n"	"	addq	%0,%3,%2\n"	"	stq_c	%2,%1\n"	"	beq	%2,2f\n"	"	mb\n"	".subsection 2\n"	"2:	br	1b\n"	".previous"	:"=&r" (oldcount), "=m" (sem->count), "=&r" (temp)	:"Ir" (RWSEM_ACTIVE_READ_BIAS), "m" (sem->count) : "memory");#endif	if (__builtin_expect(oldcount < 0, 0))		rwsem_down_read_failed(sem);}static inline void __down_write(struct rw_semaphore *sem){	long oldcount;#ifndef	CONFIG_SMP	oldcount = sem->count;	sem->count += RWSEM_ACTIVE_WRITE_BIAS;#else	long temp;	__asm__ __volatile__(	"1:	ldq_l	%0,%1\n"	"	addq	%0,%3,%2\n"	"	stq_c	%2,%1\n"	"	beq	%2,2f\n"	"	mb\n"	".subsection 2\n"	"2:	br	1b\n"	".previous"	:"=&r" (oldcount), "=m" (sem->count), "=&r" (temp)	:"Ir" (RWSEM_ACTIVE_WRITE_BIAS), "m" (sem->count) : "memory");#endif	if (__builtin_expect(oldcount, 0))		rwsem_down_write_failed(sem);}static inline void __up_read(struct rw_semaphore *sem){	long oldcount;#ifndef	CONFIG_SMP	oldcount = sem->count;	sem->count -= RWSEM_ACTIVE_READ_BIAS;#else	long temp;	__asm__ __volatile__(	"	mb\n"	"1:	ldq_l	%0,%1\n"	"	subq	%0,%3,%2\n"	"	stq_c	%2,%1\n"	"	beq	%2,2f\n"	".subsection 2\n"	"2:	br	1b\n"	".previous"	:"=&r" (oldcount), "=m" (sem->count), "=&r" (temp)	:"Ir" (RWSEM_ACTIVE_READ_BIAS), "m" (sem->count) : "memory");#endif	if (__builtin_expect(oldcount < 0, 0)) 		if ((int)oldcount - RWSEM_ACTIVE_READ_BIAS == 0)			rwsem_wake(sem);}static inline void __up_write(struct rw_semaphore *sem){	long count;#ifndef	CONFIG_SMP	sem->count -= RWSEM_ACTIVE_WRITE_BIAS;	count = sem->count;#else	long temp;	__asm__ __volatile__(	"	mb\n"	"1:	ldq_l	%0,%1\n"	"	subq	%0,%3,%2\n"	"	stq_c	%2,%1\n"	"	beq	%2,2f\n"	"	subq	%0,%3,%0\n"	".subsection 2\n"	"2:	br	1b\n"	".previous"	:"=&r" (count), "=m" (sem->count), "=&r" (temp)	:"Ir" (RWSEM_ACTIVE_WRITE_BIAS), "m" (sem->count) : "memory");#endif	if (__builtin_expect(count, 0))		if ((int)count == 0)			rwsem_wake(sem);}static inline void rwsem_atomic_add(long val, struct rw_semaphore *sem){#ifndef	CONFIG_SMP	sem->count += val;#else	long temp;	__asm__ __volatile__(	"1:	ldq_l	%0,%1\n"	"	addq	%0,%2,%0\n"	"	stq_c	%0,%1\n"	"	beq	%0,2f\n"	".subsection 2\n"	"2:	br	1b\n"	".previous"	:"=&r" (temp), "=m" (sem->count)	:"Ir" (val), "m" (sem->count));#endif}static inline long rwsem_atomic_update(long val, struct rw_semaphore *sem){#ifndef	CONFIG_SMP	sem->count += val;	return sem->count;#else	long ret, temp;	__asm__ __volatile__(	"1:	ldq_l	%0,%1\n"	"	addq 	%0,%3,%2\n"	"	addq	%0,%3,%0\n"	"	stq_c	%2,%1\n"	"	beq	%2,2f\n"	".subsection 2\n"	"2:	br	1b\n"	".previous"	:"=&r" (ret), "=m" (sem->count), "=&r" (temp)	:"Ir" (val), "m" (sem->count));	return ret;#endif}#endif /* __KERNEL__ */#endif /* _ALPHA_RWSEM_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人av免费| 亚洲图片欧美色图| 日韩午夜三级在线| 欧美军同video69gay| 欧美艳星brazzers| 欧美无人高清视频在线观看| 欧美体内she精视频| 精品视频免费看| 欧美精品九九99久久| 日韩一区二区三| 精品少妇一区二区三区免费观看| 日韩欧美电影一区| 久久久久久9999| 国产精品家庭影院| 亚洲午夜在线视频| 日韩高清欧美激情| 国产成人在线视频播放| 99在线视频精品| 欧美日韩三级在线| 久久夜色精品国产欧美乱极品| 久久嫩草精品久久久精品 | 亚洲精品国久久99热| 洋洋av久久久久久久一区| 亚洲午夜久久久久久久久久久| 亚洲成人激情自拍| 久久精品国产亚洲高清剧情介绍| 国产尤物一区二区| www.欧美.com| 欧美精品vⅰdeose4hd| 337p粉嫩大胆色噜噜噜噜亚洲| 久久精品人人做| 亚洲一区二区四区蜜桃| 麻豆91在线观看| 成人国产亚洲欧美成人综合网 | 欧美一区二区三区小说| 国产亚洲欧美日韩在线一区| 亚洲免费视频中文字幕| 麻豆精品国产传媒mv男同| 夫妻av一区二区| 欧美人与禽zozo性伦| 久久久精品国产99久久精品芒果 | 午夜精品福利一区二区三区av| 国产在线播精品第三| 日本丰满少妇一区二区三区| 国产精品白丝在线| 日韩成人午夜精品| www..com久久爱| 精品国产三级电影在线观看| 国产精品不卡一区二区三区| 久久爱另类一区二区小说| 色就色 综合激情| 久久亚洲精品小早川怜子| 亚洲国产日韩精品| 成人av免费在线| 精品国产乱码久久久久久蜜臀| 亚洲嫩草精品久久| 豆国产96在线|亚洲| 91麻豆精品国产91久久久久久久久| 国产欧美日韩不卡| 国产高清在线精品| 精品少妇一区二区三区| 丝袜诱惑亚洲看片| 欧美性xxxxxxxx| 亚洲免费观看高清完整版在线观看 | 国产精品网友自拍| 国产精品一二三四| 精品国产欧美一区二区| 日本三级韩国三级欧美三级| 欧美日韩精品一区二区三区 | 亚洲婷婷在线视频| 粉嫩久久99精品久久久久久夜| 久久美女高清视频| 国产伦精品一区二区三区在线观看| 日韩欧美123| 狠狠狠色丁香婷婷综合激情 | 国产精品一区二区不卡| 欧美精品一区二区在线观看| 免费看欧美美女黄的网站| 欧美日本在线看| 日本不卡视频在线观看| 日韩一区二区免费高清| 老鸭窝一区二区久久精品| 91.com视频| 久久国产福利国产秒拍| 精品国产露脸精彩对白| 毛片基地黄久久久久久天堂| 精品国内片67194| 丁香网亚洲国际| 中文字幕在线不卡国产视频| 91麻豆6部合集magnet| 亚洲在线一区二区三区| 欧美精品一卡二卡| 韩国三级在线一区| 国产精品国产馆在线真实露脸 | 日韩专区中文字幕一区二区| 日韩一区二区视频| 国内外成人在线视频| 国产精品全国免费观看高清| 色综合天天狠狠| 天天av天天翘天天综合网色鬼国产| 欧美高清视频一二三区| 国产一区二区0| 亚洲美女视频在线| 欧美一二三区精品| 不卡视频在线看| 视频一区二区欧美| 久久久99精品免费观看| 99re视频这里只有精品| 午夜成人在线视频| 国产三级欧美三级| 91久久一区二区| 激情图片小说一区| 亚洲图片欧美色图| 2020国产成人综合网| 99久久综合国产精品| 蜜桃av一区二区在线观看| 18成人在线观看| 欧美精品一区二| 91精品国产乱码久久蜜臀| 成人av在线资源| 激情另类小说区图片区视频区| 国产精品嫩草影院com| 欧美挠脚心视频网站| 成人综合激情网| 奇米在线7777在线精品 | 午夜电影久久久| 国产精品久久久久aaaa| 日韩视频在线你懂得| 色哟哟精品一区| 岛国精品一区二区| 久久www免费人成看片高清| 亚洲图片自拍偷拍| 亚洲视频一区在线| 国产农村妇女精品| 精品久久久久一区二区国产| 欧美中文字幕不卡| 97久久精品人人做人人爽| 麻豆一区二区99久久久久| 亚洲国产视频在线| 一区二区成人在线| 中文字幕一区二区三区av| 久久先锋影音av| 日韩精品一区在线| 7777精品伊人久久久大香线蕉超级流畅| 成人丝袜视频网| 国产乱码精品一区二区三| 麻豆国产91在线播放| 午夜视黄欧洲亚洲| 五月综合激情日本mⅴ| 天天色综合成人网| 日本一区中文字幕| 久久精品国产秦先生| 三级成人在线视频| 日韩国产在线观看| 亚洲成人精品影院| 视频精品一区二区| 无吗不卡中文字幕| 日本美女视频一区二区| 全国精品久久少妇| 久久成人久久鬼色| 国产一区二区不卡| 丁香桃色午夜亚洲一区二区三区| 国产91富婆露脸刺激对白| 成人亚洲精品久久久久软件| 国产69精品一区二区亚洲孕妇| 人人爽香蕉精品| 国产美女视频91| 懂色av一区二区三区免费观看| 国产精品99久久久久久久vr| 国产精品亚洲第一区在线暖暖韩国 | 日韩欧美成人一区二区| 欧美精品一区二区三区很污很色的| 日韩久久免费av| 久久你懂得1024| 日韩毛片一二三区| 午夜精品久久久| 麻豆国产精品官网| 成人的网站免费观看| 欧美日韩亚洲高清一区二区| 精品91自产拍在线观看一区| 国产精品日韩精品欧美在线| 亚洲国产cao| 国产在线精品一区二区不卡了| 成人aaaa免费全部观看| 欧美精品乱人伦久久久久久| 久久精品一区二区三区av| 亚洲另类春色国产| 国内精品伊人久久久久av一坑| 色综合欧美在线| 久久久亚洲午夜电影| 一区二区在线观看av| 国产在线精品一区二区三区不卡| 99久久99久久精品免费看蜜桃 | 奇米一区二区三区av| 成人性色生活片| 欧美成人性战久久| 亚洲美女电影在线| 国内不卡的二区三区中文字幕| 日本精品免费观看高清观看| 久久只精品国产|