⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thunk.s

📁 linux-2.6.15.6
💻 S
字号:
	/*	 * Save registers before calling assembly functions. This avoids	 * disturbance of register allocation in some inline assembly constructs.	 * Copyright 2001,2002 by Andi Kleen, SuSE Labs.	 * Subject to the GNU public license, v.2. No warranty of any kind.	 * $Id: thunk.S,v 1.2 2002/03/13 20:06:58 ak Exp $	 */	#include <linux/config.h>	#include <linux/linkage.h>	#include <asm/dwarf2.h>	#include <asm/calling.h>				#include <asm/rwlock.h>			/* rdi:	arg1 ... normal C conventions. rax is saved/restored. */ 		.macro thunk name,func	.globl \name\name:		CFI_STARTPROC	SAVE_ARGS	call \func	jmp  restore	CFI_ENDPROC	.endm	/* rdi:	arg1 ... normal C conventions. rax is passed from C. */ 		.macro thunk_retrax name,func	.globl \name\name:		CFI_STARTPROC	SAVE_ARGS	call \func	jmp  restore_norax	CFI_ENDPROC	.endm		.section .sched.text#ifdef CONFIG_RWSEM_XCHGADD_ALGORITHM	thunk rwsem_down_read_failed_thunk,rwsem_down_read_failed	thunk rwsem_down_write_failed_thunk,rwsem_down_write_failed	thunk rwsem_wake_thunk,rwsem_wake	thunk rwsem_downgrade_thunk,rwsem_downgrade_wake#endif		thunk do_softirq_thunk,do_softirq		thunk __down_failed,__down	thunk_retrax __down_failed_interruptible,__down_interruptible	thunk_retrax __down_failed_trylock,__down_trylock	thunk __up_wakeup,__up		/* SAVE_ARGS below is used only for the .cfi directives it contains. */	CFI_STARTPROC	SAVE_ARGSrestore:	RESTORE_ARGS	ret		CFI_ENDPROC		CFI_STARTPROC	SAVE_ARGSrestore_norax:		RESTORE_ARGS 1	ret	CFI_ENDPROC#ifdef CONFIG_SMP/* Support for read/write spinlocks. */	.text/* rax:	pointer to rwlock_t */	ENTRY(__write_lock_failed)	lock	addl $RW_LOCK_BIAS,(%rax)1:	rep	nop	cmpl $RW_LOCK_BIAS,(%rax)	jne 1b	lock 	subl $RW_LOCK_BIAS,(%rax)	jnz  __write_lock_failed	ret/* rax:	pointer to rwlock_t */	ENTRY(__read_lock_failed)	lock	incl (%rax)1:	rep	nop	cmpl $1,(%rax)	js 1b	lock	decl (%rax)	js __read_lock_failed	ret#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -