On Fri Sep 25 14:11:03 EDT 2009, [email protected] wrote:
> So in my example, va = 0x10001001, len = 0x1000. I understood that to
> mean [0x10001001, 0x10002001) was the newly-valid interval, which
> would mean 0x10002000 was a valid address...
i think you're misreading the man page. from the man page
Segattach creates a new memory segment, adds it to the call-
ing process's address space, and returns its lowest address.
so you need to use the value returned, not the value
you gave it. in this case 0x10001000 not 0x0001001.
also from the man page
Va and len specify the position of the segment in the
process's address space. Va is rounded down to the nearest
page boundary and va+len is rounded up. The system does not
so va is rounded down (as you see) and the length
is rounded up, also as you see.
- erik