1571 } else {
1572 res = pd_uncommit_memory(addr, bytes);
1573 }
1574 return res;
1575 }
1576
1577 bool os::release_memory(char* addr, size_t bytes) {
1578 bool res;
1579 if (MemTracker::tracking_level() > NMT_minimal) {
1580 Tracker tkr = MemTracker::get_virtual_memory_release_tracker();
1581 res = pd_release_memory(addr, bytes);
1582 if (res) {
1583 tkr.record((address)addr, bytes);
1584 }
1585 } else {
1586 res = pd_release_memory(addr, bytes);
1587 }
1588 return res;
1589 }
1590
1591
1592 char* os::map_memory(int fd, const char* file_name, size_t file_offset,
1593 char *addr, size_t bytes, bool read_only,
1594 bool allow_exec) {
1595 char* result = pd_map_memory(fd, file_name, file_offset, addr, bytes, read_only, allow_exec);
1596 if (result != NULL) {
1597 MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
1598 }
1599 return result;
1600 }
1601
1602 char* os::remap_memory(int fd, const char* file_name, size_t file_offset,
1603 char *addr, size_t bytes, bool read_only,
1604 bool allow_exec) {
1605 return pd_remap_memory(fd, file_name, file_offset, addr, bytes,
1606 read_only, allow_exec);
1607 }
1608
1609 bool os::unmap_memory(char *addr, size_t bytes) {
1610 bool result;
|
1571 } else {
1572 res = pd_uncommit_memory(addr, bytes);
1573 }
1574 return res;
1575 }
1576
1577 bool os::release_memory(char* addr, size_t bytes) {
1578 bool res;
1579 if (MemTracker::tracking_level() > NMT_minimal) {
1580 Tracker tkr = MemTracker::get_virtual_memory_release_tracker();
1581 res = pd_release_memory(addr, bytes);
1582 if (res) {
1583 tkr.record((address)addr, bytes);
1584 }
1585 } else {
1586 res = pd_release_memory(addr, bytes);
1587 }
1588 return res;
1589 }
1590
1591 void os::pretouch_memory(char* start, char* end) {
1592 for (volatile char *p = start; p < end; p += os::vm_page_size()) {
1593 *p = 0;
1594 }
1595 }
1596
1597 char* os::map_memory(int fd, const char* file_name, size_t file_offset,
1598 char *addr, size_t bytes, bool read_only,
1599 bool allow_exec) {
1600 char* result = pd_map_memory(fd, file_name, file_offset, addr, bytes, read_only, allow_exec);
1601 if (result != NULL) {
1602 MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
1603 }
1604 return result;
1605 }
1606
1607 char* os::remap_memory(int fd, const char* file_name, size_t file_offset,
1608 char *addr, size_t bytes, bool read_only,
1609 bool allow_exec) {
1610 return pd_remap_memory(fd, file_name, file_offset, addr, bytes,
1611 read_only, allow_exec);
1612 }
1613
1614 bool os::unmap_memory(char *addr, size_t bytes) {
1615 bool result;
|