modules/portlib/src/main/native/include/shared/hyport.h File Reference


Detailed Description

Port Library Header.

#include <stdarg.h>
#include "hycomp.h"
#include "hythread.h"
#include "hysocket.h"
#include "gp.h"

Data Structures

struct  HyPortLibraryVersion
struct  HyPortVmemIdentifier
struct  HyPortShmemStatistic
struct  HyPortLibrary
 The port library function table. More...

Defines

Port library access
Macros for accessing port library.

#define PORT_ACCESS_FROM_ENV(jniEnv)   HyPortLibrary *privatePortLibrary = ((HyVMThread *) (jniEnv))->javaVM->portLibrary
#define PORT_ACCESS_FROM_JAVAVM(javaVM)   HyPortLibrary *privatePortLibrary = (javaVM)->portLibrary
#define PORT_ACCESS_FROM_VMC(vmContext)   HyPortLibrary *privatePortLibrary = (vmContext)->javaVM->portLibrary
#define PORT_ACCESS_FROM_GINFO(javaVM)   HyPortLibrary *privatePortLibrary = (javaVM)->portLibrary
#define PORT_ACCESS_FROM_JITCONFIG(jitConfig)   HyPortLibrary *privatePortLibrary = (jitConfig)->javaVM->portLibrary
#define PORT_ACCESS_FROM_WALKSTATE(walkState)   HyPortLibrary *privatePortLibrary = (walkState)->walkThread->javaVM->portLibrary
#define PORT_ACCESS_FROM_VMI(vmi)   HyPortLibrary *privatePortLibrary = (*vmi)->GetPortLibrary(vmi)
#define PORT_ACCESS_FROM_PORT(portLibrary)   HyPortLibrary *privatePortLibrary = (portLibrary)
#define HY_STR_(x)   #x
#define HY_STR(x)   HY_STR_(x)
#define HY_GET_CALLSITE()   __FILE__ ":" HY_STR(__LINE__)
#define PORTLIB   privatePortLibrary
File Operations
File operation modifiers.

#define HySeekSet   0
#define HySeekCur   1
#define HySeekEnd   2
#define HyOpenRead   1
#define HyOpenWrite   2
#define HyOpenCreate   4
#define HyOpenTruncate   8
#define HyOpenAppend   16
#define HyOpenText   32
#define HyOpenCreateNew   64
#define HyOpenSync   128
#define HyIsDir   0
#define HyIsFile   1
#define HyMaxPath   1024
 HyMaxPath was chosen from unix MAXPATHLEN.
Shared Semaphore Success flags
Success codes related to shared semaphore operations.

#define HYPORT_INFO_SHSEM_BASE   100
#define HYPORT_INFO_SHSEM_CREATED   (HYPORT_INFO_SHSEM_BASE)
#define HYPORT_INFO_SHSEM_OPENED   (HYPORT_INFO_SHSEM_BASE+1)
#define HYPORT_INFO_SHSEM_SEMID_DIFF   (HYPORT_INFO_SHSEM_BASE+2)
Shared Memory Success flags
Success codes related to shared memory semaphore operations.

#define HYPORT_INFO_SHMEM_BASE   110
#define HYPORT_INFO_SHMEM_CREATED   (HYPORT_INFO_SHMEM_BASE)
#define HYPORT_INFO_SHMEM_OPENED   (HYPORT_INFO_SHMEM_BASE+1)
#define HYPORT_INFO_SHMEM_SHMID_DIFF   (HYPORT_INFO_SHMEM_BASE+2)
JSIG support (optional)
JSIG

#define HYJSIG_SIGNAL(signum, handler)   jsig_primary_signal(signum, handler)
#define HYJSIG_SIGACTION(signum, act, oldact)   jsig_primary_sigaction(signum, act, oldact)
OS Exception Handling
OS Exceptions

#define MAX_SIZE_TOTAL_GPINFO   2048
#define HYGP_VALUE_UNDEFINED   0
#define HYGP_VALUE_32   1
#define HYGP_VALUE_64   2
#define HYGP_VALUE_STRING   3
#define HYGP_VALUE_ADDRESS   4
#define HYGP_VALUE_FLOAT_64   5
#define HYGP_SIGNAL   0
#define HYGP_GPR   1
#define HYGP_OTHER   2
#define HYGP_CONTROL   3
#define HYGP_FPR   4
#define HYGP_MODULE   5
#define HYGP_NUM_CATEGORIES   6
#define HYGP_CONTROL_PC   (-1)
#define HYGP_MODULE_NAME   (-1)
Native Language Support
Native Language Support

#define HYNLS_COMMON_PREFIX   "HMY"
#define HYNLS_ERROR_PREFIX   ""
#define HYNLS_WARNING_PREFIX   ""
#define HYNLS_INFO_PREFIX   ""
#define HYNLS_ERROR_SUFFIX   "E"
#define HYNLS_WARNING_SUFFIX   "W"
#define HYNLS_INFO_SUFFIX   "I"
#define HYNLS_MESSAGE(id, message)   ("" HYNLS_COMMON_PREFIX "" id##__PREFIX " " message)
#define HYNLS_ERROR_MESSAGE(id, message)   ("" HYNLS_ERROR_PREFIX "" HYNLS_COMMON_PREFIX "" id##__PREFIX "" HYNLS_ERROR_SUFFIX " " message)
#define HYNLS_INFO_MESSAGE(id, message)   ("" HYNLS_INFO_PREFIX "" HYNLS_COMMON_PREFIX "" id##__PREFIX "" HYNLS_INFO_SUFFIX " " message)
#define HYNLS_WARNING_MESSAGE(id, message)   ("" HYNLS_WARNING_PREFIX "" HYNLS_COMMON_PREFIX "" id##__PREFIX "" HYNLS_WARNING_SUFFIX " " message)
Virtual Memory Access
Flags used to create bitmap indicating memory access

#define HYPORT_VMEM_MEMORY_MODE_READ   0x00000001
#define HYPORT_VMEM_MEMORY_MODE_WRITE   0x00000002
#define HYPORT_VMEM_MEMORY_MODE_EXECUTE   0x00000004
#define HYPORT_VMEM_MEMORY_MODE_COMMIT   0x00000008
Virtual Memory Page Size
Shortcut for requesting default page size when large pages are not required hyvmem_supported_page_sizes and hyvmem_reserve_memory

#define HYPORT_VMEM_PAGE_SIZE_DEFAULT   0x00000001
Timer Resolution
Define resolution requested in hytime::hytime_hires_delta

#define HYPORT_TIME_DELTA_IN_SECONDS   ((UDATA) 1)
#define HYPORT_TIME_DELTA_IN_MILLISECONDS   ((UDATA) 1000)
#define HYPORT_TIME_DELTA_IN_MICROSECONDS   ((UDATA) 1000000)
#define HYPORT_TIME_DELTA_IN_NANOSECONDS   ((UDATA) 1000000000)
Shared Semaphore
Flags used to indicate type of operation for hyshsem_post/hyshsem_wait

#define HYPORT_SHSEM_MODE_DEFAULT   ((UDATA) 0)
#define HYPORT_SHSEM_MODE_UNDO   ((UDATA) 1)
#define HYPORT_SHSEM_MODE_NOWAIT   ((UDATA) 2)
PortLibrary Access functions
Convenience helpers for accessing port library functionality.

Users can either call functions directly via the table or by help macros.

 memoryPointer = portLibrary->mem_allocate_memory(portLibrary, 1024); 
 PORT_ACCESS_FROM_ENV(jniEnv);
 memoryPointer = hymem_allocate_memory(1024);


#define hyport_shutdown_library()   privatePortLibrary->port_shutdown_library(privatePortLibrary)
#define hyport_isFunctionOverridden(param1)   privatePortLibrary->port_isFunctionOverridden(privatePortLibrary,param1)
#define hyport_tls_free()   privatePortLibrary->port_tls_free(privatePortLibrary)
#define hyerror_startup()   privatePortLibrary->error_startup(privatePortLibrary)
#define hyerror_shutdown()   privatePortLibrary->error_shutdown(privatePortLibrary)
#define hyerror_last_error_number()   privatePortLibrary->error_last_error_number(privatePortLibrary)
#define hyerror_last_error_message()   privatePortLibrary->error_last_error_message(privatePortLibrary)
#define hyerror_set_last_error(param1, param2)   privatePortLibrary->error_set_last_error(privatePortLibrary,param1,param2)
#define hyerror_set_last_error_with_message(param1, param2)   privatePortLibrary->error_set_last_error_with_message(privatePortLibrary,param1,param2)
#define hytime_startup()   privatePortLibrary->time_startup(privatePortLibrary)
#define hytime_shutdown()   privatePortLibrary->time_shutdown(privatePortLibrary)
#define hytime_msec_clock()   privatePortLibrary->time_msec_clock(privatePortLibrary)
#define hytime_usec_clock()   privatePortLibrary->time_usec_clock(privatePortLibrary)
#define hytime_current_time_millis()   privatePortLibrary->time_current_time_millis(privatePortLibrary)
#define hytime_hires_clock()   privatePortLibrary->time_hires_clock(privatePortLibrary)
#define hytime_hires_frequency()   privatePortLibrary->time_hires_frequency(privatePortLibrary)
#define hytime_hires_delta(param1, param2, param3)   privatePortLibrary->time_hires_delta(privatePortLibrary,param1,param2,param3)
#define hysysinfo_startup()   privatePortLibrary->sysinfo_startup(privatePortLibrary)
#define hysysinfo_shutdown()   privatePortLibrary->sysinfo_shutdown(privatePortLibrary)
#define hysysinfo_get_pid()   privatePortLibrary->sysinfo_get_pid(privatePortLibrary)
#define hysysinfo_get_physical_memory()   privatePortLibrary->sysinfo_get_physical_memory(privatePortLibrary)
#define hysysinfo_get_OS_version()   privatePortLibrary->sysinfo_get_OS_version(privatePortLibrary)
#define hysysinfo_get_env(param1, param2, param3)   privatePortLibrary->sysinfo_get_env(privatePortLibrary,param1,param2,param3)
#define hysysinfo_get_CPU_architecture()   privatePortLibrary->sysinfo_get_CPU_architecture(privatePortLibrary)
#define hysysinfo_get_OS_type()   privatePortLibrary->sysinfo_get_OS_type(privatePortLibrary)
#define hysysinfo_get_classpathSeparator()   privatePortLibrary->sysinfo_get_classpathSeparator(privatePortLibrary)
#define hysysinfo_get_executable_name(param1, param2)   privatePortLibrary->sysinfo_get_executable_name(privatePortLibrary,param1,param2)
#define hysysinfo_get_number_CPUs()   privatePortLibrary->sysinfo_get_number_CPUs(privatePortLibrary)
#define hysysinfo_get_username(param1, param2)   privatePortLibrary->sysinfo_get_username(privatePortLibrary,param1,param2)
#define hyfile_startup()   privatePortLibrary->file_startup(privatePortLibrary)
#define hyfile_shutdown()   privatePortLibrary->file_shutdown(privatePortLibrary)
#define hyfile_write(param1, param2, param3)   privatePortLibrary->file_write(privatePortLibrary,param1,param2,param3)
#define hyfile_write_text(param1, param2, param3)   privatePortLibrary->file_write_text(privatePortLibrary,param1,param2,param3)
#define hybuf_write_text(param1, param2)   privatePortLibrary->buf_write_text(privatePortLibrary,param1,param2)
#define hyfile_vprintf(param1, param2, param3)   privatePortLibrary->file_vprintf(privatePortLibrary,param1,param2,param3)
#define hyfile_printf   privatePortLibrary->file_printf
#define hyfile_open(param1, param2, param3)   privatePortLibrary->file_open(privatePortLibrary,param1,param2,param3)
#define hyfile_close(param1)   privatePortLibrary->file_close(privatePortLibrary,param1)
#define hyfile_seek(param1, param2, param3)   privatePortLibrary->file_seek(privatePortLibrary,param1,param2,param3)
#define hyfile_read(param1, param2, param3)   privatePortLibrary->file_read(privatePortLibrary,param1,param2,param3)
#define hyfile_unlink(param1)   privatePortLibrary->file_unlink(privatePortLibrary,param1)
#define hyfile_attr(param1)   privatePortLibrary->file_attr(privatePortLibrary,param1)
#define hyfile_lastmod(param1)   privatePortLibrary->file_lastmod(privatePortLibrary,param1)
#define hyfile_length(param1)   privatePortLibrary->file_length(privatePortLibrary,param1)
#define hyfile_set_length(param1, param2)   privatePortLibrary->file_set_length(privatePortLibrary,param1,param2)
#define hyfile_sync(param1)   privatePortLibrary->file_sync(privatePortLibrary,param1)
#define hysl_startup()   privatePortLibrary->sl_startup(privatePortLibrary)
#define hysl_shutdown()   privatePortLibrary->sl_shutdown(privatePortLibrary)
#define hysl_close_shared_library(param1)   privatePortLibrary->sl_close_shared_library(privatePortLibrary,param1)
#define hysl_open_shared_library(param1, param2, param3)   privatePortLibrary->sl_open_shared_library(privatePortLibrary,param1,param2,param3)
#define hysl_lookup_name(param1, param2, param3, param4)   privatePortLibrary->sl_lookup_name(privatePortLibrary,param1,param2,param3,param4)
#define hytty_startup()   privatePortLibrary->tty_startup(privatePortLibrary)
#define hytty_shutdown()   privatePortLibrary->tty_shutdown(privatePortLibrary)
#define hytty_printf   privatePortLibrary->tty_printf
#define hytty_vprintf(param1, param2)   privatePortLibrary->tty_vprintf(privatePortLibrary,param1,param2)
#define hytty_get_chars(param1, param2)   privatePortLibrary->tty_get_chars(privatePortLibrary,param1,param2)
#define hytty_err_printf   privatePortLibrary->tty_err_printf
#define hytty_err_vprintf(param1, param2)   privatePortLibrary->tty_err_vprintf(privatePortLibrary,param1,param2)
#define hytty_available()   privatePortLibrary->tty_available(privatePortLibrary)
#define hymem_startup(param1)   privatePortLibrary->mem_startup(privatePortLibrary,param1)
#define hymem_shutdown()   privatePortLibrary->mem_shutdown(privatePortLibrary)
#define hymem_allocate_memory(param1)   privatePortLibrary->mem_allocate_memory(privatePortLibrary,param1)
#define hymem_allocate_memory_callSite(param1, param2)   privatePortLibrary->mem_allocate_memory_callSite(privatePortLibrary,param1,param2)
#define hymem_free_memory(param1)   privatePortLibrary->mem_free_memory(privatePortLibrary,param1)
#define hymem_reallocate_memory(param1, param2)   privatePortLibrary->mem_reallocate_memory(privatePortLibrary,param1,param2)
#define hycpu_startup()   privatePortLibrary->cpu_startup(privatePortLibrary)
#define hycpu_shutdown()   privatePortLibrary->cpu_shutdown(privatePortLibrary)
#define hycpu_flush_icache(param1, param2)   privatePortLibrary->cpu_flush_icache(privatePortLibrary,param1,param2)
#define hyvmem_startup()   privatePortLibrary->vmem_startup(privatePortLibrary)
#define hyvmem_shutdown()   privatePortLibrary->vmem_shutdown(privatePortLibrary)
#define hyvmem_commit_memory(param1, param2, param3)   privatePortLibrary->vmem_commit_memory(privatePortLibrary,param1,param2,param3)
#define hyvmem_decommit_memory(param1, param2, param3)   privatePortLibrary->vmem_decommit_memory(privatePortLibrary,param1,param2,param3)
#define hyvmem_free_memory(param1, param2, param3)   privatePortLibrary->vmem_free_memory(privatePortLibrary,param1,param2,param3)
#define hyvmem_reserve_memory(param1, param2, param3, param4, param5)   privatePortLibrary->vmem_reserve_memory(privatePortLibrary,param1,param2,param3,param4,param5)
#define hyvmem_supported_page_sizes()   privatePortLibrary->vmem_supported_page_sizes(privatePortLibrary)
#define hysock_startup()   privatePortLibrary->sock_startup(privatePortLibrary)
#define hysock_shutdown()   privatePortLibrary->sock_shutdown(privatePortLibrary)
#define hysock_htons(param1)   privatePortLibrary->sock_htons(privatePortLibrary,param1)
#define hysock_write(param1, param2, param3, param4)   privatePortLibrary->sock_write(privatePortLibrary,param1,param2,param3,param4)
#define hysock_sockaddr(param1, param2, param3)   privatePortLibrary->sock_sockaddr(privatePortLibrary,param1,param2,param3)
#define hysock_read(param1, param2, param3, param4)   privatePortLibrary->sock_read(privatePortLibrary,param1,param2,param3,param4)
#define hysock_socket(param1, param2, param3, param4)   privatePortLibrary->sock_socket(privatePortLibrary,param1,param2,param3,param4)
#define hysock_close(param1)   privatePortLibrary->sock_close(privatePortLibrary,param1)
#define hysock_connect(param1, param2)   privatePortLibrary->sock_connect(privatePortLibrary,param1,param2)
#define hysock_inetaddr(param1, param2)   privatePortLibrary->sock_inetaddr(privatePortLibrary,param1,param2)
#define hysock_gethostbyname(param1, param2)   privatePortLibrary->sock_gethostbyname(privatePortLibrary,param1,param2)
#define hysock_hostent_addrlist(param1, param2)   privatePortLibrary->sock_hostent_addrlist(privatePortLibrary,param1,param2)
#define hysock_sockaddr_init(param1, param2, param3, param4)   privatePortLibrary->sock_sockaddr_init(privatePortLibrary,param1,param2,param3,param4)
#define hysock_linger_init(param1, param2, param3)   privatePortLibrary->sock_linger_init(privatePortLibrary,param1,param2,param3)
#define hysock_setopt_linger(param1, param2, param3, param4)   privatePortLibrary->sock_setopt_linger(privatePortLibrary,param1,param2,param3,param4)
#define hygp_startup()   privatePortLibrary->gp_startup(privatePortLibrary)
#define hygp_shutdown()   privatePortLibrary->gp_shutdown(privatePortLibrary)
#define hygp_protect(param1, param2)   privatePortLibrary->gp_protect(privatePortLibrary,param1,param2)
#define hygp_register_handler(param1, param2)   privatePortLibrary->gp_register_handler(privatePortLibrary,param1,param2)
#define hygp_info(param1, param2, param3, param4, param5)   privatePortLibrary->gp_info(privatePortLibrary,param1,param2,param3,param4,param5)
#define hygp_info_count(param1, param2)   privatePortLibrary->gp_info_count(privatePortLibrary,param1,param2)
#define hygp_handler_function()   privatePortLibrary->gp_handler_function(privatePortLibrary)
#define hystr_startup()   privatePortLibrary->str_startup(privatePortLibrary)
#define hystr_shutdown()   privatePortLibrary->str_shutdown(privatePortLibrary)
#define hystr_printf   privatePortLibrary->str_printf
#define hystr_vprintf(param1, param2, param3, param4)   privatePortLibrary->str_vprintf(privatePortLibrary,param1,param2,param3,param4)
#define hyexit_startup()   privatePortLibrary->exit_startup(privatePortLibrary)
#define hyexit_shutdown()   privatePortLibrary->exit_shutdown(privatePortLibrary)
#define hyexit_get_exit_code()   privatePortLibrary->exit_get_exit_code(privatePortLibrary)
#define hyexit_shutdown_and_exit(param1)   privatePortLibrary->exit_shutdown_and_exit(privatePortLibrary,param1)
#define hydump_create(param1, param2, param3)   privatePortLibrary->dump_create(privatePortLibrary,param1,param2,param3)
#define hynls_startup()   privatePortLibrary->nls_startup(privatePortLibrary)
#define hynls_shutdown()   privatePortLibrary->nls_shutdown(privatePortLibrary)
#define hynls_set_catalog(param1, param2, param3, param4)   privatePortLibrary->nls_set_catalog(privatePortLibrary,param1,param2,param3,param4)
#define hynls_set_locale(param1, param2, param3)   privatePortLibrary->nls_set_locale(privatePortLibrary,param1,param2,param3)
#define hynls_get_language()   privatePortLibrary->nls_get_language(privatePortLibrary)
#define hynls_get_region()   privatePortLibrary->nls_get_region(privatePortLibrary)
#define hynls_get_variant()   privatePortLibrary->nls_get_variant(privatePortLibrary)
#define hynls_printf   privatePortLibrary->nls_printf
#define hynls_vprintf(param1, param2, param3, param4)   privatePortLibrary->nls_vprintf(privatePortLibrary,param1,param2,param3,param4)
#define hynls_lookup_message(param1, param2, param3, param4)   privatePortLibrary->nls_lookup_message(privatePortLibrary,param1,param2,param3,param4)
#define hyipcmutex_startup()   privatePortLibrary->ipcmutex_startup(privatePortLibrary)
#define hyipcmutex_shutdown()   privatePortLibrary->ipcmutex_shutdown(privatePortLibrary)
#define hyipcmutex_acquire(param1)   privatePortLibrary->ipcmutex_acquire(privatePortLibrary,param1)
#define hyipcmutex_release(param1)   privatePortLibrary->ipcmutex_release(privatePortLibrary,param1)
#define hyport_control(param1, param2)   privatePortLibrary->port_control(privatePortLibrary,param1,param2)
#define hysig_startup()   privatePortLibrary->sig_startup(privatePortLibrary)
#define hysig_shutdown()   privatePortLibrary->sig_shutdown(privatePortLibrary)
#define hysig_protect(param1, param2, param3, param4, param5, param6)   privatePortLibrary->sig_protect(privatePortLibrary,param1,param2,param3,param4,param5,param6)
#define hysig_can_protect(param1)   privatePortLibrary->sig_can_protect(privatePortLibrary,param1)
#define hysig_set_async_signal_handler(param1, param2, param3)   privatePortLibrary->sig_set_async_signal_handler(privatePortLibrary,param1,param2,param3)
#define hysig_info(param1, param2, param3, param4, param5)   privatePortLibrary->sig_info(privatePortLibrary,param1,param2,param3,param4,param5)
#define hysig_info_count(param1, param2)   privatePortLibrary->sig_info_count(privatePortLibrary,param1,param2)
#define hysig_set_options(param1)   privatePortLibrary->sig_set_options(privatePortLibrary,param1)
#define hysig_get_options()   privatePortLibrary->sig_get_options(privatePortLibrary)
#define hysysinfo_DLPAR_enabled()   privatePortLibrary->sysinfo_DLPAR_enabled(privatePortLibrary)
#define hysysinfo_DLPAR_max_CPUs()   privatePortLibrary->sysinfo_DLPAR_max_CPUs(privatePortLibrary)
#define hysysinfo_weak_memory_consistency()   privatePortLibrary->sysinfo_weak_memory_consistency(privatePortLibrary)
#define hyfile_read_text(param1, param2, param3)   privatePortLibrary->file_read_text(privatePortLibrary,param1,param2,param3)
#define hyfile_mkdir(param1)   privatePortLibrary->file_mkdir(privatePortLibrary,param1)
#define hyfile_move(param1, param2)   privatePortLibrary->file_move(privatePortLibrary,param1,param2)
#define hyfile_unlinkdir(param1)   privatePortLibrary->file_unlinkdir(privatePortLibrary,param1)
#define hyfile_findfirst(param1, param2)   privatePortLibrary->file_findfirst(privatePortLibrary,param1,param2)
#define hyfile_findnext(param1, param2)   privatePortLibrary->file_findnext(privatePortLibrary,param1,param2)
#define hyfile_findclose(param1)   privatePortLibrary->file_findclose(privatePortLibrary,param1)
#define hyfile_error_message()   privatePortLibrary->file_error_message(privatePortLibrary)
#define hysock_htonl(param1)   privatePortLibrary->sock_htonl(privatePortLibrary,param1)
#define hysock_bind(param1, param2)   privatePortLibrary->sock_bind(privatePortLibrary,param1,param2)
#define hysock_accept(param1, param2, param3)   privatePortLibrary->sock_accept(privatePortLibrary,param1,param2,param3)
#define hysock_shutdown_input(param1)   privatePortLibrary->sock_shutdown_input(privatePortLibrary,param1)
#define hysock_shutdown_output(param1)   privatePortLibrary->sock_shutdown_output(privatePortLibrary,param1)
#define hysock_listen(param1, param2)   privatePortLibrary->sock_listen(privatePortLibrary,param1,param2)
#define hysock_ntohl(param1)   privatePortLibrary->sock_ntohl(privatePortLibrary,param1)
#define hysock_ntohs(param1)   privatePortLibrary->sock_ntohs(privatePortLibrary,param1)
#define hysock_getpeername(param1, param2)   privatePortLibrary->sock_getpeername(privatePortLibrary,param1,param2)
#define hysock_getsockname(param1, param2)   privatePortLibrary->sock_getsockname(privatePortLibrary,param1,param2)
#define hysock_readfrom(param1, param2, param3, param4, param5)   privatePortLibrary->sock_readfrom(privatePortLibrary,param1,param2,param3,param4,param5)
#define hysock_select(param1, param2, param3, param4, param5)   privatePortLibrary->sock_select(privatePortLibrary,param1,param2,param3,param4,param5)
#define hysock_writeto(param1, param2, param3, param4, param5)   privatePortLibrary->sock_writeto(privatePortLibrary,param1,param2,param3,param4,param5)
#define hysock_inetntoa(param1, param2)   privatePortLibrary->sock_inetntoa(privatePortLibrary,param1,param2)
#define hysock_gethostbyaddr(param1, param2, param3, param4)   privatePortLibrary->sock_gethostbyaddr(privatePortLibrary,param1,param2,param3,param4)
#define hysock_gethostname(param1, param2)   privatePortLibrary->sock_gethostname(privatePortLibrary,param1,param2)
#define hysock_hostent_aliaslist(param1, param2)   privatePortLibrary->sock_hostent_aliaslist(privatePortLibrary,param1,param2)
#define hysock_hostent_hostname(param1, param2)   privatePortLibrary->sock_hostent_hostname(privatePortLibrary,param1,param2)
#define hysock_sockaddr_port(param1)   privatePortLibrary->sock_sockaddr_port(privatePortLibrary,param1)
#define hysock_sockaddr_address(param1)   privatePortLibrary->sock_sockaddr_address(privatePortLibrary,param1)
#define hysock_fdset_init(param1)   privatePortLibrary->sock_fdset_init(privatePortLibrary,param1)
#define hysock_fdset_size(param1)   privatePortLibrary->sock_fdset_size(privatePortLibrary,param1)
#define hysock_timeval_init(param1, param2, param3)   privatePortLibrary->sock_timeval_init(privatePortLibrary,param1,param2,param3)
#define hysock_getopt_int(param1, param2, param3, param4)   privatePortLibrary->sock_getopt_int(privatePortLibrary,param1,param2,param3,param4)
#define hysock_setopt_int(param1, param2, param3, param4)   privatePortLibrary->sock_setopt_int(privatePortLibrary,param1,param2,param3,param4)
#define hysock_getopt_bool(param1, param2, param3, param4)   privatePortLibrary->sock_getopt_bool(privatePortLibrary,param1,param2,param3,param4)
#define hysock_setopt_bool(param1, param2, param3, param4)   privatePortLibrary->sock_setopt_bool(privatePortLibrary,param1,param2,param3,param4)
#define hysock_getopt_byte(param1, param2, param3, param4)   privatePortLibrary->sock_getopt_byte(privatePortLibrary,param1,param2,param3,param4)
#define hysock_setopt_byte(param1, param2, param3, param4)   privatePortLibrary->sock_setopt_byte(privatePortLibrary,param1,param2,param3,param4)
#define hysock_getopt_linger(param1, param2, param3, param4)   privatePortLibrary->sock_getopt_linger(privatePortLibrary,param1,param2,param3,param4)
#define hysock_getopt_sockaddr(param1, param2, param3, param4)   privatePortLibrary->sock_getopt_sockaddr(privatePortLibrary,param1,param2,param3,param4)
#define hysock_setopt_sockaddr(param1, param2, param3, param4)   privatePortLibrary->sock_setopt_sockaddr(privatePortLibrary,param1,param2,param3,param4)
#define hysock_setopt_ipmreq(param1, param2, param3, param4)   privatePortLibrary->sock_setopt_ipmreq(privatePortLibrary,param1,param2,param3,param4)
#define hysock_linger_enabled(param1, param2)   privatePortLibrary->sock_linger_enabled(privatePortLibrary,param1,param2)
#define hysock_linger_linger(param1, param2)   privatePortLibrary->sock_linger_linger(privatePortLibrary,param1,param2)
#define hysock_ipmreq_init(param1, param2, param3)   privatePortLibrary->sock_ipmreq_init(privatePortLibrary,param1,param2,param3)
#define hysock_setflag(param1, param2)   privatePortLibrary->sock_setflag(privatePortLibrary,param1,param2)
#define hysock_freeaddrinfo(param1)   privatePortLibrary->sock_freeaddrinfo(privatePortLibrary,param1)
#define hysock_getaddrinfo(param1, param2, param3)   privatePortLibrary->sock_getaddrinfo(privatePortLibrary,param1,param2,param3)
#define hysock_getaddrinfo_address(param1, param2, param3, param4)   privatePortLibrary->sock_getaddrinfo_address(privatePortLibrary,param1,param2,param3,param4)
#define hysock_getaddrinfo_create_hints(param1, param2, param3, param4, param5)   privatePortLibrary->sock_getaddrinfo_create_hints(privatePortLibrary,param1,param2,param3,param4,param5)
#define hysock_getaddrinfo_family(param1, param2, param3)   privatePortLibrary->sock_getaddrinfo_family(privatePortLibrary,param1,param2,param3)
#define hysock_getaddrinfo_length(param1, param2)   privatePortLibrary->sock_getaddrinfo_length(privatePortLibrary,param1,param2)
#define hysock_getaddrinfo_name(param1, param2, param3)   privatePortLibrary->sock_getaddrinfo_name(privatePortLibrary,param1,param2,param3)
#define hysock_getnameinfo(param1, param2, param3, param4, param5)   privatePortLibrary->sock_getnameinfo(privatePortLibrary,param1,param2,param3,param4,param5)
#define hysock_ipv6_mreq_init(param1, param2, param3)   privatePortLibrary->sock_ipv6_mreq_init(privatePortLibrary,param1,param2,param3)
#define hysock_setopt_ipv6_mreq(param1, param2, param3, param4)   privatePortLibrary->sock_setopt_ipv6_mreq(privatePortLibrary,param1,param2,param3,param4)
#define hysock_sockaddr_address6(param1, param2, param3, param4)   privatePortLibrary->sock_sockaddr_address6(privatePortLibrary,param1,param2,param3,param4)
#define hysock_sockaddr_family(param1, param2)   privatePortLibrary->sock_sockaddr_family(privatePortLibrary,param1,param2)
#define hysock_sockaddr_init6(param1, param2, param3, param4, param5, param6, param7, param8)   privatePortLibrary->sock_sockaddr_init6(privatePortLibrary,param1,param2,param3,param4,param5,param6,param7,param8)
#define hysock_socketIsValid(param1)   privatePortLibrary->sock_socketIsValid(privatePortLibrary,param1)
#define hysock_select_read(param1, param2, param3, param4)   privatePortLibrary->sock_select_read(privatePortLibrary,param1,param2,param3,param4)
#define hysock_set_nonblocking(param1, param2)   privatePortLibrary->sock_set_nonblocking(privatePortLibrary,param1,param2)
#define hysock_error_message()   privatePortLibrary->sock_error_message(privatePortLibrary)
#define hysock_get_network_interfaces(param1, param2)   privatePortLibrary->sock_get_network_interfaces(privatePortLibrary,param1,param2)
#define hysock_free_network_interface_struct(param1)   privatePortLibrary->sock_free_network_interface_struct(privatePortLibrary,param1)
#define hysock_connect_with_timeout(param1, param2, param3, param4, param5)   privatePortLibrary->sock_connect_with_timeout(privatePortLibrary,param1,param2,param3,param4,param5)
#define hystr_ftime(param1, param2, param3)   privatePortLibrary->str_ftime(privatePortLibrary,param1,param2,param3)
#define hymmap_startup()   privatePortLibrary->mmap_startup(privatePortLibrary)
#define hymmap_shutdown()   privatePortLibrary->mmap_shutdown(privatePortLibrary)
#define hymmap_capabilities()   privatePortLibrary->mmap_capabilities(privatePortLibrary)
#define hymmap_map_file(param1, param2)   privatePortLibrary->mmap_map_file(privatePortLibrary,param1,param2)
#define hymmap_unmap_file(param1)   privatePortLibrary->mmap_unmap_file(privatePortLibrary,param1)
#define hyshsem_startup()   privatePortLibrary->shsem_startup(privatePortLibrary)
#define hyshsem_shutdown()   privatePortLibrary->shsem_shutdown(privatePortLibrary)
#define hyshsem_open(param1, param2, param3, param4)   privatePortLibrary->shsem_open(privatePortLibrary,param1,param2,param3,param4)
#define hyshsem_post(param1, param2, param3)   privatePortLibrary->shsem_post(privatePortLibrary,param1,param2,param3)
#define hyshsem_wait(param1, param2, param3)   privatePortLibrary->shsem_wait(privatePortLibrary,param1,param2,param3)
#define hyshsem_getVal(param1, param2)   privatePortLibrary->shsem_getVal(privatePortLibrary,param1,param2)
#define hyshsem_setVal(param1, param2, param3)   privatePortLibrary->shsem_setVal(privatePortLibrary,param1,param2,param3)
#define hyshsem_close(param1)   privatePortLibrary->shsem_close(privatePortLibrary,param1)
#define hyshsem_destroy(param1)   privatePortLibrary->shsem_destroy(privatePortLibrary,param1)
#define hyshmem_startup()   privatePortLibrary->shmem_startup(privatePortLibrary)
#define hyshmem_shutdown()   privatePortLibrary->shmem_shutdown(privatePortLibrary)
#define hyshmem_open(param1, param2, param3, param4)   privatePortLibrary->shmem_open(privatePortLibrary,param1,param2,param3,param4)
#define hyshmem_attach(param1)   privatePortLibrary->shmem_attach(privatePortLibrary,param1)
#define hyshmem_detach(param1)   privatePortLibrary->shmem_detach(privatePortLibrary,param1)
#define hyshmem_close(param1)   privatePortLibrary->shmem_close(privatePortLibrary,param1)
#define hyshmem_destroy(param1)   privatePortLibrary->shmem_destroy(privatePortLibrary,param1)
#define hyshmem_findfirst(param1)   privatePortLibrary->shmem_findfirst(privatePortLibrary,param1)
#define hyshmem_findnext(param1, param2)   privatePortLibrary->shmem_findnext(privatePortLibrary,param1,param2)
#define hyshmem_findclose(param1)   privatePortLibrary->shmem_findclose(privatePortLibrary,param1)
#define hyshmem_stat(param1, param2)   privatePortLibrary->shmem_stat(privatePortLibrary,param1,param2)
#define hysysinfo_get_processing_capacity()   privatePortLibrary->sysinfo_get_processing_capacity(privatePortLibrary)
#define hynls_lookup_message(param1, param2, param3)   privatePortLibrary->nls_lookup_message(privatePortLibrary,param1,param2,param3)
#define hynls_vprintf(param1, param2, param3)   privatePortLibrary->hynls_vprintf(privatePortLibrary,param1,param2,param3)
#define hymem_allocate_memory(param1)   privatePortLibrary->mem_allocate_memory_callSite(privatePortLibrary,param1, HY_GET_CALLSITE())
#define hymem_allocate_code_memory(param1)   privatePortLibrary->mem_allocate_code_memory_callSite(privatePortLibrary,param1, HY_GET_CALLSITE())

Functions

Port library startup and shutdown functions
Create, initialize, startup and shutdow the port library

HY_CFUNC I_32 VMCALL hyport_create_library (struct HyPortLibrary *portLibrary, struct HyPortLibraryVersion *version, UDATA size)
 Standard startup and shutdown (port library allocated on stack or by application).
HY_CFUNC I_32 VMCALL hyport_init_library (struct HyPortLibrary *portLibrary, struct HyPortLibraryVersion *version, UDATA size)
 Initialize the port library.
HY_CFUNC I_32 VMCALL hyport_shutdown_library (struct HyPortLibrary *portLibrary)
 PortLibrary shutdown.
HY_CFUNC I_32 VMCALL hyport_startup_library (struct HyPortLibrary *portLibrary)
 PortLibrary startup.
HY_CFUNC I_32 VMCALL hyport_allocate_library (struct HyPortLibraryVersion *expectedVersion, struct HyPortLibrary **portLibrary)
 Port library self allocation routines.
HY_CFUNC void initNLSCatalog (HyPortLibrary *portLib)
 Initialize the NLS catalog (must be done prior to any NLS usage).
Port library version and compatability queries
Determine port library compatability and version.

HY_CFUNC UDATA VMCALL hyport_getSize (struct HyPortLibraryVersion *version)
 Determine the size of the port library.
HY_CFUNC I_32 VMCALL hyport_getVersion (struct HyPortLibrary *portLibrary, struct HyPortLibraryVersion *version)
 Determine the version of the port library.
HY_CFUNC I_32 VMCALL hyport_isCompatible (struct HyPortLibraryVersion *expectedVersion)
 Determine port library compatibility.


Define Documentation

#define HyMaxPath   1024

HyMaxPath was chosen from unix MAXPATHLEN.

Override in platform specific hyfile implementations if needed.


Function Documentation

HY_CFUNC I_32 VMCALL hyport_allocate_library ( struct HyPortLibraryVersion *  version,
struct HyPortLibrary **  portLibrary 
)

Port library self allocation routines.

Port library self allocation routines.

Given a pointer to the required version of the port library allocate and initialize the structure. The startup function is not called (hyport_startup_library) allowing the application to override any functions they desire. In the event hyport_startup_library fails when called by the application the port library memory will be freed.

Parameters:
[in] version The required version of the port library.
[out] portLibrary Pointer to the allocated port library table.
Returns:
0 on success, negative return value on failure
Note:
portLibrary will be NULL on failure

The portlibrary version must be compatabile with the that which we are compiled against

hyport_shutdown_library will deallocate this memory as part of regular shutdown

HY_CFUNC I_32 VMCALL hyport_create_library ( struct HyPortLibrary portLibrary,
struct HyPortLibraryVersion *  version,
UDATA  size 
)

Standard startup and shutdown (port library allocated on stack or by application).

Standard startup and shutdown (port library allocated on stack or by application).

Given a pointer to a port library and the required version, populate the port library table with the appropriate functions

Parameters:
[in] portLibrary The port library.
[in] version The required version of the port library.
[in] size Size of the port library.
Returns:
0 on success, negative return value on failure
Note:
The portlibrary version must be compatabile with the that which we are compiled against

HY_CFUNC UDATA VMCALL hyport_getSize ( struct HyPortLibraryVersion *  version  ) 

Determine the size of the port library.

Given a port library version, return the size of the structure in bytes required to be allocated.

Parameters:
[in] version The HyPortLibraryVersion structure.
Returns:
size of port library on success, zero on failure
Note:
The portlibrary version must be compatabile with the that which we are compiled against

HY_CFUNC I_32 VMCALL hyport_getVersion ( struct HyPortLibrary portLibrary,
struct HyPortLibraryVersion *  version 
)

Determine the version of the port library.

Given a port library return the version of that instance.

Parameters:
[in] portLibrary The port library.
[in,out] version The HyPortLibraryVersion structure to be populated.
Returns:
0 on success, negative return value on failure
Note:
If portLibrary is NULL, version is populated with the version in the linked DLL

HY_CFUNC I_32 VMCALL hyport_init_library ( struct HyPortLibrary portLibrary,
struct HyPortLibraryVersion *  version,
UDATA  size 
)

Initialize the port library.

Given a pointer to a port library and the required version, populate the port library table with the appropriate functions and then call the startup function for the port library.

Parameters:
[in] portLibrary The port library.
[in] version The required version of the port library.
[in] size Size of the port library.
Returns:
0 on success, negative return value on failure

HY_CFUNC I_32 VMCALL hyport_isCompatible ( struct HyPortLibraryVersion *  expectedVersion  ) 

Determine port library compatibility.

Given the minimum version of the port library that the application requires determine if the current port library meets that requirements.

Parameters:
[in] expectedVersion The version the application requires as a minimum.
Returns:
1 if compatible, 0 if not compatible

HY_CFUNC I_32 VMCALL hyport_shutdown_library ( struct HyPortLibrary portLibrary  ) 

PortLibrary shutdown.

Shutdown the port library, de-allocate resources required by the components of the portlibrary. Any resources that werer created by hyport_startup_library should be destroyed here.

Parameters:
[in] portLibrary The portlibrary.
Returns:
0 on success, negative return code on failure

HY_CFUNC I_32 VMCALL hyport_startup_library ( struct HyPortLibrary portLibrary  ) 

PortLibrary startup.

Start the port library, allocate resources required by the components of the portlibrary. All resources created here should be destroyed in hyport_shutdown_library.

Parameters:
[in] portLibrary The portlibrary.
Returns:
0 on success, negative error code on failure. Error code values returned are
  • HYPORT_ERROR_STARTUP_THREAD
  • HYPORT_ERROR_STARTUP_MEM
  • HYPORT_ERROR_STARTUP_TLS
  • HYPORT_ERROR_STARTUP_TLS_ALLOC
  • HYPORT_ERROR_STARTUP_TLS_MUTEX
  • HYPORT_ERROR_STARTUP_ERROR
  • HYPORT_ERROR_STARTUP_CPU
  • HYPORT_ERROR_STARTUP_VMEM
  • HYPORT_ERROR_STARTUP_FILE
  • HYPORT_ERROR_STARTUP_TTY
  • HYPORT_ERROR_STARTUP_TTY_HANDLE
  • HYPORT_ERROR_STARTUP_TTY_CONSOLE
  • HYPORT_ERROR_STARTUP_MMAP
  • HYPORT_ERROR_STARTUP_IPCMUTEX
  • HYPORT_ERROR_STARTUP_NLS
  • HYPORT_ERROR_STARTUP_SOCK
  • HYPORT_ERROR_STARTUP_TIME
  • HYPORT_ERROR_STARTUP_GP
  • HYPORT_ERROR_STARTUP_EXIT
  • HYPORT_ERROR_STARTUP_SYSINFO
  • HYPORT_ERROR_STARTUP_SL
  • HYPORT_ERROR_STARTUP_STR
  • HYPORT_ERROR_STARTUP_SHSEM
  • HYPORT_ERROR_STARTUP_SHMEM
  • HYPORT_ERROR_STARTUP_SIGNAL
Note:
The port library memory is deallocated if it was created by hyport_allocate_library

HY_CFUNC void initNLSCatalog ( HyPortLibrary portLib  ) 

Initialize the NLS catalog (must be done prior to any NLS usage).


Genereated on Tue Dec 9 14:12:59 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.