1#if !defined(hy2sie_h) 2#define hy2sie_h 3 4 5#include "JNIHelp.h" 6#include "jni.h" 7#include "sieb.h" 8 9 10typedef int BOOLEAN; 11#define TRUE 1 12#define FALSE 0 13 14 15// mc: Stuff adopted from hyport.h: 16 17/** HyMaxPath was chosen from unix MAXPATHLEN. Override in platform 18 * specific hyfile implementations if needed. 19 */ 20#define HyMaxPath 1024 21 22 23 24// Following definitions from hycomp.h: 25 26/** 27 * Define common types: 28 * <ul> 29 * <li><code>U_32 / I_32</code> - unsigned/signed 32 bits</li> 30 * <li><code>U_16 / I_16</code> - unsigned/signed 16 bits</li> 31 * <li><code>U_8 / I_8</code> - unsigned/signed 8 bits (bytes -- not to be 32 * confused with char)</li> 33 * </ul> 34 */ 35 36typedef int I_32; 37typedef short I_16; 38typedef signed char I_8; /* chars can be unsigned */ 39typedef unsigned int U_32; 40typedef unsigned short U_16; 41typedef unsigned char U_8; 42 43typedef long long I_64; 44typedef unsigned long long U_64; 45 46/** 47 * Define platform specific types: 48 * <ul> 49 * <li><code>UDATA</code> - unsigned data, can be used as an integer or 50 * pointer storage</li> 51 * <li><code>IDATA</code> - signed data, can be used as an integer or 52 * pointer storage</li> 53 * </ul> 54 */ 55/* FIXME: POINTER64 */ 56 57typedef I_32 IDATA; 58typedef U_32 UDATA; 59 60 61// Further required definitions from Harmony: 62 63#define HYCONST64(x) x##L 64 65 66#define HY_CFUNC 67#define HY_CDATA 68#define PROTOTYPE(x) x 69#define VMCALL 70#define PVMCALL * 71#define NORETURN 72 73#define GLOBAL_DATA(symbol) ((void*)&(symbol)) 74 75 76// Following definitions substitute the HyPortLibrary simply with the JNIEnv 77 78typedef JNIEnv HyPortLibrary; 79 80#define PORT_ACCESS_FROM_ENV(env) HyPortLibrary *privatePortLibrary = env 81#define PORT_ACCESS_FROM_PORT(portLibrary) HyPortLibrary *privatePortLibrary = portLibrary 82#define PORTLIB privatePortLibrary 83 84 85// Following defintion is used to avoide quite a few signedness warnings: 86#define mcSignednessBull void * 87 88 89// Following the substitution of hyfile: 90 91#include <fcntl.h> 92 93#define HyOpenRead O_RDONLY 94#define hyfile_open(a, b, c) open(a, b, c) 95 96#define HySeekEnd SEEK_END 97#define HySeekSet SEEK_SET 98#define HySeekCur SEEK_CUR 99#define hyfile_seek(a, b, c) lseek(a, b, c) 100 101#define hyfile_read(a, b, c) read(a, b, c) 102 103#define hyfile_close(a) close(a) 104 105 106// And further substitutions: 107 108#define hymem_allocate_memory(byteCount) sieb_malloc(privatePortLibrary, byteCount) 109#define hymem_free_memory(pointer) sieb_free(privatePortLibrary, pointer) 110 111#define ioh_convertToPlatform(path) sieb_convertToPlatform (path) 112 113 114#endif /* hy2sie_h */ 115