Hi all:<br> i am a kernelnewbies.during studying the linux system call,and analysis the following code (linux kernel 2.6.38)<br><br><a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L529" id="L529" name="linux+v2.6.33.3/arch/x86/kernel/entry_32.S#L529" target="_blank">529</a>ENTRY(system_call)<br>
<a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L530" id="L530" name="L530" target="_blank"> 530</a> RING0_INT_FRAME # can't unwind into user space anyway<br><a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L531" id="L531" name="L531" target="_blank"> 531</a> pushl %eax # save orig_eax<br>
<a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L532" id="L532" name="L532" target="_blank"> 532</a> CFI_ADJUST_CFA_OFFSET 4<br><a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L533" id="L533" name="L533" target="_blank"> 533</a> SAVE_ALL<br>
<a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L534" id="L534" name="L534" target="_blank"> 534</a> GET_THREAD_INFO(%ebp)<br><a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L535" id="L535" name="L535" target="_blank"> 535</a> # system call tracing in operation / emulation<br>
<a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L536" id="L536" name="L536" target="_blank"> 536</a> testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp)<br><a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L537" id="L537" name="L537" target="_blank"> 537</a> jnz syscall_trace_entry<br>
<a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L538" id="L538" name="L538" target="_blank"> 538</a> cmpl $(nr_syscalls), %eax<br><a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L539" id="L539" name="L539" target="_blank"> 539</a> jae syscall_badsys<br>
<a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L540" id="L540" name="L540" target="_blank"> 540</a>syscall_call:<br><a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L541" id="L541" name="L541" target="_blank"> 541</a> call *sys_call_table(,%eax,4)<br>
<a href="http://lxr.linux.no/linux+*/arch/x86/kernel/entry_32.S#L542" id="L542" name="L542" target="_blank"> 542</a> movl %eax,PT_EAX(%esp) # store the return value
<br><br>Question:<br> i want to see what the SAVE_ALL have done.and can't find the Macro SAVE_ALL<br>if anyone knows please help <br><br> Thanks<br>