1 /* 2 * Copyright (c) 2005, 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 _JLI_UTIL_H 27 #define _JLI_UTIL_H 28 29 #include <stdlib.h> 30 #include <string.h> 31 #include <stdio.h> 32 #include <jni.h> 33 #define JLDEBUG_ENV_ENTRY "_JAVA_LAUNCHER_DEBUG" 34 35 void *JLI_MemAlloc(size_t size); 36 void *JLI_MemRealloc(void *ptr, size_t size); 37 char *JLI_StringDup(const char *s1); 38 void JLI_MemFree(void *ptr); 39 int JLI_StrCCmp(const char *s1, const char* s2); 40 41 typedef struct { 42 char *arg; 43 jboolean has_wildcard; 44 } StdArg; 45 46 StdArg *JLI_GetStdArgs(); 47 int JLI_GetStdArgc(); 48 49 #define JLI_StrLen(p1) strlen((p1)) 50 #define JLI_StrChr(p1, p2) strchr((p1), (p2)) 51 #define JLI_StrRChr(p1, p2) strrchr((p1), (p2)) 52 #define JLI_StrCmp(p1, p2) strcmp((p1), (p2)) 53 #define JLI_StrNCmp(p1, p2, p3) strncmp((p1), (p2), (p3)) 54 #define JLI_StrCat(p1, p2) strcat((p1), (p2)) 55 #define JLI_StrCpy(p1, p2) strcpy((p1), (p2)) 56 #define JLI_StrNCpy(p1, p2, p3) strncpy((p1), (p2), (p3)) 57 #define JLI_StrStr(p1, p2) strstr((p1), (p2)) 58 #define JLI_StrSpn(p1, p2) strspn((p1), (p2)) 59 #define JLI_StrCSpn(p1, p2) strcspn((p1), (p2)) 60 #define JLI_StrPBrk(p1, p2) strpbrk((p1), (p2)) 61 #define JLI_StrTok(p1, p2) strtok((p1), (p2)) 62 63 /* On Windows lseek() is in io.h rather than the location dictated by POSIX. */ 64 #ifdef _WIN32 65 #include <windows.h> 66 #include <io.h> 67 #define JLI_StrCaseCmp(p1, p2) stricmp((p1), (p2)) 68 #define JLI_StrNCaseCmp(p1, p2, p3) strnicmp((p1), (p2), (p3)) 69 int JLI_Snprintf(char *buffer, size_t size, const char *format, ...); 70 void JLI_CmdToArgs(char *cmdline); 71 #define JLI_Lseek _lseeki64 72 #else /* NIXES */ 73 #include <unistd.h> 74 #include <strings.h> 75 #define JLI_StrCaseCmp(p1, p2) strcasecmp((p1), (p2)) 76 #define JLI_StrNCaseCmp(p1, p2, p3) strncasecmp((p1), (p2), (p3)) 77 #define JLI_Snprintf snprintf 78 #ifdef __solaris__ 79 #define JLI_Lseek llseek 80 #endif 81 #ifdef __linux__ 82 #define _LARGFILE64_SOURCE 83 #define JLI_Lseek lseek64 84 #endif 85 #ifdef MACOSX 86 #define JLI_Lseek lseek 87 #endif 88 #ifdef _AIX 89 #define JLI_Lseek lseek 90 #endif 91 #endif /* _WIN32 */ 92 93 /* 94 * Make launcher spit debug output. 95 */ 96 void JLI_TraceLauncher(const char* fmt, ...); 97 void JLI_SetTraceLauncher(); 98 jboolean JLI_IsTraceLauncher(); 99 100 #endif /* _JLI_UTIL_H */