2012/5/18 HWSW Development <hwsw.development@googlemail.com>
The macro is defined in arch/x86/include/asm/calling.h
Regards, Rooney
2012/5/18 Bill Traynor <wmat@alphatroop.com>
On Thu, May 17, 2012 at 10:37 PM, 王哲 <wangzhe5004@gmail.com> wrote:
2012/5/17 Javier Martinez Canillas <martinez.javier@gmail.com>
On Thu, May 17, 2012 at 3:59 PM, 王哲 <wangzhe5004@gmail.com> wrote:
Hi all: i am a kernelnewbies.during studying the linux system call,and analysis the following code (linux kernel 2.6.38)
529ENTRY(system_call) 530 RING0_INT_FRAME # can't unwind into user space anyway 531 pushl %eax # save orig_eax 532 CFI_ADJUST_CFA_OFFSET 4 533 SAVE_ALL 534 GET_THREAD_INFO(%ebp) 535 # system call tracing in operation / emulation 536 testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp) 537 jnz syscall_trace_entry 538 cmpl $(nr_syscalls), %eax 539 jae syscall_badsys 540syscall_call: 541 call *sys_call_table(,%eax,4) 542 movl %eax,PT_EAX(%esp) # store the return value
Question: i want to see what the SAVE_ALL have done.and can't find the Macro SAVE_ALL if anyone knows please help
Thanks
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
http://lxr.free-electrons.com/ident?i=SAVE_ALL
Thank you Javier Martinez Canillas for reply! but the rearch result : Defined as a preprocessor macro in:
- arch/cris/include/arch-v32/arch/irq.h, line 32<http://lxr.free-electrons.com/source/arch/cris/include/arch-v32/arch/irq.h#L...> - arch/cris/include/arch-v10/arch/irq.h, line 85<http://lxr.free-electrons.com/source/arch/cris/include/arch-v10/arch/irq.h#L...> - arch/sparc/include/asm/asmmacro.h, line 27<http://lxr.free-electrons.com/source/arch/sparc/include/asm/asmmacro.h#L27>
is not in x86 Architecture.
Couldn't you find it by doing something like this? In your kernel source tree:
$cd arch/x86 $grep -ircl ".macro SAVE_ALL" *
Best regards,
-- Javier Martínez Canillas (+34) 682 39 81 69 Barcelona, Spain
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Thanks for all.
I have sloved the problem. this macro is written with assembly ,not c . No wonder that i don't search it out in the lxr.linux.no arch/x86/kernel/entry_32.s 192 .macro SAVE_ALL 193 cld 194 PUSH_GS 195 pushl_cfi %fs 196 /*CFI_REL_OFFSET fs, 0;*/ 197 pushl_cfi %es 198 /*CFI_REL_OFFSET es, 0;*/ 199 pushl_cfi %ds 200 /*CFI_REL_OFFSET ds, 0;*/ 201 pushl_cfi %eax 202 CFI_REL_OFFSET eax, 0 203 pushl_cfi %ebp 204 CFI_REL_OFFSET ebp, 0 205 pushl_cfi %edi 206 CFI_REL_OFFSET edi, 0 207 pushl_cfi %esi 208 CFI_REL_OFFSET esi, 0 209 pushl_cfi %edx 210 CFI_REL_OFFSET edx, 0 211 pushl_cfi %ecx 212 CFI_REL_OFFSET ecx, 0 213 pushl_cfi %ebx 214 CFI_REL_OFFSET ebx, 0 215 movl $(__USER_DS), %edx 216 movl %edx, %ds 217 movl %edx, %es 218 movl $(__KERNEL_PERCPU), %edx 219 movl %edx, %fs 220 SET_KERNEL_GS %edx 221 .endm -- ---------------------------------------------------------------------------------------------- WangZhe Xi'an Shanxi CHINA qq 785924174 blog blog.163.com/zhe_wang_2009 ----------------------------------------------------------------------------------------------