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

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

?? pthread_cond_timedwait.s

?? linux下的C語言庫源碼有一百多M解壓后很不錯
?? S
字號:
/* Copyright (C) 2002, 2003, 2004, 2005, 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.  */#include <sysdep.h>#include <shlib-compat.h>#include <lowlevellock.h>#include <lowlevelcond.h>#include <pthread-errnos.h>#include <kernel-features.h>/* For the calculation see asm/vsyscall.h.  */#define VSYSCALL_ADDR_vgettimeofday	0xffffffffff600000	.text/* int pthread_cond_timedwait (pthread_cond_t *cond, pthread_mutex_t *mutex,			       const struct timespec *abstime)  */	.globl	__pthread_cond_timedwait	.type	__pthread_cond_timedwait, @function	.align	16__pthread_cond_timedwait:.LSTARTCODE:	pushq	%r12.Lpush_r12:	pushq	%r13.Lpush_r13:	pushq	%r14.Lpush_r14:#define FRAME_SIZE 80	subq	$FRAME_SIZE, %rsp.Lsubq:	cmpq	$1000000000, 8(%rdx)	movl	$EINVAL, %eax	jae	18f	/* Stack frame:	   rsp + 80	            +--------------------------+	   rsp + 48 | cleanup buffer           |	            +--------------------------+	   rsp + 40 | old wake_seq value       |	            +--------------------------+	   rsp + 24 | timeout value            |	            +--------------------------+	   rsp + 16 | mutex pointer            |	            +--------------------------+	   rsp +  8 | condvar pointer          |	            +--------------------------+	   rsp +  4 | old broadcast_seq value  |	            +--------------------------+	   rsp +  0 | old cancellation mode    |	            +--------------------------+	*/	cmpq	$-1, dep_mutex(%rdi)	/* Prepare structure passed to cancellation handler.  */	movq	%rdi, 8(%rsp)	movq	%rsi, 16(%rsp)	movq	%rdx, %r13	je	22f	movq	%rsi, dep_mutex(%rdi)	/* Get internal lock.  */22:	movl	$1, %esi	xorl	%eax, %eax	LOCK#if cond_lock == 0	cmpxchgl %esi, (%rdi)#else	cmpxchgl %esi, cond_lock(%rdi)#endif	jnz	1f	/* Unlock the mutex.  */2:	movq	16(%rsp), %rdi	xorl	%esi, %esi	callq	__pthread_mutex_unlock_usercnt	testl	%eax, %eax	jne	16f	movq	8(%rsp), %rdi	incq	total_seq(%rdi)	incl	cond_futex(%rdi)	addl	$(1 << nwaiters_shift), cond_nwaiters(%rdi)	/* Install cancellation handler.  */#ifdef PIC	leaq	__condvar_cleanup(%rip), %rsi#else	leaq	__condvar_cleanup, %rsi#endif	leaq	48(%rsp), %rdi	movq	%rsp, %rdx	callq	__pthread_cleanup_push	/* Get and store current wakeup_seq value.  */	movq	8(%rsp), %rdi	movq	wakeup_seq(%rdi), %r9	movl	broadcast_seq(%rdi), %edx	movq	%r9, 40(%rsp)	movl	%edx, 4(%rsp)	/* Get the current time.  */8:#ifdef __NR_clock_gettime	/* Get the clock number.  Note that the field in the condvar	   structure stores the number minus 1.  */	movq	8(%rsp), %rdi	movl	cond_nwaiters(%rdi), %edi	andl	$((1 << nwaiters_shift) - 1), %edi	/* Only clocks 0 and 1 are allowed so far.  Both are handled in the	   kernel.  */	leaq	24(%rsp), %rsi	movq	__vdso_clock_gettime@GOTPCREL(%rip), %rax	movq	(%rax), %rax	PTR_DEMANGLE (%rax)	jz	26f	call	*%rax	jmp	27f26:	movl	$__NR_clock_gettime, %eax	syscall27:# ifndef __ASSUME_POSIX_TIMERS	cmpq	$-ENOSYS, %rax	je	19f# endif	/* Compute relative timeout.  */	movq	(%r13), %rcx	movq	8(%r13), %rdx	subq	24(%rsp), %rcx	subq	32(%rsp), %rdx#else	leaq	24(%rsp), %rdi	xorl	%esi, %esi	movq	$VSYSCALL_ADDR_vgettimeofday, %rax	callq	*%rax	/* Compute relative timeout.  */	movq	32(%rsp), %rax	movl	$1000, %edx	mul	%rdx		/* Milli seconds to nano seconds.  */	movq	(%r13), %rcx	movq	8(%r13), %rdx	subq	24(%rsp), %rcx	subq	%rax, %rdx#endif	jns	12f	addq	$1000000000, %rdx	decq	%rcx12:	testq	%rcx, %rcx	movq	8(%rsp), %rdi	movq	$-ETIMEDOUT, %r14	js	6f	/* Store relative timeout.  */21:	movq	%rcx, 24(%rsp)	movq	%rdx, 32(%rsp)	movl	cond_futex(%rdi), %r12d	/* Unlock.  */	LOCK#if cond_lock == 0	decl	(%rdi)#else	decl	cond_lock(%rdi)#endif	jne	3f4:	callq	__pthread_enable_asynccancel	movl	%eax, (%rsp)	leaq	24(%rsp), %r10	cmpq	$-1, dep_mutex(%rdi)	movq	%r12, %rdx#ifdef __ASSUME_PRIVATE_FUTEX	movl	$FUTEX_WAIT, %eax	movl	$(FUTEX_WAIT|FUTEX_PRIVATE_FLAG), %esi	cmove	%eax, %esi#else	movl	$0, %eax	movl	%fs:PRIVATE_FUTEX, %esi	cmove	%eax, %esi# if FUTEX_WAIT != 0	orl	$FUTEX_WAIT, %esi# endif#endif	addq	$cond_futex, %rdi	movl	$SYS_futex, %eax	syscall	movq	%rax, %r14	movl	(%rsp), %edi	callq	__pthread_disable_asynccancel	/* Lock.  */	movq	8(%rsp), %rdi	movl	$1, %esi	xorl	%eax, %eax	LOCK#if cond_lock == 0	cmpxchgl %esi, (%rdi)#else	cmpxchgl %esi, cond_lock(%rdi)#endif	jne	5f6:	movl	broadcast_seq(%rdi), %edx	movq	woken_seq(%rdi), %rax	movq	wakeup_seq(%rdi), %r9	cmpl	4(%rsp), %edx	jne	23f	cmpq	40(%rsp), %r9	jbe	15f	cmpq	%rax, %r9	ja	9f15:	cmpq	$-ETIMEDOUT, %r14	jne	8b13:	incq	wakeup_seq(%rdi)	incl	cond_futex(%rdi)	movl	$ETIMEDOUT, %r14d	jmp	14f23:	xorq	%r14, %r14	jmp	24f9:	xorq	%r14, %r1414:	incq	woken_seq(%rdi)24:	subl	$(1 << nwaiters_shift), cond_nwaiters(%rdi)	/* Wake up a thread which wants to destroy the condvar object.  */	cmpq	$0xffffffffffffffff, total_seq(%rdi)	jne	25f	movl	cond_nwaiters(%rdi), %eax	andl	$~((1 << nwaiters_shift) - 1), %eax	jne	25f	addq	$cond_nwaiters, %rdi	cmpq	$-1, dep_mutex-cond_nwaiters(%rdi)	movl	$1, %edx#ifdef __ASSUME_PRIVATE_FUTEX	movl	$FUTEX_WAKE, %eax	movl	$(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), %esi	cmove	%eax, %esi#else	movl	$0, %eax	movl	%fs:PRIVATE_FUTEX, %esi	cmove	%eax, %esi	orl	$FUTEX_WAKE, %esi#endif	movl	$SYS_futex, %eax	syscall	subq	$cond_nwaiters, %rdi25:	LOCK#if cond_lock == 0	decl	(%rdi)#else	decl	cond_lock(%rdi)#endif	jne	10f	/* Remove cancellation handler.  */11:	movq	48+CLEANUP_PREV(%rsp), %rdx	movq	%rdx, %fs:CLEANUP	movq	16(%rsp), %rdi	callq	__pthread_mutex_cond_lock	testq	%rax, %rax	cmoveq	%r14, %rax18:	addq	$FRAME_SIZE, %rsp.Laddq:	popq	%r14.Lpop_r14:	popq	%r13.Lpop_r13:	popq	%r12.Lpop_r12:	retq	/* Initial locking failed.  */1:.LSbl1:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_lock_wait	jmp	2b	/* Unlock in loop requires wakeup.  */3:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_unlock_wake	jmp	4b	/* Locking in loop failed.  */5:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_lock_wait#if cond_lock != 0	subq	$cond_lock, %rdi#endif	jmp	6b	/* Unlock after loop requires wakeup.  */10:#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_unlock_wake	jmp	11b	/* The initial unlocking of the mutex failed.  */16:	movq	8(%rsp), %rdi	movq	%rax, (%rsp)	LOCK#if cond_lock == 0	decl	(%rdi)#else	decl	cond_lock(%rdi)#endif	jne	17f#if cond_lock != 0	addq	$cond_lock, %rdi#endif	cmpq	$-1, dep_mutex-cond_lock(%rdi)	movl	$LLL_PRIVATE, %eax	movl	$LLL_SHARED, %esi	cmovne	%eax, %esi	callq	__lll_unlock_wake17:	movq	(%rsp), %rax	jmp	18b#if defined __NR_clock_gettime && !defined __ASSUME_POSIX_TIMERS	/* clock_gettime not available.  */19:	leaq	24(%rsp), %rdi	xorl	%esi, %esi	movq	$VSYSCALL_ADDR_vgettimeofday, %rax	callq	*%rax	/* Compute relative timeout.  */	movq	32(%rsp), %rax	movl	$1000, %edx	mul	%rdx		/* Milli seconds to nano seconds.  */	movq	(%r13), %rcx	movq	8(%r13), %rdx	subq	24(%rsp), %rcx	subq	%rax, %rdx	jns	20f	addq	$1000000000, %rdx	decq	%rcx20:	testq	%rcx, %rcx	movq	8(%rsp), %rdi	movq	$-ETIMEDOUT, %r14	js	6b	jmp	21b#endif.LENDCODE:	.size	__pthread_cond_timedwait, .-__pthread_cond_timedwaitversioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,		  GLIBC_2_3_2)	.section .eh_frame,"a",@progbits.LSTARTFRAME:	.long	L(ENDCIE)-L(STARTCIE)		# Length of the CIE..LSTARTCIE:	.long	0				# CIE ID.	.byte	1				# Version number.#ifdef SHARED	.string	"zR"				# NUL-terminated augmentation						# string.#else	.ascii	"\0"				# NUL-terminated augmentation						# string.#endif	.uleb128 1				# Code alignment factor.	.sleb128 -8				# Data alignment factor.	.byte	16				# Return address register						# column.#ifdef SHARED	.uleb128 1				# Augmentation value length.	.byte	0x1b				# Encoding: DW_EH_PE_pcrel						# + DW_EH_PE_sdata4.#endif	.byte 0x0c				# DW_CFA_def_cfa	.uleb128 7	.uleb128 8	.byte	0x90				# DW_CFA_offset, column 0x8	.uleb128 1	.align 8.LENDCIE:	.long	.LENDFDE-.LSTARTFDE		# Length of the FDE..LSTARTFDE:	.long	.LSTARTFDE-.LSTARTFRAME		# CIE pointer.#ifdef SHARED	.long	.LSTARTCODE-.			# PC-relative start address						# of the code#else	.long	.LSTARTCODE			# Start address of the code.#endif	.long	.LENDCODE-.LSTARTCODE		# Length of the code.#ifdef SHARED	.uleb128 0				# No augmentation data.#endif	.byte	0x40+.Lpush_r12-.LSTARTCODE	# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 16	.byte	0x8c				# DW_CFA_offset %r12	.uleb128 2	.byte	0x40+.Lpush_r13-.Lpush_r12	# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 24	.byte	0x8d				# DW_CFA_offset %r13	.uleb128 3	.byte	0x40+.Lpush_r14-.Lpush_r13	# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 32	.byte	0x84				# DW_CFA_offset %r14	.uleb128 4	.byte	0x40+.Lsubq-.Lpush_r14		# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 32+FRAME_SIZE	.byte	3				# DW_CFA_advance_loc2	.2byte	.Laddq-.Lsubq	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 32	.byte	0x40+.Lpop_r14-.Laddq		# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 24	.byte	0xce				# DW_CFA_restore %r14	.byte	0x40+.Lpop_r13-.Lpop_r14	# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 16	.byte	0xcd				# DW_CFA_restore %r13	.byte	0x40+.Lpop_r12-.Lpop_r13	# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 8	.byte	0xcc				# DW_CFA_restore %r12	.byte	0x40+.LSbl1-.Lpop_r12		# DW_CFA_advance_loc+N	.byte	14				# DW_CFA_def_cfa_offset	.uleb128 32+FRAME_SIZE	.byte	0x8c				# DW_CFA_offset %r12	.uleb128 2	.byte	0x8d				# DW_CFA_offset %r13	.uleb128 3	.byte	0x84				# DW_CFA_offset %r14	.uleb128 4	.align	8.LENDFDE:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品小蝌蚪| 亚洲精品网站在线观看| 欧美伊人久久久久久久久影院| 国产麻豆视频一区二区| 美女一区二区三区在线观看| 欧美aaaaaa午夜精品| 蜜臀av性久久久久蜜臀aⅴ| 美女视频黄免费的久久| 奇米综合一区二区三区精品视频| 丝袜诱惑制服诱惑色一区在线观看| 亚洲国产精品ⅴa在线观看| 亚洲人成影院在线观看| 国产成人一区在线| 蜜桃av一区二区| 亚洲久本草在线中文字幕| 亚洲成人www| 久久成人免费网| 国产成人精品免费视频网站| 成人黄色免费短视频| 色哟哟国产精品| 日韩一区二区精品葵司在线| 精品国产1区二区| 亚洲欧洲另类国产综合| 一区二区三区不卡视频| 日本不卡视频在线| 成人不卡免费av| 欧美日本乱大交xxxxx| 精品日韩99亚洲| 国产精品嫩草99a| 欧美女孩性生活视频| 国产欧美日韩精品一区| 成人动漫视频在线| 日韩理论片中文av| 欧美日韩一区二区三区四区| 欧美二区三区91| 国产精品久久影院| 日韩精品电影在线观看| 成人av手机在线观看| 欧美乱妇15p| 国产精品久久久久一区二区三区 | 九九精品一区二区| 99精品视频在线播放观看| 欧美一级理论性理论a| 国产精品无圣光一区二区| 日本午夜一本久久久综合| av激情成人网| 久久一夜天堂av一区二区三区 | 国产91丝袜在线播放九色| 久久久一区二区三区捆绑**| 精品国产乱码91久久久久久网站| 国产人妖乱国产精品人妖| 美女网站在线免费欧美精品| 在线视频综合导航| 欧美激情综合五月色丁香小说| 日韩黄色片在线观看| 在线亚洲欧美专区二区| 久久精品网站免费观看| 美女脱光内衣内裤视频久久网站| 色视频欧美一区二区三区| 欧美国产精品一区二区| 国产精品一级片在线观看| 日韩亚洲国产中文字幕欧美| 亚洲五码中文字幕| 99v久久综合狠狠综合久久| 国产亚洲欧美色| 狠狠网亚洲精品| 91免费国产视频网站| 国产精品欧美久久久久一区二区 | 国产福利一区在线| 国产一区二区三区免费看| 日韩一区二区三区视频在线| 亚洲大尺度视频在线观看| 欧美经典三级视频一区二区三区| 久久国产欧美日韩精品| 日韩一区二区免费高清| 美女国产一区二区三区| 日韩欧美高清一区| 免费观看91视频大全| 日韩欧美高清dvd碟片| 久草这里只有精品视频| 久久亚洲精品小早川怜子| 国产在线视频一区二区| 国产亚洲欧美中文| 99久久国产综合精品色伊| 自拍偷拍亚洲欧美日韩| 美女视频黄a大片欧美| 久久亚洲综合色一区二区三区| 欧美三级在线播放| 91在线观看下载| 精品日韩一区二区三区| 天堂成人国产精品一区| 亚洲精品一区二区三区蜜桃下载| 国产一区二三区好的| 国产日本欧美一区二区| 日本乱人伦一区| 久久se这里有精品| 亚洲国产成人自拍| 欧美日本一区二区| 国产成人在线视频网站| 一区二区三区欧美| 精品美女一区二区| 欧美电视剧在线看免费| 国产成人综合亚洲网站| 一区二区三区.www| 日韩三级精品电影久久久| 成人一区二区在线观看| 亚洲欧美偷拍三级| 日韩欧美专区在线| 99国产精品久久久| 久久久精品蜜桃| 国产亚洲精品超碰| 久久久三级国产网站| 久久亚洲一区二区三区四区| 亚洲精品一线二线三线| 欧洲一区二区三区在线| 国产精品77777竹菊影视小说| 亚洲免费av网站| 久久综合色播五月| 欧美日韩视频在线观看一区二区三区 | 欧美激情一区二区三区在线| 欧美综合一区二区| 国产a久久麻豆| 麻豆精品在线观看| 亚洲国产精品久久久男人的天堂| 国产亚洲精品7777| 欧美成人综合网站| 欧美视频一区二区三区在线观看| 国产高清成人在线| 久久日韩粉嫩一区二区三区 | 国产精品欧美久久久久无广告| 久久国产人妖系列| 亚洲一区二区在线观看视频| 国产日韩在线不卡| 精品久久久久一区二区国产| 欧美日韩免费一区二区三区视频| 9久草视频在线视频精品| 国产一区二区不卡在线| 蜜桃久久精品一区二区| 亚洲图片有声小说| 一二三四社区欧美黄| 成人免费视频在线观看| 中文字幕精品三区| 日韩高清一级片| 图片区小说区区亚洲影院| 亚洲综合激情网| 一区二区三区av电影| 亚洲欧美日韩一区二区| 国产精品久久久久婷婷二区次| 欧美韩日一区二区三区| 国产欧美日韩久久| 色狠狠色噜噜噜综合网| 色av一区二区| 2020国产精品| 午夜精品成人在线| 99久久亚洲一区二区三区青草| 91精品国产高清一区二区三区蜜臀 | 26uuu久久天堂性欧美| 精品国产免费人成在线观看| 欧美一区二区三区系列电影| 91精品国产免费| www欧美成人18+| 国产欧美一区视频| 成人免费在线视频| 一二三区精品福利视频| 亚洲成国产人片在线观看| 蜜桃传媒麻豆第一区在线观看| 黄色成人免费在线| 99久久精品国产导航| 欧美色图激情小说| 欧美成人精品二区三区99精品| 成人免费视频一区二区| 日韩欧美的一区| 亚洲va中文字幕| 91免费国产在线| 国产成人免费在线视频| 国产米奇在线777精品观看| 国产精品自拍av| 色天天综合色天天久久| 69av一区二区三区| 国产亚洲欧美在线| 午夜欧美一区二区三区在线播放| 精品一区二区三区在线观看 | 亚洲国产欧美另类丝袜| 蜜乳av一区二区| fc2成人免费人成在线观看播放| 欧美日韩国产一级二级| 久久久精品国产免大香伊| 一区二区三区欧美| 国产一区二区美女诱惑| 色国产综合视频| 国产日本一区二区| 首页亚洲欧美制服丝腿| 成人免费视频视频在线观看免费| 欧美美女网站色| 色一情一伦一子一伦一区| 中文字幕一区二区三区在线播放 | 中文字幕日韩精品一区| 蜜臀国产一区二区三区在线播放 | 欧美激情综合在线| 日韩av网站免费在线|