63 64 static jlong page_size = 0; 65 66 #if defined(_ALLBSD_SOURCE) || defined(_AIX) 67 #define MB (1024UL * 1024UL) 68 #else 69 70 /* This gets us the new structured proc interfaces of 5.6 & later */ 71 /* - see comment in <sys/procfs.h> */ 72 #define _STRUCTURED_PROC 1 73 #include <sys/procfs.h> 74 75 #endif /* _ALLBSD_SOURCE */ 76 77 static struct dirent* read_dir(DIR* dirp, struct dirent* entry) { 78 #ifdef __solaris__ 79 struct dirent* dbuf = readdir(dirp); 80 return dbuf; 81 #else /* __linux__ || _ALLBSD_SOURCE */ 82 struct dirent* p; 83 if (readdir_r(dirp, entry, &p) == 0) { 84 return p; 85 } else { 86 return NULL; 87 } 88 #endif 89 } 90 91 // true = get available swap in bytes 92 // false = get total swap in bytes 93 static jlong get_total_or_available_swap_space_size(JNIEnv* env, jboolean available) { 94 #ifdef __solaris__ 95 long total, avail; 96 int nswap, i, count; 97 swaptbl_t *stbl; 98 char *strtab; 99 100 // First get the number of swap resource entries 101 if ((nswap = swapctl(SC_GETNSWP, NULL)) == -1) { 102 throw_internal_error(env, "swapctl failed to get nswap"); 103 return -1; | 63 64 static jlong page_size = 0; 65 66 #if defined(_ALLBSD_SOURCE) || defined(_AIX) 67 #define MB (1024UL * 1024UL) 68 #else 69 70 /* This gets us the new structured proc interfaces of 5.6 & later */ 71 /* - see comment in <sys/procfs.h> */ 72 #define _STRUCTURED_PROC 1 73 #include <sys/procfs.h> 74 75 #endif /* _ALLBSD_SOURCE */ 76 77 static struct dirent* read_dir(DIR* dirp, struct dirent* entry) { 78 #ifdef __solaris__ 79 struct dirent* dbuf = readdir(dirp); 80 return dbuf; 81 #else /* __linux__ || _ALLBSD_SOURCE */ 82 struct dirent* p; 83 #pragma GCC diagnostic push 84 #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 85 if (readdir_r(dirp, entry, &p) == 0) { 86 #pragma GCC diagnostic pop 87 return p; 88 } else { 89 return NULL; 90 } 91 #endif 92 } 93 94 // true = get available swap in bytes 95 // false = get total swap in bytes 96 static jlong get_total_or_available_swap_space_size(JNIEnv* env, jboolean available) { 97 #ifdef __solaris__ 98 long total, avail; 99 int nswap, i, count; 100 swaptbl_t *stbl; 101 char *strtab; 102 103 // First get the number of swap resource entries 104 if ((nswap = swapctl(SC_GETNSWP, NULL)) == -1) { 105 throw_internal_error(env, "swapctl failed to get nswap"); 106 return -1; |