• Michael Lippautz's avatar
    gc: Add PageMemory and friends · af447700
    Michael Lippautz authored
    Adds the following abstractions:
    - MemoryRegion: Simple Address and size pair.
    - PageMemory: Abstraction holding an overall reservation and some
      writeable area.
    - PageMemoryRegion: Either a contiguous area of normal pages or an
      area for a single large page. Creates guard pages around writable
      regions.
    
    Guard regions are always added, independently of whether the provided
    allocator can actually commit them properly and capped at a maximum of
    16KiB. In practice this will result in all platforms except PPC
    getting protected regions and PPC only getting an unprotected region.
    
    Drive-by:
    - Remove multi-threaded handling of PageMemoryRegion as all data
      structures are thread local and no regions are shared across threads.
    
    Change-Id: I1232216b13ce51482676b16a467dd97d141ac4c7
    Bug: 1056170
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2083304
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: default avatarAnton Bikineev <bikineev@chromium.org>
    Reviewed-by: default avatarOmer Katz <omerkatz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#747210}
    af447700
globals.h 1.13 KB