l4-hackers Digest, Vol 59, Issue 7

Valery V. Sedletski _valerius at mail.ru
Wed Mar 12 04:44:02 CET 2008


On Mon, 10 Mar 2008 12:00:02 +0100, Adam Lackorzynski <adam at 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






More information about the l4-hackers mailing list