On Mon, 10 Mar 2008 12:00:02 +0100, Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
mnt/data1/src/drops/build/include/x86/l4/util/util.h:84 4019e0: 83 0a 00 orl $0x0,(%edx)
So it is the function:
/** Touch data areas to force mapping read-write */ static inline void l4_touch_rw(const void*addr, unsigned size) { const char *bptr, *eptr;
bptr = (const char*)(((unsigned)addr) & L4_PAGEMASK); eptr = (const char*)(((unsigned)addr+size-1) & L4_PAGEMASK); for(;bptr<=eptr;bptr+=L4_PAGESIZE){ asm volatile("or $0,%0 \n" : : "m" (*(const unsigned*)bptr) ); } }
And instruction "orl" is inside "asm volatile" block.
So, this function touches an area (BSS in this case) to make mapping read-write. But why this does not work?
I have no idea, I've never seen this before. Is there the possibility to update the source so that we can work on the same basis?
OK, I'll try to update the sources. (First I must update a svn client as my svn client under Linux is too old (I have Red Hat 9.0)). I used an old sources from CVS, not newer SVN sources. Thank you.
WBR, Valery
l4-hackers@os.inf.tu-dresden.de