| /* |
| * Copyright (c) 2002-2011 by XMLVM.org |
| * |
| * Project Info: http://www.xmlvm.org |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU Lesser General Public License as published by |
| * the Free Software Foundation; either version 2.1 of the License, or |
| * (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, but |
| * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public |
| * License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, |
| * USA. |
| */ |
| |
| #ifndef __XMLVM_HY_H__ |
| |
| #define __XMLVM_HY_H__ |
| |
| #ifdef __APPLE__ |
| #define MACOSX |
| #endif |
| |
| #include "xmlvm.h" |
| #include "hycomp.h" |
| #include "hysock.h" |
| #include "hysocket.h" |
| |
| |
| #define HYERROR_DEFAULT_BUFFER_SIZE 256 /**< default customized error message size if we need to create one */ |
| |
| #if defined(__linux__) |
| #define DIR_SEPARATOR '/' |
| #endif |
| |
| |
| typedef struct PortlibPTBuffers_struct |
| { |
| I_32 platformErrorCode; /**< error code as reported by the OS */ |
| I_32 portableErrorCode; /**< error code translated to portable format by application */ |
| char *errorMessageBuffer; /**< last saved error message, either customized or from OS */ |
| U_32 errorMessageBufferSize; /**< error message buffer size */ |
| I_32 reportedErrorCode; /**< last reported error code */ |
| char *reportedMessageBuffer; /**< last reported error message, either customized or from OS */ |
| U_32 reportedMessageBufferSize; /**< reported message buffer size */ |
| hyfdset_t fdset; |
| |
| #if HOSTENT_DATA_R||GLIBC_R||OTHER_R||NO_R |
| OSHOSTENT hostent; |
| #endif |
| |
| #if HOSTENT_DATA_R |
| OSHOSTENT_DATA *hostent_data; |
| #elif GLIBC_R || OTHER_R || NO_R |
| int gethostBufferSize; |
| char *gethostBuffer; |
| #endif /* HOSTENT_DATA_R */ |
| |
| } PortlibPTBuffers_struct; |
| |
| typedef struct PortlibPTBuffers_struct *PortlibPTBuffers_t; |
| |
| |
| typedef pthread_mutex_t MUTEX; |
| |
| /* MUTEX_INIT */ |
| #define MUTEX_INIT(mutex) (pthread_mutex_init(&(mutex), NULL) == 0) |
| |
| /* MUTEX_DESTROY */ |
| #define MUTEX_DESTROY(mutex) pthread_mutex_destroy(&(mutex)) |
| |
| /* MUTEX_ENTER */ |
| #define MUTEX_ENTER(mutex) pthread_mutex_lock(&(mutex)) |
| |
| /* |
| * MUTEX_TRY_ENTER |
| * returns 0 on success |
| */ |
| #define MUTEX_TRY_ENTER(mutex) pthread_mutex_trylock(&(mutex)) |
| |
| /* MUTEX_EXIT */ |
| #define MUTEX_EXIT(mutex) pthread_mutex_unlock(&(mutex)) |
| |
| |
| #if defined(SEEK_SET) |
| #define HySeekSet SEEK_SET /* Values for HyFileSeek */ |
| #else |
| #define HySeekSet 0 |
| #endif |
| |
| #if defined(SEEK_CUR) |
| #define HySeekCur SEEK_CUR |
| #else |
| #define HySeekCur 1 |
| #endif |
| |
| #if defined(SEEK_END) |
| #define HySeekEnd SEEK_END |
| #else |
| #define HySeekEnd 2 |
| #endif |
| |
| |
| typedef JAVA_INT jsize; |
| |
| |
| void* hyport_tls_get (); |
| void* hyport_tls_peek (); |
| const char* hyerror_last_error_message (); |
| I_32 hyerror_last_error_number (); |
| I_32 hyerror_set_last_error (I_32 platformCode, I_32 portableCode); |
| I_32 hyerror_set_last_error_with_message (I_32 portableCode, const char *errorMessage); |
| |
| |
| #endif |