SharedUserData

Laurent Pinchart laurent.pinchart at skynet.be
Wed Apr 3 11:40:33 CST 2002


>
>
>>I need to implement the SharedUserData, which is a page of memory 
>>located at (KERNEL_BASE - 0x10000) shared between user space (read-only 
>>access) and kernel space.
>>
>I don't know how to get the 'page fault' trap for a 'valid' user
>page on all systems that wine might run on.  Certainly the assumption
>that (KERNEL_BASE - 0x10000) is available is probably false...
>
>However you don't actually need a valid user address, a kernel
>address (ie one that is always invalid) will do.
>
I'm not sure to understand what you mean. The user program will try to 
access KERNEL_BASE - 0x10000 (which is 0x7ffe0000 on IA-32). I need that 
to trigger a segfault.

>Catching SIGSEGV might be enough - but I'm not totally
>certain how you can get the value back into the main
>process context (emulate the instruction and modify the
>saved program counter ????)
>
That's what I thought at first. I could also try to set a hardware 
breakpoint for read/write accesses at that address, but that's highly 
not portable, and won't work nicely with a debugger. If someone has a 
better idea I'll be glad to hear it.

Laurent Pinchart





More information about the wine-devel mailing list