17#ifndef GLOBUS_I_XIO_WIN32_H_
18#define GLOBUS_I_XIO_WIN32_H_
20#include "globus_i_xio_system_common.h"
25typedef struct globus_l_xio_win32_event_entry_s *
26 globus_i_xio_win32_event_entry_t;
44(*globus_i_xio_win32_event_cb_t)(
48globus_i_xio_win32_event_register(
49 globus_i_xio_win32_event_entry_t * entry_handle,
51 globus_i_xio_win32_event_cb_t callback,
59globus_i_xio_win32_event_unregister(
60 globus_i_xio_win32_event_entry_t entry_handle);
68globus_i_xio_win32_event_lock(
69 globus_i_xio_win32_event_entry_t entry_handle);
72globus_i_xio_win32_event_unlock(
73 globus_i_xio_win32_event_entry_t entry_handle);
80globus_i_xio_win32_event_post(
81 globus_i_xio_win32_event_entry_t entry_handle);
84globus_i_xio_win32_complete_activate(
void);
87globus_i_xio_win32_complete_deactivate(
void);
90globus_i_xio_win32_file_activate(
void);
93globus_i_xio_win32_file_deactivate(
void);
99globus_i_xio_win32_complete(
100 globus_callback_func_t callback,
104globus_i_xio_win32_mode_activate(
void);
107globus_i_xio_win32_mode_is_overlapped(
110typedef CRITICAL_SECTION win32_mutex_t;
112#define win32_mutex_init(x, y) InitializeCriticalSection(x)
113#define win32_mutex_destroy(x) DeleteCriticalSection(x)
114#define win32_mutex_lock(x) EnterCriticalSection(x)
115#define win32_mutex_unlock(x) LeaveCriticalSection(x)
117#define GlobusXIOSystemDebugSysError(message, err) \
120 if(GlobusDebugTrue( \
121 GLOBUS_XIO_SYSTEM, GLOBUS_I_XIO_SYSTEM_DEBUG_INFO)) \
127 FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, \
135 GlobusDebugMyPrintf( \
137 ("[%s] %s: %d:%s", _xio_name, message, err_, msg)); \