Re: Interrupt Descriptor Table question.

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

 



Bryan K. <ef057@hotmail.com> [2003-06-12 02:24]:
> I was trying to figure out where in the memory lives the interrupt 
> descriptor table. I wrote the following code which is called at 
> start_kernel bofore smp_init. My problem is that the printk prints 
> 0xc0330000. This is supposed to be physical memory pointer right? (I don't 
> have that much memory).  I do not believe this is a kernel virtual memory 
> pointer. What am I missing?
> 

I assume you are working on an ia32 platform since you make use of the
IDT.

in <asm-i386/page.h> find the 
#define PAGE_OFFSET 0xC0000000

virtual addresses 0x00000000 up to PAGE_OFFSET-1 can be used by
processses for their virual address space.

virtual addresses PAGE_OFFSET up to 0xFFFFFFFF are reserved for kernel
mode.

Thus your address is in the virtual address space of the kernel.  If
you are interested in the physical address of the idt, you could
convert the received number.  IIRC you would need to figure out the
page since paging superseeds the addressing by the idt.

Please correct if wrong.

wbr,
Lukas
-- 
Lukas Ruf           | Wanna know anything about raw |
<http://www.lpr.ch> | IP?  <http://www.rawip.org>   |
--
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