1 /* |
1 /* |
2 * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
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 |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
38 #define JNI_FALSE 0 |
38 #define JNI_FALSE 0 |
39 #endif |
39 #endif |
40 |
40 |
41 #define JLDEBUG_ENV_ENTRY "_JAVA_LAUNCHER_DEBUG" |
41 #define JLDEBUG_ENV_ENTRY "_JAVA_LAUNCHER_DEBUG" |
42 |
42 |
43 void *JLI_MemAlloc(size_t size); |
43 JNIEXPORT void *JLI_MemAlloc(size_t size); |
44 void *JLI_MemRealloc(void *ptr, size_t size); |
44 void *JLI_MemRealloc(void *ptr, size_t size); |
45 char *JLI_StringDup(const char *s1); |
45 JNIEXPORT char *JLI_StringDup(const char *s1); |
46 void JLI_MemFree(void *ptr); |
46 JNIEXPORT void JLI_MemFree(void *ptr); |
47 int JLI_StrCCmp(const char *s1, const char* s2); |
47 int JLI_StrCCmp(const char *s1, const char* s2); |
48 |
48 |
49 typedef struct { |
49 typedef struct { |
50 char *arg; |
50 char *arg; |
51 jboolean has_wildcard; |
51 jboolean has_wildcard; |
52 } StdArg; |
52 } StdArg; |
53 |
53 |
54 StdArg *JLI_GetStdArgs(); |
54 JNIEXPORT StdArg *JLI_GetStdArgs(); |
55 int JLI_GetStdArgc(); |
55 JNIEXPORT int JLI_GetStdArgc(); |
56 int JLI_GetAppArgIndex(); |
56 JNIEXPORT int JLI_GetAppArgIndex(); |
57 |
57 |
58 #define JLI_StrLen(p1) strlen((p1)) |
58 #define JLI_StrLen(p1) strlen((p1)) |
59 #define JLI_StrChr(p1, p2) strchr((p1), (p2)) |
59 #define JLI_StrChr(p1, p2) strchr((p1), (p2)) |
60 #define JLI_StrRChr(p1, p2) strrchr((p1), (p2)) |
60 #define JLI_StrRChr(p1, p2) strrchr((p1), (p2)) |
61 #define JLI_StrCmp(p1, p2) strcmp((p1), (p2)) |
61 #define JLI_StrCmp(p1, p2) strcmp((p1), (p2)) |
75 #include <io.h> |
75 #include <io.h> |
76 #include <process.h> |
76 #include <process.h> |
77 #define JLI_StrCaseCmp(p1, p2) stricmp((p1), (p2)) |
77 #define JLI_StrCaseCmp(p1, p2) stricmp((p1), (p2)) |
78 #define JLI_StrNCaseCmp(p1, p2, p3) strnicmp((p1), (p2), (p3)) |
78 #define JLI_StrNCaseCmp(p1, p2, p3) strnicmp((p1), (p2), (p3)) |
79 int JLI_Snprintf(char *buffer, size_t size, const char *format, ...); |
79 int JLI_Snprintf(char *buffer, size_t size, const char *format, ...); |
80 void JLI_CmdToArgs(char *cmdline); |
80 JNIEXPORT void JLI_CmdToArgs(char *cmdline); |
81 #define JLI_Lseek _lseeki64 |
81 #define JLI_Lseek _lseeki64 |
82 #define JLI_PutEnv _putenv |
82 #define JLI_PutEnv _putenv |
83 #define JLI_GetPid _getpid |
83 #define JLI_GetPid _getpid |
84 #else /* NIXES */ |
84 #else /* NIXES */ |
85 #include <unistd.h> |
85 #include <unistd.h> |
106 |
106 |
107 /* |
107 /* |
108 * Make launcher spit debug output. |
108 * Make launcher spit debug output. |
109 */ |
109 */ |
110 void JLI_TraceLauncher(const char* fmt, ...); |
110 void JLI_TraceLauncher(const char* fmt, ...); |
111 void JLI_SetTraceLauncher(); |
111 JNIEXPORT void JLI_SetTraceLauncher(); |
112 jboolean JLI_IsTraceLauncher(); |
112 jboolean JLI_IsTraceLauncher(); |
113 |
113 |
114 /* |
114 /* |
115 * JLI_List - a dynamic list of char* |
115 * JLI_List - a dynamic list of char* |
116 */ |
116 */ |
120 size_t size; |
120 size_t size; |
121 size_t capacity; |
121 size_t capacity; |
122 }; |
122 }; |
123 typedef struct JLI_List_ *JLI_List; |
123 typedef struct JLI_List_ *JLI_List; |
124 |
124 |
125 JLI_List JLI_List_new(size_t capacity); |
125 JNIEXPORT JLI_List JLI_List_new(size_t capacity); |
126 void JLI_List_free(JLI_List l); |
126 void JLI_List_free(JLI_List l); |
127 void JLI_List_ensureCapacity(JLI_List l, size_t capacity); |
127 void JLI_List_ensureCapacity(JLI_List l, size_t capacity); |
128 /* e must be JLI_MemFree-able */ |
128 /* e must be JLI_MemFree-able */ |
129 void JLI_List_add(JLI_List l, char *e); |
129 JNIEXPORT void JLI_List_add(JLI_List l, char *e); |
130 /* a copy is made out of beg */ |
130 /* a copy is made out of beg */ |
131 void JLI_List_addSubstring(JLI_List l, const char *beg, size_t len); |
131 void JLI_List_addSubstring(JLI_List l, const char *beg, size_t len); |
132 char *JLI_List_combine(JLI_List sl); |
132 char *JLI_List_combine(JLI_List sl); |
133 char *JLI_List_join(JLI_List l, char sep); |
133 char *JLI_List_join(JLI_List l, char sep); |
134 JLI_List JLI_List_split(const char *str, char sep); |
134 JLI_List JLI_List_split(const char *str, char sep); |
135 |
135 |
136 void JLI_InitArgProcessing(jboolean hasJavaArgs, jboolean disableArgFile); |
136 JNIEXPORT void JLI_InitArgProcessing(jboolean hasJavaArgs, jboolean disableArgFile); |
137 JLI_List JLI_PreprocessArg(const char *arg); |
137 JNIEXPORT JLI_List JLI_PreprocessArg(const char *arg); |
138 jboolean JLI_AddArgsFromEnvVar(JLI_List args, const char *var_name); |
138 JNIEXPORT jboolean JLI_AddArgsFromEnvVar(JLI_List args, const char *var_name); |
139 |
139 |
140 #endif /* _JLI_UTIL_H */ |
140 #endif /* _JLI_UTIL_H */ |