src/os/linux/vm/os_linux.cpp

changeset 3612
9eaf473fff9b
parent 3481
de268c8a8075
child 3640
cf956638b844
equal deleted inserted replaced
3592:701a83c86f28 3612:9eaf473fff9b
4688 // Map a block of memory. 4688 // Map a block of memory.
4689 char* os::map_memory(int fd, const char* file_name, size_t file_offset, 4689 char* os::map_memory(int fd, const char* file_name, size_t file_offset,
4690 char *addr, size_t bytes, bool read_only, 4690 char *addr, size_t bytes, bool read_only,
4691 bool allow_exec) { 4691 bool allow_exec) {
4692 int prot; 4692 int prot;
4693 int flags; 4693 int flags = MAP_PRIVATE;
4694 4694
4695 if (read_only) { 4695 if (read_only) {
4696 prot = PROT_READ; 4696 prot = PROT_READ;
4697 flags = MAP_SHARED;
4698 } else { 4697 } else {
4699 prot = PROT_READ | PROT_WRITE; 4698 prot = PROT_READ | PROT_WRITE;
4700 flags = MAP_PRIVATE;
4701 } 4699 }
4702 4700
4703 if (allow_exec) { 4701 if (allow_exec) {
4704 prot |= PROT_EXEC; 4702 prot |= PROT_EXEC;
4705 } 4703 }

mercurial