2488 bool os::can_execute_large_page_memory() { |
2488 bool os::can_execute_large_page_memory() { |
2489 // Does not matter, we do not support huge pages. |
2489 // Does not matter, we do not support huge pages. |
2490 return false; |
2490 return false; |
2491 } |
2491 } |
2492 |
2492 |
|
2493 char* os::pd_attempt_reserve_memory_at(size_t bytes, char* requested_addr, int file_desc) { |
|
2494 assert(file_desc >= 0, "file_desc is not valid"); |
|
2495 char* result = NULL; |
|
2496 |
|
2497 // Always round to os::vm_page_size(), which may be larger than 4K. |
|
2498 bytes = align_up(bytes, os::vm_page_size()); |
|
2499 result = reserve_mmaped_memory(bytes, requested_addr, 0); |
|
2500 |
|
2501 if (result != NULL) { |
|
2502 if (replace_existing_mapping_with_file_mapping(result, bytes, file_desc) == NULL) { |
|
2503 vm_exit_during_initialization(err_msg("Error in mapping Java heap at the given filesystem directory")); |
|
2504 } |
|
2505 } |
|
2506 return result; |
|
2507 } |
|
2508 |
2493 // Reserve memory at an arbitrary address, only if that area is |
2509 // Reserve memory at an arbitrary address, only if that area is |
2494 // available (and not reserved for something else). |
2510 // available (and not reserved for something else). |
2495 char* os::pd_attempt_reserve_memory_at(size_t bytes, char* requested_addr) { |
2511 char* os::pd_attempt_reserve_memory_at(size_t bytes, char* requested_addr) { |
2496 char* addr = NULL; |
2512 char* addr = NULL; |
2497 |
2513 |