head.S/code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,
this code in head.S as follows

* Enable paging
111  */
112 3:
113         movl $swapper_pg_dir-__PAGE_OFFSET,%eax
114         movl %eax,%cr3          /* set the page
table pointer.. */
115         movl %cr0,%eax
116         orl $0x80000000,%eax
117         movl %eax,%cr0          /* ..and set
paging (PG) bit */
118         jmp 1f                  /* flush the
prefetch-queue */
119 1:
120         movl $1f,%eax
121         jmp *%eax               /* make sure eip
is relocated */
122 1:


 
as written this code is for enable paging  by setting
cr3 register
but making jump to *%eax at last instruction what it
means?
might be once it sets the page table and then 
when it making jmp *%eax it uses the page table 
so that it jumps now to virtual address of that
label means kernel image at 3GB address

can anybody plz give the detail of above code?
possibly of each line
thanks


__________________________________
Do you Yahoo!?
Yahoo! Mail SpamGuard - Read only the mail you want.
http://antispam.yahoo.com/tools

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux