blob: 6e16a29efdad3a0a51c9fe5da439881dd0b8bfc4 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 1998-2005 Sun Microsystems, Inc. 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. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26#ifndef _JAVASOFT_HPI_IMPL_H_
27#define _JAVASOFT_HPI_IMPL_H_
28
29#include "hpi.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#include "vm_calls.h"
36
37extern int nReservedBytes;
38sys_thread_t *allocThreadBlock(void);
39void freeThreadBlock(sys_thread_t *tid);
40int threadBootstrapMD(sys_thread_t **tid, sys_mon_t **lockP, int nb);
41
42HPI_SysInfo *sysGetSysInfo(void);
43long sysGetMilliTicks(void);
44jlong sysTimeMillis(void);
45
46signal_handler_t sysSignal(int sig, signal_handler_t handler);
47void sysRaise(int sig);
48void sysSignalNotify(int sig);
49int sysSignalWait(void);
50int sysShutdown(void);
51int sysSetLoggingLevel(int level);
52bool_t sysSetMonitoringOn(bool_t on);
53int sysGetLastErrorString(char *buf, int len);
54
55void * sysMalloc(size_t);
56void * sysRealloc(void*, size_t);
57void sysFree(void*);
58void * sysCalloc(size_t, size_t);
59char * sysStrdup(const char * string);
60void * sysMapMem(size_t, size_t *);
61void * sysUnmapMem(void *, size_t, size_t *);
62void * sysCommitMem(void * ptr, size_t size, size_t * actual);
63void * sysDecommitMem(void * ptr, size_t size, size_t * actual);
64void * sysAllocBlock(size_t, void**);
65void sysFreeBlock(void *);
66
67void sysBuildLibName(char *, int, char *, char *);
68int sysBuildFunName(char *, int, int, int);
69void * sysLoadLibrary(const char *, char *err_buf, int err_buflen);
70void sysUnloadLibrary(void *);
71void * sysFindLibraryEntry(void *, const char *);
72
73int sysThreadBootstrap(sys_thread_t **, sys_mon_t **, int);
74int sysThreadCreate(sys_thread_t **,
75 long,
76 void (*)(void *),
77 void *arg);
78void sysThreadExit(void);
79sys_thread_t * sysThreadSelf(void);
80void sysThreadYield(void);
81int sysThreadSuspend(sys_thread_t *);
82int sysThreadResume(sys_thread_t *);
83int sysThreadSetPriority(sys_thread_t *, int);
84int sysThreadGetPriority(sys_thread_t *, int *);
85void * sysThreadStackPointer(sys_thread_t *);
86void * sysThreadStackTop(sys_thread_t *);
87long * sysThreadRegs(sys_thread_t *, int *);
88int sysThreadSingle(void);
89void sysThreadMulti(void);
90int sysThreadEnumerateOver(int (*)(sys_thread_t *, void *), void *);
91int sysThreadCheckStack(void);
92void sysThreadPostException(sys_thread_t *, void *);
93void sysThreadInterrupt(sys_thread_t *);
94int sysThreadIsInterrupted(sys_thread_t *, int);
95int sysThreadAlloc(sys_thread_t **);
96int sysThreadFree(void);
97size_t sysThreadSizeof(void);
98jlong sysThreadCPUTime(void);
99int sysThreadGetStatus(sys_thread_t *, sys_mon_t **);
100int sysAdjustUserThreadCount(int delta);
101bool_t sysThreadIsRunning(sys_thread_t *);
102void sysThreadProfSuspend(sys_thread_t *);
103void sysThreadProfResume(sys_thread_t *);
104int sysAdjustTimeSlice(int);
105int sysThreadEnumerateOver(int (*f)(sys_thread_t *, void *), void *arg);
106void * sysThreadInterruptEvent(void);
107void * sysThreadNativeID(sys_thread_t *);
108
109size_t sysMonitorSizeof(void);
110int sysMonitorInit(sys_mon_t *);
111int sysMonitorDestroy(sys_mon_t *);
112int sysMonitorEnter(sys_thread_t *, sys_mon_t *);
113bool_t sysMonitorEntered(sys_thread_t *, sys_mon_t *);
114int sysMonitorExit(sys_thread_t *, sys_mon_t *);
115int sysMonitorNotify(sys_thread_t *, sys_mon_t *);
116int sysMonitorNotifyAll(sys_thread_t *, sys_mon_t *);
117int sysMonitorWait(sys_thread_t *, sys_mon_t *, jlong);
118bool_t sysMonitorInUse(sys_mon_t *);
119sys_thread_t * sysMonitorOwner(sys_mon_t *);
120int sysMonitorGetInfo(sys_mon_t *, sys_mon_info *);
121
122char *sysNativePath(char *path);
123int sysFileType(const char *path);
124int sysOpen(const char *name, int openMode, int filePerm);
125int sysClose(int fd);
126jlong sysSeek(int fd, jlong offset, int whence);
127int sysSetLength(int fd, jlong length);
128int sysSync(int fd);
129int sysAvailable(int fd, jlong *bytes);
130size_t sysRead(int fd, void *buf, unsigned int nBytes);
131size_t sysWrite(int fd, const void *buf, unsigned int nBytes);
132int sysFileSizeFD(int fd, jlong *size);
133
134int sysSocketClose(int fd);
135int sysSocketShutdown(int fd, int howto);
136long sysSocketAvailable(int fd, jint *pbytes);
137int sysConnect(int fd, struct sockaddr *him, int len);
138int sysBind(int fd, struct sockaddr *him, int len);
139int sysAccept(int fd, struct sockaddr *him, int *len);
140int sysGetSockName(int fd, struct sockaddr *him, int *len);
141#ifdef _LP64
142ssize_t sysSendTo(int fd, char *buf, int len, int flags, struct sockaddr *to,
143 int tolen);
144ssize_t sysRecvFrom(int fd, char *buf, int nbytes, int flags,
145 struct sockaddr *from, int *fromlen);
146ssize_t sysRecv(int fd, char *buf, int nBytes, int flags);
147ssize_t sysSend(int fd, char *buf, int nBytes, int flags);
148#else
149int sysSendTo(int fd, char *buf, int len, int flags, struct sockaddr *to,
150 int tolen);
151int sysRecvFrom(int fd, char *buf, int nbytes, int flags,
152 struct sockaddr *from, int *fromlen);
153int sysRecv(int fd, char *buf, int nBytes, int flags);
154int sysSend(int fd, char *buf, int nBytes, int flags);
155#endif
156int sysListen(int fd, int count);
157int sysTimeout(int fd, long timeout);
158int sysGetHostName(char* name, int namelen);
159struct hostent *sysGetHostByAddr(const char* name, int len, int type);
160struct hostent *sysGetHostByName(char *hostname);
161int sysSocket(int domain, int type, int protocol);
162int sysGetSockOpt(int fd, int level, int optname, char *optval, int *optlen);
163int sysSetSockOpt(int fd, int level, int optname, const char *optval, int optlen);
164struct protoent * sysGetProtoByName(char* name);
165
166#define SYS_SIG_DFL HPI_SIG_DFL
167#define SYS_SIG_ERR HPI_SIG_ERR
168#define SYS_SIG_IGN HPI_SIG_IGN
169
170#define SYS_OK HPI_OK
171#define SYS_ERR HPI_ERR
172#define SYS_INTRPT HPI_INTRPT
173#define SYS_TIMEOUT HPI_TIMEOUT
174#define SYS_NOMEM HPI_NOMEM
175#define SYS_NORESOURCE HPI_NORESOURCE
176
177#define SYS_THREAD_RUNNABLE HPI_THREAD_RUNNABLE
178#define SYS_THREAD_MONITOR_WAIT HPI_THREAD_MONITOR_WAIT
179#define SYS_THREAD_CONDVAR_WAIT HPI_THREAD_CONDVAR_WAIT
180
181#define MinimumPriority HPI_MINIMUM_PRIORITY
182#define MaximumPriority HPI_MAXIMUM_PRIORITY
183#define NormalPriority HPI_NORMAL_PRIORITY
184
185#define SYS_THREAD_SUSPENDED HPI_THREAD_SUSPENDED
186
187#define PAGE_ALIGNMENT HPI_PAGE_ALIGNMENT
188
189#define SYS_TIMEOUT_INFINITY HPI_TIMEOUT_INFINITY
190
191#define SYS_FILETYPE_REGULAR HPI_FILETYPE_REGULAR
192#define SYS_FILETYPE_DIRECTORY HPI_FILETYPE_DIRECTORY
193#define SYS_FILETYPE_OTHER HPI_FILETYPE_OTHER
194
195typedef void *stackp_t;
196
197/* global vars */
198
199extern int logging_level;
200extern bool_t profiler_on;
201
202#ifdef __cplusplus
203}
204#endif
205
206#endif /* !_JAVASOFT_HPI_IMPL_H_ */