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

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

mercurial