Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.24 71 lines 1.6 kB view raw
1/* 2 * Save registers before calling assembly functions. This avoids 3 * disturbance of register allocation in some inline assembly constructs. 4 * Copyright 2001,2002 by Andi Kleen, SuSE Labs. 5 * Subject to the GNU public license, v.2. No warranty of any kind. 6 */ 7 8 #include <linux/linkage.h> 9 #include <asm/dwarf2.h> 10 #include <asm/calling.h> 11 #include <asm/rwlock.h> 12 13 /* rdi: arg1 ... normal C conventions. rax is saved/restored. */ 14 .macro thunk name,func 15 .globl \name 16\name: 17 CFI_STARTPROC 18 SAVE_ARGS 19 call \func 20 jmp restore 21 CFI_ENDPROC 22 .endm 23 24 /* rdi: arg1 ... normal C conventions. rax is passed from C. */ 25 .macro thunk_retrax name,func 26 .globl \name 27\name: 28 CFI_STARTPROC 29 SAVE_ARGS 30 call \func 31 jmp restore_norax 32 CFI_ENDPROC 33 .endm 34 35 36 .section .sched.text 37#ifdef CONFIG_RWSEM_XCHGADD_ALGORITHM 38 thunk rwsem_down_read_failed_thunk,rwsem_down_read_failed 39 thunk rwsem_down_write_failed_thunk,rwsem_down_write_failed 40 thunk rwsem_wake_thunk,rwsem_wake 41 thunk rwsem_downgrade_thunk,rwsem_downgrade_wake 42#endif 43 44 thunk __down_failed,__down 45 thunk_retrax __down_failed_interruptible,__down_interruptible 46 thunk_retrax __down_failed_trylock,__down_trylock 47 thunk __up_wakeup,__up 48 49#ifdef CONFIG_TRACE_IRQFLAGS 50 thunk trace_hardirqs_on_thunk,trace_hardirqs_on 51 thunk trace_hardirqs_off_thunk,trace_hardirqs_off 52#endif 53 54#ifdef CONFIG_DEBUG_LOCK_ALLOC 55 thunk lockdep_sys_exit_thunk,lockdep_sys_exit 56#endif 57 58 /* SAVE_ARGS below is used only for the .cfi directives it contains. */ 59 CFI_STARTPROC 60 SAVE_ARGS 61restore: 62 RESTORE_ARGS 63 ret 64 CFI_ENDPROC 65 66 CFI_STARTPROC 67 SAVE_ARGS 68restore_norax: 69 RESTORE_ARGS 1 70 ret 71 CFI_ENDPROC