I'm searching Xen's source code to understand exception handling. I've
pasted a piece of code below.
In arch/x86/x86_32/entry.S:
error_code:
pushl %fs
pushl %es
pushl %ds
pushl %eax
xorl %eax,%eax
pushl %ebp
pushl %edi
pushl %esi
pushl %edx
decl %eax # eax = -1
pushl %ecx
pushl %ebx
cld
movl %gs,%ecx
movl ORIG_EAX(%esp), %esi # get the error code
movl GS(%esp), %edi # get the function address
movl %eax, ORIG_EAX(%esp)
movl %ecx, GS(%esp)
movl $(__HYPERVISOR_DS),%edx
movl %edx,%ds
movl %edx,%es
movl %edx,%fs
movl %edx,%gs
movl %esp,%edx
pushl %esi # push the error code
pushl %edx # push the pt_regs pointer
GET_CURRENT(%ebx)
call *%edi
addl $8,%esp
movb CS(%esp),%al
testb $3,%al
je restore_all_xen
jmp process_guest_exception_and_events
But I can not understand what function does following sentence refer to
movl GS(%esp), %edi # get the function address
Where does it come from?
Thanks,
Benjamin
-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|