1/*
2 * Copyright (c) 1998, 2013, 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 _JAVA_PROPS_H
27#define _JAVA_PROPS_H
28
29#include <jni_util.h>
30
31/* The preferred native type for storing text on the current OS */
32#ifdef WIN32
33#include <tchar.h>
34typedef WCHAR nchar;
35#else
36typedef char nchar;
37#endif
38
39typedef struct {
40 char *os_name;
41 char *os_version;
42 char *os_arch;
43
44#ifdef JDK_ARCH_ABI_PROP_NAME
45 char *sun_arch_abi;
46#endif
47
48 nchar *tmp_dir;
49 nchar *user_dir;
50
51 char *file_separator;
52 char *path_separator;
53 char *line_separator;
54
55 nchar *user_name;
56 nchar *user_home;
57
58 char *format_language;
59 char *display_language;
60 char *format_script;
61 char *display_script;
62 char *format_country;
63 char *display_country;
64 char *format_variant;
65 char *display_variant;
66 char *encoding;
67 char *sun_jnu_encoding;
68 char *sun_stdout_encoding;
69 char *sun_stderr_encoding;
70
71 char *unicode_encoding; /* The default endianness of unicode
72 i.e. UnicodeBig or UnicodeLittle */
73
74 const char *cpu_isalist; /* list of supported instruction sets */
75
76 char *cpu_endian; /* endianness of platform */
77
78 char *data_model; /* 32 or 64 bit data model */
79
80 char *patch_level; /* patches/service packs installed */
81
82#ifdef MACOSX
83 // These are for proxy-related information.
84 // Note that if these platform-specific extensions get out of hand we should make a new
85 // structure for them and #include it here.
86 int httpProxyEnabled;
87 char *httpHost;
88 char *httpPort;
89
90 int httpsProxyEnabled;
91 char *httpsHost;
92 char *httpsPort;
93
94 int ftpProxyEnabled;
95 char *ftpHost;
96 char *ftpPort;
97
98 int socksProxyEnabled;
99 char *socksHost;
100 char *socksPort;
101
102 char *exceptionList;
103#endif
104
105} java_props_t;
106
107java_props_t *GetJavaProperties(JNIEnv *env);
108jstring GetStringPlatform(JNIEnv *env, nchar* str);
109
110#endif /* _JAVA_PROPS_H */
111