src/share/vm/runtime/virtualspace.hpp

Print this page
rev 3709 : imported patch reuse-old-marking-stack


  58   char* align_reserved_region(char* addr, const size_t len,
  59                               const size_t prefix_size,
  60                               const size_t prefix_align,
  61                               const size_t suffix_size,
  62                               const size_t suffix_align);
  63 
  64   // Reserve memory, call align_reserved_region() to alignment it and return the
  65   // result.
  66   char* reserve_and_align(const size_t reserve_size,
  67                           const size_t prefix_size,
  68                           const size_t prefix_align,
  69                           const size_t suffix_size,
  70                           const size_t suffix_align);
  71 
  72  protected:
  73   // Create protection page at the beginning of the space.
  74   void protect_noaccess_prefix(const size_t size);
  75 
  76  public:
  77   // Constructor




  78   ReservedSpace(size_t size);
  79   ReservedSpace(size_t size, size_t alignment, bool large,
  80                 char* requested_address = NULL,
  81                 const size_t noaccess_prefix = 0);
  82   ReservedSpace(const size_t suffix_size, const size_t suffix_align,
  83                 char* requested_address,
  84                 const size_t noaccess_prefix = 0);
  85   ReservedSpace(size_t size, size_t alignment, bool large, bool executable);
  86 
  87   // Accessors
  88   char*  base()            const { return _base;      }
  89   size_t size()            const { return _size;      }
  90   size_t alignment()       const { return _alignment; }
  91   bool   special()         const { return _special;   }
  92   bool   executable()      const { return _executable;   }
  93   size_t noaccess_prefix() const { return _noaccess_prefix;   }
  94   bool is_reserved()       const { return _base != NULL; }
  95   void release();
  96 
  97   // Splitting




  58   char* align_reserved_region(char* addr, const size_t len,
  59                               const size_t prefix_size,
  60                               const size_t prefix_align,
  61                               const size_t suffix_size,
  62                               const size_t suffix_align);
  63 
  64   // Reserve memory, call align_reserved_region() to alignment it and return the
  65   // result.
  66   char* reserve_and_align(const size_t reserve_size,
  67                           const size_t prefix_size,
  68                           const size_t prefix_align,
  69                           const size_t suffix_size,
  70                           const size_t suffix_align);
  71 
  72  protected:
  73   // Create protection page at the beginning of the space.
  74   void protect_noaccess_prefix(const size_t size);
  75 
  76  public:
  77   // Constructor
  78   ReservedSpace() :
  79     _base(NULL), _size(0), _noaccess_prefix(0), _alignment(0),
  80     _special(false), _executable(false) {}
  81 
  82   ReservedSpace(size_t size);
  83   ReservedSpace(size_t size, size_t alignment, bool large,
  84                 char* requested_address = NULL,
  85                 const size_t noaccess_prefix = 0);
  86   ReservedSpace(const size_t suffix_size, const size_t suffix_align,
  87                 char* requested_address,
  88                 const size_t noaccess_prefix = 0);
  89   ReservedSpace(size_t size, size_t alignment, bool large, bool executable);
  90 
  91   // Accessors
  92   char*  base()            const { return _base;      }
  93   size_t size()            const { return _size;      }
  94   size_t alignment()       const { return _alignment; }
  95   bool   special()         const { return _special;   }
  96   bool   executable()      const { return _executable;   }
  97   size_t noaccess_prefix() const { return _noaccess_prefix;   }
  98   bool is_reserved()       const { return _base != NULL; }
  99   void release();
 100 
 101   // Splitting