240 static sigset_t SR_sigset; 241 static pthread_mutex_t dl_mutex; // Used to protect dlsym() calls. 242 243 julong os::available_memory() { 244 return Aix::available_memory(); 245 } 246 247 julong os::Aix::available_memory() { 248 os::Aix::meminfo_t mi; 249 if (os::Aix::get_meminfo(&mi)) { 250 return mi.real_free; 251 } else { 252 return 0xFFFFFFFFFFFFFFFFLL; 253 } 254 } 255 256 julong os::physical_memory() { 257 return Aix::physical_memory(); 258 } 259 260 //////////////////////////////////////////////////////////////////////////////// 261 // environment support 262 263 bool os::getenv(const char* name, char* buf, int len) { 264 const char* val = ::getenv(name); 265 if (val != NULL && strlen(val) < (size_t)len) { 266 strcpy(buf, val); 267 return true; 268 } 269 if (len > 0) buf[0] = 0; // return a null string 270 return false; 271 } 272 273 // Return true if user is running as root. 274 275 bool os::have_special_privileges() { 276 static bool init = false; 277 static bool privileges = false; 278 if (!init) { 279 privileges = (getuid() != geteuid()) || (getgid() != getegid()); 280 init = true; 281 } 282 return privileges; 283 } 284 285 // Helper function, emulates disclaim64 using multiple 32bit disclaims 286 // because we cannot use disclaim64() on AS/400 and old AIX releases. 287 static bool my_disclaim64(char* addr, size_t size) { 288 289 if (size == 0) { 290 return true; 291 } 292 | 240 static sigset_t SR_sigset; 241 static pthread_mutex_t dl_mutex; // Used to protect dlsym() calls. 242 243 julong os::available_memory() { 244 return Aix::available_memory(); 245 } 246 247 julong os::Aix::available_memory() { 248 os::Aix::meminfo_t mi; 249 if (os::Aix::get_meminfo(&mi)) { 250 return mi.real_free; 251 } else { 252 return 0xFFFFFFFFFFFFFFFFLL; 253 } 254 } 255 256 julong os::physical_memory() { 257 return Aix::physical_memory(); 258 } 259 260 // Return true if user is running as root. 261 262 bool os::have_special_privileges() { 263 static bool init = false; 264 static bool privileges = false; 265 if (!init) { 266 privileges = (getuid() != geteuid()) || (getgid() != getegid()); 267 init = true; 268 } 269 return privileges; 270 } 271 272 // Helper function, emulates disclaim64 using multiple 32bit disclaims 273 // because we cannot use disclaim64() on AS/400 and old AIX releases. 274 static bool my_disclaim64(char* addr, size_t size) { 275 276 if (size == 0) { 277 return true; 278 } 279 |