How to get a "struct page *" from ioremap() in 2.6?

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

 



Hello,

I have external (I/O-like) memory on my i386 linux 2.6.9 box and I can use
it through a device driver using the standard "ioremap" call. This all
works fine...

What I need is a "struct page *" which corresponds to this memory and this
seems to be a problem. Namely, all the kernel support functions (mostly
macros...) which provide mappings from i.e. phys_addresses (or
virt_addresses) to a "struct page *" seem to assume that a "struct page *"
already exists in the kernel (the so-called "mem_map" array) and is
obtained by simple indexing from the physical address.

This is, of course, not correct since the memory I am accessing was
not part of the kernel's map.

Anybody knows a way how to do this?

BTW, I would like to implement the "sendfile" system call for my external
chunk of memory and the "agent" function needs to see a "struct page *"
representation of my memory...

Any help/pointers appreciated...

	-- Tonko

--
Ante "Tonko" Ljubicic                         Tel: +1-631-344-7346
Bldg. 510A                                    Fax: +1-631-344-4206
Brookhaven National Lab., P.O. Box 5000       Upton, NY, 11973, USA




--
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