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

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

?? lowlevellock.h

?? linux下的C語言庫源碼有一百多M解壓后很不錯
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.   This file is part of the GNU C Library.   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#ifndef _LOWLEVELLOCK_H#define _LOWLEVELLOCK_H	1#ifndef __ASSEMBLER__# include <time.h># include <sys/param.h># include <bits/pthreadtypes.h># include <kernel-features.h># include <tcb-offsets.h># ifndef LOCK_INSTR#  ifdef UP#   define LOCK_INSTR	/* nothing */#  else#   define LOCK_INSTR "lock;"#  endif# endif#else# ifndef LOCK#  ifdef UP#   define LOCK#  else#   define LOCK lock#  endif# endif#endif#define SYS_futex		240#define FUTEX_WAIT		0#define FUTEX_WAKE		1#define FUTEX_CMP_REQUEUE	4#define FUTEX_WAKE_OP		5#define FUTEX_LOCK_PI		6#define FUTEX_UNLOCK_PI		7#define FUTEX_TRYLOCK_PI	8#define FUTEX_PRIVATE_FLAG	128#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE	((4 << 24) | 1)/* Values for 'private' parameter of locking macros.  Yes, the   definition seems to be backwards.  But it is not.  The bit will be   reversed before passing to the system call.  */#define LLL_PRIVATE	0#define LLL_SHARED	FUTEX_PRIVATE_FLAG#if !defined NOT_IN_libc || defined IS_IN_rtld/* In libc.so or ld.so all futexes are private.  */# ifdef __ASSUME_PRIVATE_FUTEX#  define __lll_private_flag(fl, private) \  ((fl) | FUTEX_PRIVATE_FLAG)# else#  define __lll_private_flag(fl, private) \  ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))# endif#else# ifdef __ASSUME_PRIVATE_FUTEX#  define __lll_private_flag(fl, private) \  (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))# else#  define __lll_private_flag(fl, private) \  (__builtin_constant_p (private)					      \   ? ((private) == 0							      \      ? ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))	      \      : (fl))								      \   : ({ unsigned int __fl = ((private) ^ FUTEX_PRIVATE_FLAG);		      \	asm ("andl %%gs:%P1, %0" : "+r" (__fl)				      \	     : "i" (offsetof (struct pthread, header.private_futex)));	      \	__fl | (fl); }))# endif	      #endif#ifndef __ASSEMBLER__/* Initializer for compatibility lock.  */#define LLL_LOCK_INITIALIZER		(0)#define LLL_LOCK_INITIALIZER_LOCKED	(1)#define LLL_LOCK_INITIALIZER_WAITERS	(2)#ifdef PIC# define LLL_EBX_LOAD	"xchgl %2, %%ebx\n"# define LLL_EBX_REG	"D"#else# define LLL_EBX_LOAD# define LLL_EBX_REG	"b"#endif#ifdef I386_USE_SYSENTER# ifdef SHARED#  define LLL_ENTER_KERNEL	"call *%%gs:%P6\n\t"# else#  define LLL_ENTER_KERNEL	"call *_dl_sysinfo\n\t"# endif#else# define LLL_ENTER_KERNEL	"int $0x80\n\t"#endif/* Delay in spinlock loop.  */#define BUSY_WAIT_NOP	asm ("rep; nop")#define LLL_STUB_UNWIND_INFO_START \	".section	.eh_frame,\"a\",@progbits\n"		\"5:\t"	".long	7f-6f	# Length of Common Information Entry\n"	\"6:\t"	".long	0x0	# CIE Identifier Tag\n\t"		\	".byte	0x1	# CIE Version\n\t"			\	".ascii \"zR\\0\"	# CIE Augmentation\n\t"		\	".uleb128 0x1	# CIE Code Alignment Factor\n\t"	\	".sleb128 -4	# CIE Data Alignment Factor\n\t"	\	".byte	0x8	# CIE RA Column\n\t"			\	".uleb128 0x1	# Augmentation size\n\t"		\	".byte	0x1b	# FDE Encoding (pcrel sdata4)\n\t"	\	".byte	0xc	# DW_CFA_def_cfa\n\t"			\	".uleb128 0x4\n\t"					\	".uleb128 0x0\n\t"					\	".align 4\n"						\"7:\t"	".long	17f-8f	# FDE Length\n"				\"8:\t"	".long	8b-5b	# FDE CIE offset\n\t"			\	".long	1b-.	# FDE initial location\n\t"		\	".long	4b-1b	# FDE address range\n\t"		\	".uleb128 0x0	# Augmentation size\n\t"		\	".byte	0x16	# DW_CFA_val_expression\n\t"		\	".uleb128 0x8\n\t"					\	".uleb128 10f-9f\n"					\"9:\t"	".byte	0x78	# DW_OP_breg8\n\t"			\	".sleb128 3b-1b\n"#define LLL_STUB_UNWIND_INFO_END \	".byte	0x16	# DW_CFA_val_expression\n\t"		\	".uleb128 0x8\n\t"					\	".uleb128 12f-11f\n"					\"11:\t"	".byte	0x78	# DW_OP_breg8\n\t"			\	".sleb128 3b-2b\n"					\"12:\t"	".byte	0x40 + (3b-2b-1) # DW_CFA_advance_loc\n\t"	\	".byte	0x16	# DW_CFA_val_expression\n\t"		\	".uleb128 0x8\n\t"					\	".uleb128 16f-13f\n"					\"13:\t"	".byte	0x78	# DW_OP_breg8\n\t"			\	".sleb128 15f-14f\n\t"					\	".byte	0x0d	# DW_OP_const4s\n"			\"14:\t"	".4byte	3b-.\n\t"					\	".byte	0x1c	# DW_OP_minus\n\t"			\	".byte	0x0d	# DW_OP_const4s\n"			\"15:\t"	".4byte	18f-.\n\t"					\	".byte	0x22	# DW_OP_plus\n"				\"16:\t"	".align 4\n"						\"17:\t"	".previous\n"/* Unwind info for   1: lea ..., ...   2: call ...   3: jmp 18f   4:   snippet.  */#define LLL_STUB_UNWIND_INFO_3 \LLL_STUB_UNWIND_INFO_START					\"10:\t"	".byte	0x40 + (2b-1b) # DW_CFA_advance_loc\n\t"	\LLL_STUB_UNWIND_INFO_END/* Unwind info for   1: lea ..., ...   0: movl ..., ...   2: call ...   3: jmp 18f   4:   snippet.  */#define LLL_STUB_UNWIND_INFO_4 \LLL_STUB_UNWIND_INFO_START					\"10:\t"	".byte	0x40 + (0b-1b) # DW_CFA_advance_loc\n\t"	\	".byte	0x16	# DW_CFA_val_expression\n\t"		\	".uleb128 0x8\n\t"					\	".uleb128 20f-19f\n"					\"19:\t"	".byte	0x78	# DW_OP_breg8\n\t"			\	".sleb128 3b-0b\n"					\"20:\t"	".byte	0x40 + (2b-0b) # DW_CFA_advance_loc\n\t"	\LLL_STUB_UNWIND_INFO_END#define lll_futex_wait(futex, val, private) \  lll_futex_timed_wait (futex, val, NULL, private)#define lll_futex_timed_wait(futex, val, timeout, private) \  ({									      \    int __status;							      \    register __typeof (val) _val asm ("edx") = (val);			      \    __asm __volatile (LLL_EBX_LOAD					      \		      LLL_ENTER_KERNEL					      \		      LLL_EBX_LOAD					      \		      : "=a" (__status)					      \		      : "0" (SYS_futex), LLL_EBX_REG (futex), "S" (timeout),  \			"c" (__lll_private_flag (FUTEX_WAIT, private)),	      \			"d" (_val), "i" (offsetof (tcbhead_t, sysinfo))	      \		      : "memory");					      \    __status;								      \  })#define lll_futex_wake(futex, nr, private) \  do {									      \    int __ignore;							      \    register __typeof (nr) _nr asm ("edx") = (nr);			      \    __asm __volatile (LLL_EBX_LOAD					      \		      LLL_ENTER_KERNEL					      \		      LLL_EBX_LOAD					      \		      : "=a" (__ignore)					      \		      : "0" (SYS_futex), LLL_EBX_REG (futex),		      \			"c" (__lll_private_flag (FUTEX_WAKE, private)),	      \			"d" (_nr),					      \			"i" (0) /* phony, to align next arg's number */,      \			"i" (offsetof (tcbhead_t, sysinfo)));		      \  } while (0)/* NB: in the lll_trylock macro we simply return the value in %eax   after the cmpxchg instruction.  In case the operation succeded this   value is zero.  In case the operation failed, the cmpxchg instruction   has loaded the current value of the memory work which is guaranteed   to be nonzero.  */#if defined NOT_IN_libc || defined UP# define __lll_trylock_asm LOCK_INSTR "cmpxchgl %2, %1"#else# define __lll_trylock_asm "cmpl $0, %%gs:%P5\n\t" \			   "je 0f\n\t"					      \			   "lock\n"					      \			   "0:\tcmpxchgl %2, %1"#endif#define lll_trylock(futex) \  ({ int ret;								      \     __asm __volatile (__lll_trylock_asm				      \		       : "=a" (ret), "=m" (futex)			      \		       : "r" (LLL_LOCK_INITIALIZER_LOCKED), "m" (futex),      \			 "0" (LLL_LOCK_INITIALIZER),			      \			 "i" (MULTIPLE_THREADS_OFFSET)			      \		       : "memory");					      \     ret; })#define lll_robust_trylock(futex, id) \  ({ int ret;								      \     __asm __volatile (LOCK_INSTR "cmpxchgl %2, %1"			      \		       : "=a" (ret), "=m" (futex)			      \		       : "r" (id), "m" (futex),				      \			 "0" (LLL_LOCK_INITIALIZER)			      \		       : "memory");					      \     ret; })#define lll_cond_trylock(futex) \  ({ int ret;								      \     __asm __volatile (LOCK_INSTR "cmpxchgl %2, %1"			      \		       : "=a" (ret), "=m" (futex)			      \		       : "r" (LLL_LOCK_INITIALIZER_WAITERS),		      \			 "m" (futex), "0" (LLL_LOCK_INITIALIZER)	      \		       : "memory");					      \     ret; })#if defined NOT_IN_libc || defined UP# define __lll_lock_asm_start LOCK_INSTR "cmpxchgl %1, %2\n\t"#else# define __lll_lock_asm_start "cmpl $0, %%gs:%P6\n\t"			      \			      "je 0f\n\t"				      \			      "lock\n"					      \			      "0:\tcmpxchgl %1, %2\n\t"#endif#define lll_lock(futex, private) \  (void)								      \    ({ int ignore1, ignore2;						      \       if (__builtin_constant_p (private) && (private) == LLL_PRIVATE)	      \

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女mm1313爽爽久久久蜜臀| 日韩欧美三级在线| 国产精品亲子乱子伦xxxx裸| 国产精品一区二区x88av| 精品噜噜噜噜久久久久久久久试看| 午夜电影一区二区三区| 欧美男同性恋视频网站| 日韩高清欧美激情| 精品免费日韩av| 国产乱子伦视频一区二区三区 | 精品电影一区二区| 韩日精品视频一区| 综合久久久久综合| 欧美日韩免费观看一区三区| 日本成人在线看| 久久精品在线免费观看| 99精品桃花视频在线观看| 亚洲精品乱码久久久久| 欧美日韩免费在线视频| 看国产成人h片视频| 欧美激情综合在线| 色婷婷av久久久久久久| 日本午夜精品视频在线观看| 久久亚洲一级片| 99久久国产综合精品女不卡| 亚洲成人一二三| 日韩女优电影在线观看| 成人免费看的视频| 亚洲va欧美va国产va天堂影院| 日韩欧美国产精品一区| 波多野结衣精品在线| 亚洲国产精品一区二区久久| 欧美一区二区三区视频| 成人性生交大片免费| 亚洲成人自拍偷拍| 国产精品天天摸av网| 欧美老人xxxx18| 成人一区二区三区在线观看| 一区二区免费看| 久久久欧美精品sm网站| 91福利在线播放| 国产成人免费在线观看| 婷婷中文字幕一区三区| 中文字幕一区二区三区蜜月| 欧美一区日韩一区| 91在线你懂得| 国产激情视频一区二区在线观看 | 国产成人精品三级麻豆| 午夜精品国产更新| 中文字幕亚洲区| 2021国产精品久久精品| 6080午夜不卡| 日本精品裸体写真集在线观看| 国产剧情一区二区| 丝袜国产日韩另类美女| 亚洲女人****多毛耸耸8| 精品国精品国产尤物美女| 91久久精品一区二区三区| 国产精品国产三级国产普通话99 | 国产清纯在线一区二区www| 91黄色免费看| 国产精品 欧美精品| 午夜婷婷国产麻豆精品| 欧美激情一区二区三区不卡 | 国产成人免费av在线| 亚洲一级电影视频| 国产日韩欧美精品综合| 日韩一区二区三区视频在线| 91色视频在线| 国产经典欧美精品| 亚洲视频一区在线| 国产午夜亚洲精品不卡| 日韩精品一区二区三区视频| 91麻豆国产福利在线观看| 国模大尺度一区二区三区| 丝袜诱惑亚洲看片| 亚洲综合视频在线观看| 国产精品乱码人人做人人爱 | 久久综合狠狠综合| 欧美午夜电影网| 91在线视频网址| 成人97人人超碰人人99| 精品一区二区三区欧美| 日本一道高清亚洲日美韩| 视频在线观看国产精品| 亚洲一区二区在线观看视频| 中文字幕在线不卡一区| 国产精品久久毛片a| 国产喷白浆一区二区三区| 欧美一级二级三级乱码| 在线观看91精品国产麻豆| 欧美日韩综合一区| 国产精品久久精品日日| 久久久精品欧美丰满| 欧美日韩一区二区电影| 欧美精品少妇一区二区三区| 欧美日韩一区二区三区在线| 91激情五月电影| 色噜噜狠狠色综合中国| 色综合久久久久综合99| 色综合网色综合| 91免费看`日韩一区二区| 91丝袜高跟美女视频| 91一区二区三区在线观看| 99久久精品国产导航| 欧美三级日本三级少妇99| 欧美少妇一区二区| 欧美男人的天堂一二区| 91精品视频网| 日韩欧美专区在线| 久久青草欧美一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 26uuu亚洲| 亚洲欧洲在线观看av| 亚洲欧美另类小说| 亚洲国产欧美在线| 三级不卡在线观看| 成人美女视频在线观看| 一本色道综合亚洲| 欧美三级中文字幕在线观看| 欧美一区欧美二区| 国产亚洲精品久| 亚洲三级电影网站| 亚洲色图欧美激情| 色综合天天天天做夜夜夜夜做| 91成人看片片| 日韩一区二区三区视频| 中文字幕乱码一区二区免费| 亚洲人成网站精品片在线观看| 亚洲成a人v欧美综合天堂下载| 亚洲欧美一区二区久久 | 色成人在线视频| 这里只有精品电影| 国产精品污网站| 亚洲一二三专区| 国产精品一区二区免费不卡 | 久久国内精品自在自线400部| 国产精品77777竹菊影视小说| 91免费视频网| 欧美成人女星排名| 国产精品美女视频| 日韩激情一二三区| 成人h版在线观看| 91精品国产福利| 亚洲色图在线播放| 久久99热狠狠色一区二区| 99re成人精品视频| 精品国产乱码久久久久久闺蜜| 26uuu精品一区二区在线观看| 一区二区三区高清不卡| 激情五月激情综合网| 欧洲一区二区三区免费视频| 亚洲精品在线一区二区| 亚洲一二三四区不卡| 成人污视频在线观看| 欧美一区二区三区在线电影| ...中文天堂在线一区| 亚洲一区二区三区激情| 国产精品小仙女| 91精品国产全国免费观看| 亚洲欧美日韩人成在线播放| 国产伦精一区二区三区| 欧美精品久久99| 一区二区在线观看免费| 国产69精品久久777的优势| 欧美专区亚洲专区| 国产精品国产三级国产a| 久久99精品网久久| 欧美三日本三级三级在线播放| 久久奇米777| 高清成人在线观看| 久久在线观看免费| 亚洲国产成人av网| 91麻豆国产精品久久| 国产精品久久久久毛片软件| 国产一区福利在线| 日韩欧美国产精品一区| 亚洲国产日韩综合久久精品| 99久久er热在这里只有精品15 | 欧美高清www午色夜在线视频| 亚洲欧美在线视频| 成人午夜看片网址| 国产亚洲综合性久久久影院| 免费不卡在线观看| 日韩欧美一区电影| 蜜臀av性久久久久蜜臀av麻豆| 精品视频123区在线观看| 国产精品三级电影| 成人网在线免费视频| 国产精品理伦片| 99九九99九九九视频精品| 一区二区中文视频| 成年人国产精品| 一区二区三区在线观看网站| 18欧美亚洲精品| 一本色道**综合亚洲精品蜜桃冫 | 亚洲成人资源在线| 欧美乱妇15p| 九九九精品视频| 久久久午夜精品|