src/hotspot/share/runtime/os.hpp
changeset 48153 cfa2c43e58c2
parent 48005 9fd89aabb6cd
child 48635 612dfa1d8aad
equal deleted inserted replaced
48152:bef902d8fef1 48153:cfa2c43e58c2
   106     _page_sizes[0] = default_page_size;
   106     _page_sizes[0] = default_page_size;
   107     _page_sizes[1] = 0; // sentinel
   107     _page_sizes[1] = 0; // sentinel
   108   }
   108   }
   109 
   109 
   110   static char*  pd_reserve_memory(size_t bytes, char* addr = 0,
   110   static char*  pd_reserve_memory(size_t bytes, char* addr = 0,
   111                                size_t alignment_hint = 0);
   111                                   size_t alignment_hint = 0);
   112   static char*  pd_attempt_reserve_memory_at(size_t bytes, char* addr);
   112   static char*  pd_attempt_reserve_memory_at(size_t bytes, char* addr);
       
   113   static char*  pd_attempt_reserve_memory_at(size_t bytes, char* addr, int file_desc);
   113   static void   pd_split_reserved_memory(char *base, size_t size,
   114   static void   pd_split_reserved_memory(char *base, size_t size,
   114                                       size_t split, bool realloc);
   115                                       size_t split, bool realloc);
   115   static bool   pd_commit_memory(char* addr, size_t bytes, bool executable);
   116   static bool   pd_commit_memory(char* addr, size_t bytes, bool executable);
   116   static bool   pd_commit_memory(char* addr, size_t size, size_t alignment_hint,
   117   static bool   pd_commit_memory(char* addr, size_t size, size_t alignment_hint,
   117                                  bool executable);
   118                                  bool executable);
   308                                                   const char* base,
   309                                                   const char* base,
   309                                                   const size_t size);
   310                                                   const size_t size);
   310 
   311 
   311   static int    vm_allocation_granularity();
   312   static int    vm_allocation_granularity();
   312   static char*  reserve_memory(size_t bytes, char* addr = 0,
   313   static char*  reserve_memory(size_t bytes, char* addr = 0,
   313                                size_t alignment_hint = 0);
   314                                size_t alignment_hint = 0, int file_desc = -1);
   314   static char*  reserve_memory(size_t bytes, char* addr,
   315   static char*  reserve_memory(size_t bytes, char* addr,
   315                                size_t alignment_hint, MEMFLAGS flags);
   316                                size_t alignment_hint, MEMFLAGS flags);
   316   static char*  reserve_memory_aligned(size_t size, size_t alignment);
   317   static char*  reserve_memory_aligned(size_t size, size_t alignment, int file_desc = -1);
   317   static char*  attempt_reserve_memory_at(size_t bytes, char* addr);
   318   static char*  attempt_reserve_memory_at(size_t bytes, char* addr, int file_desc = -1);
   318   static void   split_reserved_memory(char *base, size_t size,
   319   static void   split_reserved_memory(char *base, size_t size,
   319                                       size_t split, bool realloc);
   320                                       size_t split, bool realloc);
   320   static bool   commit_memory(char* addr, size_t bytes, bool executable);
   321   static bool   commit_memory(char* addr, size_t bytes, bool executable);
   321   static bool   commit_memory(char* addr, size_t size, size_t alignment_hint,
   322   static bool   commit_memory(char* addr, size_t size, size_t alignment_hint,
   322                               bool executable);
   323                               bool executable);
   343   static bool   guard_memory(char* addr, size_t bytes);
   344   static bool   guard_memory(char* addr, size_t bytes);
   344   static bool   unguard_memory(char* addr, size_t bytes);
   345   static bool   unguard_memory(char* addr, size_t bytes);
   345   static bool   create_stack_guard_pages(char* addr, size_t bytes);
   346   static bool   create_stack_guard_pages(char* addr, size_t bytes);
   346   static bool   pd_create_stack_guard_pages(char* addr, size_t bytes);
   347   static bool   pd_create_stack_guard_pages(char* addr, size_t bytes);
   347   static bool   remove_stack_guard_pages(char* addr, size_t bytes);
   348   static bool   remove_stack_guard_pages(char* addr, size_t bytes);
       
   349   // Helper function to create a new file with template jvmheap.XXXXXX.
       
   350   // Returns a valid fd on success or else returns -1
       
   351   static int create_file_for_heap(const char* dir);
       
   352   // Map memory to the file referred by fd. This function is slightly different from map_memory()
       
   353   // and is added to be used for implementation of -XX:AllocateHeapAt
       
   354   static char* map_memory_to_file(char* base, size_t size, int fd);
       
   355   // Replace existing reserved memory with file mapping
       
   356   static char* replace_existing_mapping_with_file_mapping(char* base, size_t size, int fd);
   348 
   357 
   349   static char*  map_memory(int fd, const char* file_name, size_t file_offset,
   358   static char*  map_memory(int fd, const char* file_name, size_t file_offset,
   350                            char *addr, size_t bytes, bool read_only = false,
   359                            char *addr, size_t bytes, bool read_only = false,
   351                            bool allow_exec = false);
   360                            bool allow_exec = false);
   352   static char*  remap_memory(int fd, const char* file_name, size_t file_offset,
   361   static char*  remap_memory(int fd, const char* file_name, size_t file_offset,