Can't find macro SAVE_ALL
王哲
wangzhe5004 at gmail.com
Fri May 18 06:19:15 EDT 2012
2012/5/18 HWSW Development <hwsw.development at googlemail.com>
> The macro is defined in arch/x86/include/asm/calling.h
>
> Regards,
> Rooney
>
>
> 2012/5/18 Bill Traynor <wmat at alphatroop.com>
>
>>
>>
>> On Thu, May 17, 2012 at 10:37 PM, 王哲 <wangzhe5004 at gmail.com> wrote:
>>
>>>
>>>
>>> 2012/5/17 Javier Martinez Canillas <martinez.javier at gmail.com>
>>>
>>>> On Thu, May 17, 2012 at 3:59 PM, 王哲 <wangzhe5004 at 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 at 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#L32>
>>> - arch/cris/include/arch-v10/arch/irq.h, line 85<http://lxr.free-electrons.com/source/arch/cris/include/arch-v10/arch/irq.h#L85>
>>> - 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 at kernelnewbies.org
>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>>
>>>
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at 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
----------------------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120518/37aa5a41/attachment-0001.html
More information about the Kernelnewbies
mailing list