2007-06-08 00:50:17

by Jared Hulbert

[permalink] [raw]
Subject: get_xip_page() uncertainity

I am trying to create valid "struct page* (*get_xip_page)(struct
address_space *, sector_t, int)" to use the filemap_xip.c.

I've been trying to do it as follows:

virtual = ioremap(physical,size);

struct page* my_get_xip_page(struct address_space *mapping, sector_t
sector, int create)
{
unsigned long offset;
/*extract offset from mapping and sector*/
return virt_to_page(virtual + offset);
}

I believe this to be fundamentally flawed. While this works for
xip_file_read(), it does not work for xip_file_mmap(). I'm not sure I
understand the correct way to do this. But I assume the problem, and
have some evidence to support it, is that virt_to_page() is not
returning a vaild page struct.

How can I get a valid page struct? The memory is not RAM but Flash.
It is addressable like RAM and I want userspace to use it like
readonly RAM.