equal
deleted
inserted
replaced
670 // open the file |
670 // open the file |
671 int result; |
671 int result; |
672 RESTARTABLE(::open(filename, oflags), result); |
672 RESTARTABLE(::open(filename, oflags), result); |
673 if (result == OS_ERR) { |
673 if (result == OS_ERR) { |
674 if (errno == ENOENT) { |
674 if (errno == ENOENT) { |
675 THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(), |
675 THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), |
676 "Process not found"); |
676 "Process not found", OS_ERR); |
677 } |
677 } |
678 else if (errno == EACCES) { |
678 else if (errno == EACCES) { |
679 THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(), |
679 THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), |
680 "Permission denied"); |
680 "Permission denied", OS_ERR); |
681 } |
681 } |
682 else { |
682 else { |
683 THROW_MSG_0(vmSymbols::java_io_IOException(), strerror(errno)); |
683 THROW_MSG_(vmSymbols::java_io_IOException(), strerror(errno), OS_ERR); |
684 } |
684 } |
685 } |
685 } |
686 |
686 |
687 return result; |
687 return result; |
688 } |
688 } |
826 static void mmap_attach_shared(const char* user, int vmid, PerfMemory::PerfMemoryMode mode, char** addr, size_t* sizep, TRAPS) { |
826 static void mmap_attach_shared(const char* user, int vmid, PerfMemory::PerfMemoryMode mode, char** addr, size_t* sizep, TRAPS) { |
827 |
827 |
828 char* mapAddress; |
828 char* mapAddress; |
829 int result; |
829 int result; |
830 int fd; |
830 int fd; |
831 size_t size; |
831 size_t size = 0; |
832 const char* luser = NULL; |
832 const char* luser = NULL; |
833 |
833 |
834 int mmap_prot; |
834 int mmap_prot; |
835 int file_flags; |
835 int file_flags; |
836 |
836 |
897 fd = open_sharedmem_file(rfilename, file_flags, CHECK); |
897 fd = open_sharedmem_file(rfilename, file_flags, CHECK); |
898 assert(fd != OS_ERR, "unexpected value"); |
898 assert(fd != OS_ERR, "unexpected value"); |
899 |
899 |
900 if (*sizep == 0) { |
900 if (*sizep == 0) { |
901 size = sharedmem_filesize(fd, CHECK); |
901 size = sharedmem_filesize(fd, CHECK); |
902 assert(size != 0, "unexpected size"); |
902 } else { |
903 } |
903 size = *sizep; |
|
904 } |
|
905 |
|
906 assert(size > 0, "unexpected size <= 0"); |
904 |
907 |
905 mapAddress = (char*)::mmap((char*)0, size, mmap_prot, MAP_SHARED, fd, 0); |
908 mapAddress = (char*)::mmap((char*)0, size, mmap_prot, MAP_SHARED, fd, 0); |
906 |
909 |
907 // attempt to close the file - restart if it gets interrupted, |
910 // attempt to close the file - restart if it gets interrupted, |
908 // but ignore other failures |
911 // but ignore other failures |