538 } 539 } 540 if (id_array != NULL) { 541 FREE_C_HEAP_ARRAY(processorid_t, id_array); 542 } 543 return result; 544 } 545 546 bool os::bind_to_processor(uint processor_id) { 547 // We assume that a processorid_t can be stored in a uint. 548 assert(sizeof(uint) == sizeof(processorid_t), 549 "can't convert uint to processorid_t"); 550 int bind_result = 551 processor_bind(P_LWPID, // bind LWP. 552 P_MYID, // bind current LWP. 553 (processorid_t) processor_id, // id. 554 NULL); // don't return old binding. 555 return (bind_result == 0); 556 } 557 558 bool os::getenv(const char* name, char* buffer, int len) { 559 char* val = ::getenv(name); 560 if (val == NULL || strlen(val) + 1 > len) { 561 if (len > 0) buffer[0] = 0; // return a null string 562 return false; 563 } 564 strcpy(buffer, val); 565 return true; 566 } 567 568 569 // Return true if user is running as root. 570 571 bool os::have_special_privileges() { 572 static bool init = false; 573 static bool privileges = false; 574 if (!init) { 575 privileges = (getuid() != geteuid()) || (getgid() != getegid()); 576 init = true; 577 } 578 return privileges; 579 } 580 581 582 void os::init_system_properties_values() { 583 // The next steps are taken in the product version: 584 // 585 // Obtain the JAVA_HOME value from the location of libjvm.so. 586 // This library should be located at: 587 // <JAVA_HOME>/jre/lib/<arch>/{client|server}/libjvm.so. 588 // | 538 } 539 } 540 if (id_array != NULL) { 541 FREE_C_HEAP_ARRAY(processorid_t, id_array); 542 } 543 return result; 544 } 545 546 bool os::bind_to_processor(uint processor_id) { 547 // We assume that a processorid_t can be stored in a uint. 548 assert(sizeof(uint) == sizeof(processorid_t), 549 "can't convert uint to processorid_t"); 550 int bind_result = 551 processor_bind(P_LWPID, // bind LWP. 552 P_MYID, // bind current LWP. 553 (processorid_t) processor_id, // id. 554 NULL); // don't return old binding. 555 return (bind_result == 0); 556 } 557 558 // Return true if user is running as root. 559 560 bool os::have_special_privileges() { 561 static bool init = false; 562 static bool privileges = false; 563 if (!init) { 564 privileges = (getuid() != geteuid()) || (getgid() != getegid()); 565 init = true; 566 } 567 return privileges; 568 } 569 570 571 void os::init_system_properties_values() { 572 // The next steps are taken in the product version: 573 // 574 // Obtain the JAVA_HOME value from the location of libjvm.so. 575 // This library should be located at: 576 // <JAVA_HOME>/jre/lib/<arch>/{client|server}/libjvm.so. 577 // |