#if !defined(hy2sie_h) #define hy2sie_h #include "JNIHelp.h" #include "jni.h" #include "sieb.h" typedef int BOOLEAN; #define TRUE 1 #define FALSE 0 // mc: Stuff adopted from hyport.h: /** HyMaxPath was chosen from unix MAXPATHLEN. Override in platform * specific hyfile implementations if needed. */ #define HyMaxPath 1024 // Following definitions from hycomp.h: /** * Define common types: * <ul> * <li><code>U_32 / I_32</code> - unsigned/signed 32 bits</li> * <li><code>U_16 / I_16</code> - unsigned/signed 16 bits</li> * <li><code>U_8 / I_8</code> - unsigned/signed 8 bits (bytes -- not to be * confused with char)</li> * </ul> */ typedef int I_32; typedef short I_16; typedef signed char I_8; /* chars can be unsigned */ typedef unsigned int U_32; typedef unsigned short U_16; typedef unsigned char U_8; typedef long long I_64; typedef unsigned long long U_64; /** * Define platform specific types: * <ul> * <li><code>UDATA</code> - unsigned data, can be used as an integer or * pointer storage</li> * <li><code>IDATA</code> - signed data, can be used as an integer or * pointer storage</li> * </ul> */ /* FIXME: POINTER64 */ typedef I_32 IDATA; typedef U_32 UDATA; // Further required definitions from Harmony: #define HYCONST64(x) x##L #define HY_CFUNC #define HY_CDATA #define PROTOTYPE(x) x #define VMCALL #define PVMCALL * #define NORETURN #define GLOBAL_DATA(symbol) ((void*)&(symbol)) // Following definitions substitute the HyPortLibrary simply with the JNIEnv typedef JNIEnv HyPortLibrary; #define PORT_ACCESS_FROM_ENV(env) HyPortLibrary *privatePortLibrary = env #define PORT_ACCESS_FROM_PORT(portLibrary) HyPortLibrary *privatePortLibrary = portLibrary #define PORTLIB privatePortLibrary // Following defintion is used to avoide quite a few signedness warnings: #define mcSignednessBull void * // Following the substitution of hyfile: #include <fcntl.h> #define HyOpenRead O_RDONLY #define hyfile_open(a, b, c) open(a, b, c) #define HySeekEnd SEEK_END #define HySeekSet SEEK_SET #define HySeekCur SEEK_CUR #define hyfile_seek(a, b, c) lseek(a, b, c) #define hyfile_read(a, b, c) read(a, b, c) #define hyfile_close(a) close(a) // And further substitutions: #define hymem_allocate_memory(byteCount) sieb_malloc(privatePortLibrary, byteCount) #define hymem_free_memory(pointer) sieb_free(privatePortLibrary, pointer) #define ioh_convertToPlatform(path) sieb_convertToPlatform (path) #endif /* hy2sie_h */