Mercurial > hg > truffle
comparison src/share/vm/runtime/os.hpp @ 1980:828eafbd85cc
6348631: remove the use of the HPI library from Hotspot
Summary: move functions from hpi library to hotspot, communicate with licensees and open source community, check jdk for dependency, file CCC request
Reviewed-by: coleenp, acorn, dsamersoff
author | ikrylov |
---|---|
date | Wed, 01 Dec 2010 18:26:32 -0500 |
parents | f95d63e2154a |
children | b92c45f2bc75 f7de3327c683 |
comparison
equal
deleted
inserted
replaced
1972:f95d63e2154a | 1980:828eafbd85cc |
---|---|
358 static void free_thread(OSThread* osthread); | 358 static void free_thread(OSThread* osthread); |
359 | 359 |
360 // thread id on Linux/64bit is 64bit, on Windows and Solaris, it's 32bit | 360 // thread id on Linux/64bit is 64bit, on Windows and Solaris, it's 32bit |
361 static intx current_thread_id(); | 361 static intx current_thread_id(); |
362 static int current_process_id(); | 362 static int current_process_id(); |
363 // hpi::read for calls from non native state | |
364 // For performance, hpi::read is only callable from _thread_in_native | |
365 static size_t read(int fd, void *buf, unsigned int nBytes); | |
366 static int sleep(Thread* thread, jlong ms, bool interruptable); | 363 static int sleep(Thread* thread, jlong ms, bool interruptable); |
367 static int naked_sleep(); | 364 static int naked_sleep(); |
368 static void infinite_sleep(); // never returns, use with CAUTION | 365 static void infinite_sleep(); // never returns, use with CAUTION |
369 static void yield(); // Yields to all threads with same priority | 366 static void yield(); // Yields to all threads with same priority |
370 enum YieldResult { | 367 enum YieldResult { |
416 static void abort(bool dump_core = true); | 413 static void abort(bool dump_core = true); |
417 | 414 |
418 // Die immediately, no exit hook, no abort hook, no cleanup. | 415 // Die immediately, no exit hook, no abort hook, no cleanup. |
419 static void die(); | 416 static void die(); |
420 | 417 |
418 // File i/o operations | |
419 static const int default_file_open_flags(); | |
420 static int open(const char *path, int oflag, int mode); | |
421 static int close(int fd); | |
422 static jlong lseek(int fd, jlong offset, int whence); | |
423 static char* native_path(char *path); | |
424 static int ftruncate(int fd, jlong length); | |
425 static int fsync(int fd); | |
426 static int available(int fd, jlong *bytes); | |
427 | |
428 //File i/o operations | |
429 | |
430 static size_t read(int fd, void *buf, unsigned int nBytes); | |
431 static size_t restartable_read(int fd, void *buf, unsigned int nBytes); | |
432 static size_t write(int fd, const void *buf, unsigned int nBytes); | |
433 | |
421 // Reading directories. | 434 // Reading directories. |
422 static DIR* opendir(const char* dirname); | 435 static DIR* opendir(const char* dirname); |
423 static int readdir_buf_size(const char *path); | 436 static int readdir_buf_size(const char *path); |
424 static struct dirent* readdir(DIR* dirp, dirent* dbuf); | 437 static struct dirent* readdir(DIR* dirp, dirent* dbuf); |
425 static int closedir(DIR* dirp); | 438 static int closedir(DIR* dirp); |
457 // same architecture as Hotspot is running on | 470 // same architecture as Hotspot is running on |
458 static void* dll_load(const char *name, char *ebuf, int ebuflen); | 471 static void* dll_load(const char *name, char *ebuf, int ebuflen); |
459 | 472 |
460 // lookup symbol in a shared library | 473 // lookup symbol in a shared library |
461 static void* dll_lookup(void* handle, const char* name); | 474 static void* dll_lookup(void* handle, const char* name); |
475 | |
476 // Unload library | |
477 static void dll_unload(void *lib); | |
462 | 478 |
463 // Print out system information; they are called by fatal error handler. | 479 // Print out system information; they are called by fatal error handler. |
464 // Output format may be different on different platforms. | 480 // Output format may be different on different platforms. |
465 static void print_os_info(outputStream* st); | 481 static void print_os_info(outputStream* st); |
466 static void print_cpu_info(outputStream* st); | 482 static void print_cpu_info(outputStream* st); |
472 static void print_siginfo(outputStream* st, void* siginfo); | 488 static void print_siginfo(outputStream* st, void* siginfo); |
473 static void print_signal_handlers(outputStream* st, char* buf, size_t buflen); | 489 static void print_signal_handlers(outputStream* st, char* buf, size_t buflen); |
474 static void print_date_and_time(outputStream* st); | 490 static void print_date_and_time(outputStream* st); |
475 | 491 |
476 static void print_location(outputStream* st, intptr_t x, bool verbose = false); | 492 static void print_location(outputStream* st, intptr_t x, bool verbose = false); |
493 static size_t lasterror(char *buf, size_t len); | |
477 | 494 |
478 // The following two functions are used by fatal error handler to trace | 495 // The following two functions are used by fatal error handler to trace |
479 // native (C) frames. They are not part of frame.hpp/frame.cpp because | 496 // native (C) frames. They are not part of frame.hpp/frame.cpp because |
480 // frame.hpp/cpp assume thread is JavaThread, and also because different | 497 // frame.hpp/cpp assume thread is JavaThread, and also because different |
481 // OS/compiler may have different convention or provide different API to | 498 // OS/compiler may have different convention or provide different API to |
499 static const char* exception_name(int exception_code, char* buf, size_t buflen); | 516 static const char* exception_name(int exception_code, char* buf, size_t buflen); |
500 | 517 |
501 // Returns native Java library, loads if necessary | 518 // Returns native Java library, loads if necessary |
502 static void* native_java_library(); | 519 static void* native_java_library(); |
503 | 520 |
504 // Fills in path to jvm.dll/libjvm.so (this info used to find hpi). | 521 // Fills in path to jvm.dll/libjvm.so (used by the Disassembler) |
505 static void jvm_path(char *buf, jint buflen); | 522 static void jvm_path(char *buf, jint buflen); |
506 | 523 |
507 // Returns true if we are running in a headless jre. | 524 // Returns true if we are running in a headless jre. |
508 static bool is_headless_jre(); | 525 static bool is_headless_jre(); |
509 | 526 |
544 #ifndef PRODUCT | 561 #ifndef PRODUCT |
545 static int num_mallocs; // # of calls to malloc/realloc | 562 static int num_mallocs; // # of calls to malloc/realloc |
546 static size_t alloc_bytes; // # of bytes allocated | 563 static size_t alloc_bytes; // # of bytes allocated |
547 static int num_frees; // # of calls to free | 564 static int num_frees; // # of calls to free |
548 #endif | 565 #endif |
566 | |
567 // SocketInterface (ex HPI SocketInterface ) | |
568 static int socket(int domain, int type, int protocol); | |
569 static int socket_close(int fd); | |
570 static int socket_shutdown(int fd, int howto); | |
571 static int recv(int fd, char *buf, int nBytes, int flags); | |
572 static int send(int fd, char *buf, int nBytes, int flags); | |
573 static int raw_send(int fd, char *buf, int nBytes, int flags); | |
574 static int timeout(int fd, long timeout); | |
575 static int listen(int fd, int count); | |
576 static int connect(int fd, struct sockaddr *him, int len); | |
577 static int bind(int fd, struct sockaddr *him, int len); | |
578 static int accept(int fd, struct sockaddr *him, int *len); | |
579 static int recvfrom(int fd, char *buf, int nbytes, int flags, | |
580 struct sockaddr *from, int *fromlen); | |
581 static int get_sock_name(int fd, struct sockaddr *him, int *len); | |
582 static int sendto(int fd, char *buf, int len, int flags, | |
583 struct sockaddr *to, int tolen); | |
584 static int socket_available(int fd, jint *pbytes); | |
585 | |
586 static int get_sock_opt(int fd, int level, int optname, | |
587 char *optval, int* optlen); | |
588 static int set_sock_opt(int fd, int level, int optname, | |
589 const char *optval, int optlen); | |
590 static int get_host_name(char* name, int namelen); | |
591 | |
592 static struct hostent* get_host_by_name(char* name); | |
549 | 593 |
550 // Printing 64 bit integers | 594 // Printing 64 bit integers |
551 static const char* jlong_format_specifier(); | 595 static const char* jlong_format_specifier(); |
552 static const char* julong_format_specifier(); | 596 static const char* julong_format_specifier(); |
553 | 597 |