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

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

?? rwsem.h

?? 嵌入式系統設計與實例開發源碼
?? 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一区二区三区免费野_久草精品视频
jlzzjlzz国产精品久久| 欧美日韩高清一区二区| 国产亚洲婷婷免费| 成人在线综合网| 亚洲视频图片小说| 欧美系列一区二区| 日韩av不卡在线观看| 国产亚洲欧美在线| 91视频在线观看免费| 亚洲丰满少妇videoshd| 日韩欧美一卡二卡| fc2成人免费人成在线观看播放| 中文字幕在线视频一区| 欧美三级中文字幕在线观看| 日本成人在线网站| 国产三级精品视频| 色婷婷av一区二区| 另类小说综合欧美亚洲| 国产精品国产三级国产a| 欧美日韩一本到| 国产在线播放一区二区三区 | 在线观看亚洲成人| 日韩av在线发布| 国产午夜久久久久| 成人一区二区三区视频在线观看| 制服丝袜亚洲精品中文字幕| 中文字幕一区av| 韩国欧美国产一区| 欧美日韩在线综合| 国产精品麻豆欧美日韩ww| 亚洲成av人影院| 99久久国产综合精品麻豆| 久久久久久亚洲综合影院红桃| 亚洲无人区一区| 99精品欧美一区二区蜜桃免费| 色域天天综合网| 一区二区视频在线| 欧美tk—视频vk| 91国产福利在线| 国内精品伊人久久久久影院对白| 一区二区三区在线影院| 国产欧美日韩在线观看| 91精品在线观看入口| 成人动漫在线一区| 蜜桃av一区二区在线观看| 亚洲精品高清视频在线观看| 国产欧美一区二区精品性色超碰| 欧美丰满一区二区免费视频| 91美女在线看| eeuss鲁一区二区三区| 国产一区二区三区日韩| 午夜精品福利一区二区三区av | 日韩电影免费在线| 国产精品高潮呻吟久久| 精品福利一区二区三区 | 欧美日韩精品一区二区三区蜜桃 | 精品国产髙清在线看国产毛片| 91免费国产在线| 精品系列免费在线观看| 五月天激情综合| 一区二区免费视频| 亚洲精品免费一二三区| 国产日韩精品一区| 久久毛片高清国产| 久久婷婷久久一区二区三区| 26uuu另类欧美| 精品国产髙清在线看国产毛片| 91麻豆精品国产91久久久久久| 欧美午夜免费电影| 91成人网在线| 欧美午夜宅男影院| 欧美日韩免费在线视频| 欧美午夜精品久久久久久超碰 | 国产成人在线视频免费播放| 紧缚捆绑精品一区二区| 亚洲麻豆国产自偷在线| 国产偷国产偷亚洲高清人白洁| 欧美人动与zoxxxx乱| 精品亚洲国产成人av制服丝袜| 国产午夜精品一区二区三区视频 | 日本一区二区三区在线观看| 久久精品国产澳门| 日韩高清欧美激情| 免费av网站大全久久| 日韩av不卡一区二区| 久久激情五月激情| 狠狠色丁香九九婷婷综合五月| 麻豆国产91在线播放| 另类成人小视频在线| 狠狠色丁香久久婷婷综合丁香| 激情六月婷婷综合| 成人精品视频一区二区三区| 成人app软件下载大全免费| 色婷婷综合激情| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美日韩中文另类| 精品久久久久av影院 | 岛国精品在线播放| av亚洲精华国产精华| 欧美色区777第一页| 日韩欧美国产精品一区| 中文字幕乱码一区二区免费| 亚洲图片激情小说| 免费一级片91| 成人国产精品免费观看动漫| 欧美日韩亚洲国产综合| 久久综合九色综合欧美亚洲| 欧美国产精品一区二区三区| 亚洲制服欧美中文字幕中文字幕| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产曰批免费观看久久久| 91浏览器在线视频| 日韩久久久久久| 专区另类欧美日韩| 免费的成人av| 色欧美日韩亚洲| 日韩精品中文字幕一区| 最新成人av在线| 狠狠色狠狠色综合日日91app| 91丨porny丨国产入口| 日韩欧美成人一区二区| 亚洲视频一二区| 国产揄拍国内精品对白| 欧美日韩日本视频| 国产精品国模大尺度视频| 麻豆精品在线视频| 欧美伊人久久久久久午夜久久久久| 欧美三级在线视频| 免费在线一区观看| 久久女同互慰一区二区三区| 久久福利资源站| 在线影视一区二区三区| 久久综合色天天久久综合图片| 天天av天天翘天天综合网 | 亚洲国产精品综合小说图片区| 日韩av电影免费观看高清完整版 | 欧美一区二区三区视频在线观看| 久久综合色8888| 日韩精品91亚洲二区在线观看| 99视频在线观看一区三区| 日韩一级在线观看| 亚洲成人激情综合网| 91天堂素人约啪| 欧美激情中文字幕一区二区| 免费人成在线不卡| 欧美日韩成人综合天天影院| 亚洲日本免费电影| caoporn国产精品| 久久精品综合网| 九九精品视频在线看| 91精品黄色片免费大全| 婷婷成人综合网| 欧美人妇做爰xxxⅹ性高电影| 亚洲女厕所小便bbb| 91网页版在线| 亚洲丝袜美腿综合| 91麻豆国产精品久久| 中文字幕一区二区三区视频| 国产suv精品一区二区883| 精品成人一区二区| 开心九九激情九九欧美日韩精美视频电影| 欧美影视一区在线| 亚洲国产色一区| 欧美精品一二三区| 不卡一区二区三区四区| 自拍偷拍国产精品| 欧美一级淫片007| 91极品美女在线| 欧洲精品在线观看| 亚洲午夜电影网| 亚洲国产一区二区视频| 99精品视频在线播放观看| 精品久久一二三区| 国产成人精品免费在线| 欧美专区日韩专区| 色噜噜偷拍精品综合在线| 91视频在线观看免费| 在线免费av一区| 99久久精品情趣| 91麻豆视频网站| 国产视频一区在线观看| 亚洲影院久久精品| 国产另类ts人妖一区二区| 亚洲一级二级在线| 国产精品麻豆视频| 一区二区三区不卡在线观看| 日韩成人免费看| 久久精品国产亚洲a| 久久机这里只有精品| 亚洲午夜久久久久久久久电影网| 69堂亚洲精品首页| 色系网站成人免费| 91国偷自产一区二区三区观看 | 久久精品欧美日韩精品| 日韩理论在线观看| 日本三级韩国三级欧美三级| 国模大尺度一区二区三区| 欧美美女激情18p| 国产精品麻豆久久久| 最新成人av在线|