#9205: Wine needs some mmap improvements -----------------------------+------------------------- Reporter: AndreH | Owner: bonefish Type: enhancement | Status: assigned Priority: normal | Milestone: Unscheduled Component: System/Kernel | Version: R1/alpha4 Resolution: | Keywords: mmap Blocked By: | Blocking: Has a Patch: 0 | Platform: All -----------------------------+------------------------- Comment (by bonefish): Replying to [comment:12 AndreH]: > As you can see in strace2.txt Wine tries to mmap 0x110000 and Haiku returns 0x453000 for quite a while, how can i see what is sitting under 0x453000 in memory at this moment? For x86 the user address space layout is generally the following: {{{ 0x00000000 - 0x00100000 Reserved, only allocated upon explicit request. 0x00100000 - 0x18000000 Free range for general area allocations. The kernel maps the runtime loader into this range, the runtime loader creates its small heap here, and executable and libraries are generally mapped here as well. 0x18000000 - 0x48000000 Heap (pre-reserved). General area allocations will start using the unused part of this range once other free ranges have been exhausted. 0x48000000 - 0x6fff0000 Free range for general area allocations. 0x6fff0000 - 0x70000000 Used for kernel-userland communication. 0x70000000 - 0x7efef000 Pre-reserved for thread stacks. 0x7efef000 - 0x7fff0000 main thread stack 0x7fff0000 userland address space top }}} You an use the `listarea` command to see the actually allocated. From within your program you can use `get_next_area_info()` to iterate through your team's areas. The runtime loader is mapped to 0x100000, the executable usually to 0x200000, and libraries somewhere in that range as well. -- Ticket URL: <http://dev.haiku-os.org/ticket/9205#comment:13> Haiku <http://dev.haiku-os.org> Haiku - the operating system.