src/os/solaris/vm/jvm_solaris.h

Wed, 27 Mar 2013 19:21:18 +0100

author
tschatzl
date
Wed, 27 Mar 2013 19:21:18 +0100
changeset 4854
754c24457b20
parent 3344
11c26bfcf8c7
child 6876
710a3c8b516e
child 7624
6a4b9e574124
permissions
-rw-r--r--

7112912: Message "Error occurred during initialization of VM" on boxes with lots of RAM
Summary: Ergonomics now also takes available virtual memory into account when deciding for a heap size. The helper method to determine the maximum allocatable memory block now uses the appropriate OS specific calls to retrieve available virtual memory for the java process. In 32 bit environments this method now also searches for the maximum actually reservable amount of memory. Merge previously separate implementations for Linux/BSD/Solaris into a single method.
Reviewed-by: jmasa, tamao

duke@435 1 /*
stefank@2314 2 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
duke@435 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 4 *
duke@435 5 * This code is free software; you can redistribute it and/or modify it
duke@435 6 * under the terms of the GNU General Public License version 2 only, as
duke@435 7 * published by the Free Software Foundation.
duke@435 8 *
duke@435 9 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 12 * version 2 for more details (a copy is included in the LICENSE file that
duke@435 13 * accompanied this code).
duke@435 14 *
duke@435 15 * You should have received a copy of the GNU General Public License version
duke@435 16 * 2 along with this work; if not, write to the Free Software Foundation,
duke@435 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 18 *
trims@1907 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 20 * or visit www.oracle.com if you need additional information or have any
trims@1907 21 * questions.
duke@435 22 *
duke@435 23 */
duke@435 24
stefank@2314 25 #ifndef OS_SOLARIS_VM_JVM_SOLARIS_H
stefank@2314 26 #define OS_SOLARIS_VM_JVM_SOLARIS_H
stefank@2314 27
duke@435 28 /*
duke@435 29 // HotSpot integration note:
duke@435 30 //
duke@435 31 // This is derived from the JDK classic file:
duke@435 32 // "$JDK/src/solaris/javavm/export/jvm_md.h":15 (ver. 1.10 98/04/22)
duke@435 33 // All local includes have been commented out.
duke@435 34 */
duke@435 35
duke@435 36 #ifndef JVM_MD_H
duke@435 37 #define JVM_MD_H
duke@435 38
duke@435 39 /*
duke@435 40 * This file is currently collecting system-specific dregs for the
duke@435 41 * JNI conversion, which should be sorted out later.
duke@435 42 */
duke@435 43
duke@435 44 #include <dirent.h> /* For DIR */
duke@435 45 #include <sys/param.h> /* For MAXPATHLEN */
phh@3344 46 #include <sys/socket.h> /* For socklen_t */
duke@435 47 #include <unistd.h> /* For F_OK, R_OK, W_OK */
duke@435 48 #include <sys/int_types.h> /* for intptr_t types (64 Bit cleanliness) */
duke@435 49
duke@435 50 #define JNI_ONLOAD_SYMBOLS {"JNI_OnLoad"}
duke@435 51 #define JNI_ONUNLOAD_SYMBOLS {"JNI_OnUnload"}
duke@435 52 #define JVM_ONLOAD_SYMBOLS {"JVM_OnLoad"}
duke@435 53 #define AGENT_ONLOAD_SYMBOLS {"Agent_OnLoad"}
duke@435 54 #define AGENT_ONUNLOAD_SYMBOLS {"Agent_OnUnload"}
duke@435 55 #define AGENT_ONATTACH_SYMBOLS {"Agent_OnAttach"}
duke@435 56
duke@435 57 #define JNI_LIB_PREFIX "lib"
duke@435 58 #define JNI_LIB_SUFFIX ".so"
duke@435 59
duke@435 60 #define JVM_MAXPATHLEN MAXPATHLEN
duke@435 61
duke@435 62 #define JVM_R_OK R_OK
duke@435 63 #define JVM_W_OK W_OK
duke@435 64 #define JVM_X_OK X_OK
duke@435 65 #define JVM_F_OK F_OK
duke@435 66
duke@435 67 /*
duke@435 68 * File I/O
duke@435 69 */
duke@435 70
duke@435 71 #include <sys/types.h>
duke@435 72 #include <sys/stat.h>
duke@435 73 #include <fcntl.h>
duke@435 74 #include <errno.h>
duke@435 75
duke@435 76 /* O Flags */
duke@435 77
duke@435 78 #define JVM_O_RDONLY O_RDONLY
duke@435 79 #define JVM_O_WRONLY O_WRONLY
duke@435 80 #define JVM_O_RDWR O_RDWR
duke@435 81 #define JVM_O_O_APPEND O_APPEND
duke@435 82 #define JVM_O_EXCL O_EXCL
duke@435 83 #define JVM_O_CREAT O_CREAT
duke@435 84
duke@435 85 /* Signal definitions */
duke@435 86
duke@435 87 #define BREAK_SIGNAL SIGQUIT /* Thread dumping support. */
duke@435 88 #define INTERRUPT_SIGNAL SIGUSR1 /* Interruptible I/O support. */
duke@435 89 #define ASYNC_SIGNAL SIGUSR2 /* Watcher & async err support. */
duke@435 90 #define SHUTDOWN1_SIGNAL SIGHUP /* Shutdown Hooks support. */
duke@435 91 #define SHUTDOWN2_SIGNAL SIGINT
duke@435 92 #define SHUTDOWN3_SIGNAL SIGTERM
duke@435 93 /* alternative signals used with -XX:+UseAltSigs (or for backward
duke@435 94 compatibility with 1.2, -Xusealtsigs) flag. Chosen to be
duke@435 95 unlikely to conflict with applications embedding the vm */
duke@435 96 #define ALT_INTERRUPT_SIGNAL (SIGRTMIN + SIGRTMAX)/2 /* alternate intio signal */
duke@435 97 #define ALT_ASYNC_SIGNAL ALT_INTERRUPT_SIGNAL+1 /* alternate async signal */
duke@435 98
duke@435 99 /* With 1.4.1 libjsig added versioning: used in os_solaris.cpp and jsig.c */
duke@435 100 #define JSIG_VERSION_1_4_1 0x30140100
duke@435 101
duke@435 102 #endif /* JVM_MD_H */
stefank@2314 103
stefank@2314 104 #endif // OS_SOLARIS_VM_JVM_SOLARIS_H

mercurial