< prev index next >
src/hotspot/os/windows/os_windows.cpp
Print this page
*** 2890,2906 ****
vm_exit_during_initialization(err_msg("Malloc failed during creation of backing file for heap (%s)", os::strerror(errno)));
return -1;
}
(void)strncpy(fullname, dir, strlen(dir)+1);
! (void)strncat(fullname, name_template, strlen(name_template);
os::native_path(fullname);
char *path = _mktemp(fullname);
if (path == NULL) {
! warning("_mktemp could not create file name from template (%s)", os::strerror(errno));
os::free(fullname);
return -1;
}
int fd = _open(path, O_RDWR | O_CREAT | O_TEMPORARY | O_EXCL, S_IWRITE | S_IREAD);
--- 2890,2906 ----
vm_exit_during_initialization(err_msg("Malloc failed during creation of backing file for heap (%s)", os::strerror(errno)));
return -1;
}
(void)strncpy(fullname, dir, strlen(dir)+1);
! (void)strncat(fullname, name_template, strlen(name_template));
os::native_path(fullname);
char *path = _mktemp(fullname);
if (path == NULL) {
! warning("_mktemp could not create file name from template %s (%s)", fullname, os::strerror(errno));
os::free(fullname);
return -1;
}
int fd = _open(path, O_RDWR | O_CREAT | O_TEMPORARY | O_EXCL, S_IWRITE | S_IREAD);
*** 2944,2969 ****
release_memory(base, size);
return map_memory_to_dax_file(base, size, fd);
}
- char* os::attempt_reserve_memory_at(size_t bytes, char* addr, int file_desc) {
- char* result = NULL;
- if (file_desc != -1) {
- result = map_memory_to_dax_file(addr, bytes, file_desc);
- if (result != NULL) {
- MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
- }
- } else {
- result = pd_attempt_reserve_memory_at(bytes, addr);
- if (result != NULL) {
- MemTracker::record_virtual_memory_reserve((address)result, bytes, CALLER_PC);
- }
- }
- return result;
- }
-
// On win32, one cannot release just a part of reserved memory, it's an
// all or nothing deal. When we split a reservation, we must break the
// reservation into two reservations.
void os::pd_split_reserved_memory(char *base, size_t size, size_t split,
bool realloc) {
--- 2944,2953 ----
*** 3049,3058 ****
--- 3033,3047 ----
// Windows os::reserve_memory() fails of the requested address range is
// not avilable.
return reserve_memory(bytes, requested_addr);
}
+ char* os::pd_attempt_reserve_memory_at(size_t bytes, char* requested_addr, int file_desc) {
+ assert(file_desc >= 0, "file_desc is not valid");
+ return map_memory_to_dax_file(requested_addr, bytes, file_desc);
+ }
+
size_t os::large_page_size() {
return _large_page_size;
}
bool os::can_commit_large_page_memory() {
< prev index next >