1 /* 2 * Copyright (c) 1997, 2012, 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. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 #ifndef _JAVASOFT_JVM_MD_H_ 27 #define _JAVASOFT_JVM_MD_H_ 28 29 /* 30 * This file is currently collecting system-specific dregs for the 31 * JNI conversion, which should be sorted out later. 32 */ 33 34 #include <dirent.h> /* For DIR */ 35 #include <sys/param.h> /* For MAXPATHLEN */ 36 #include <unistd.h> /* For F_OK, R_OK, W_OK */ 37 #include <stddef.h> /* For ptrdiff_t */ 38 #include <stdint.h> /* For uintptr_t */ 39 40 #define JNI_ONLOAD_SYMBOLS {"JNI_OnLoad"} 41 #define JNI_ONUNLOAD_SYMBOLS {"JNI_OnUnload"} 42 #define JVM_ONLOAD_SYMBOLS {"JVM_OnLoad"} 43 #define AGENT_ONLOAD_SYMBOLS {"Agent_OnLoad"} 44 #define AGENT_ONUNLOAD_SYMBOLS {"Agent_OnUnload"} 45 #define AGENT_ONATTACH_SYMBOLS {"Agent_OnAttach"} 46 47 #define JNI_LIB_PREFIX "lib" 48 #ifdef __APPLE__ 49 #define JNI_LIB_SUFFIX ".dylib" 50 #define VERSIONED_JNI_LIB_NAME(NAME, VERSION) JNI_LIB_PREFIX NAME "." VERSION JNI_LIB_SUFFIX 51 #else 52 #define JNI_LIB_SUFFIX ".so" 53 #define VERSIONED_JNI_LIB_NAME(NAME, VERSION) JNI_LIB_PREFIX NAME JNI_LIB_SUFFIX "." VERSION 54 #endif 55 #define JNI_LIB_NAME(NAME) JNI_LIB_PREFIX NAME JNI_LIB_SUFFIX 56 57 #if defined(AIX) || defined(SOLARIS) 58 #define JVM_MAXPATHLEN MAXPATHLEN 59 #else 60 // Hack: MAXPATHLEN is 4095 on some Linux and 4096 on others. This may 61 // cause problems if JVM and the rest of JDK are built on different 62 // Linux releases. Here we define JVM_MAXPATHLEN to be MAXPATHLEN + 1, 63 // so buffers declared in VM are always >= 4096. 64 #define JVM_MAXPATHLEN MAXPATHLEN + 1 65 #endif 66 67 #define JVM_R_OK R_OK 68 #define JVM_W_OK W_OK 69 #define JVM_X_OK X_OK 70 #define JVM_F_OK F_OK 71 72 /* 73 * File I/O 74 */ 75 76 #include <sys/types.h> 77 #include <sys/stat.h> 78 #include <fcntl.h> 79 #include <errno.h> 80 #include <signal.h> 81 82 /* Signals */ 83 84 #include <sys/socket.h> // for socklen_t 85 86 #define JVM_SIGINT SIGINT 87 #define JVM_SIGTERM SIGTERM 88 89 #define BREAK_SIGNAL SIGQUIT /* Thread dumping support. */ 90 #ifdef SOLARIS 91 #define ASYNC_SIGNAL SIGJVM2 /* Event-based suspend/resume support */ 92 #endif // SOLARIS 93 #define SHUTDOWN1_SIGNAL SIGHUP /* Shutdown Hooks support. */ 94 #define SHUTDOWN2_SIGNAL SIGINT 95 #define SHUTDOWN3_SIGNAL SIGTERM 96 97 /* With 1.4.1 libjsig added versioning: used in os_solaris.cpp and jsig.c */ 98 #define JSIG_VERSION_1_4_1 0x30140100 99 100 #endif /* !_JAVASOFT_JVM_MD_H_ */ 101