Gil Rubin
Steve Sears
Randy Smith
+ Stan Smith
Anthony Topper
Steve Wise
#include "dapl_dummy_dto.h"
#elif OPENIB
#include "dapl_ib_dto.h"
+#else
+#include "dapl_ibal_dto.h"
#endif
dapl_os_free ( ep_ptr->cxn_timer, sizeof ( DAPL_OS_TIMER ) );
}
+#if defined(_WIN32) || defined(_WIN64)
+ if ( ep_ptr->ibal_cm_handle )
+ {
+ dapl_os_free ( ep_ptr->ibal_cm_handle,
+ sizeof ( *ep_ptr->ibal_cm_handle ) );
+ ep_ptr->ibal_cm_handle = NULL;
+ }
+#endif
dapl_os_free (ep_ptr, sizeof (DAPL_EP) + sizeof (DAT_SOCK_ADDR) );
}
#include "dapl_sp_util.h"
#include "dapl_cr_util.h"
+
/*
* Local definitions
*/
dapl_llist_init_entry (&sp_ptr->header.ia_list_entry);
dapl_os_lock_init (&sp_ptr->header.lock);
+#if defined(_WIN32) || defined(_WIN64)
+ dapl_os_wait_object_init( &sp_ptr->wait_object );
+#endif
/*
* Initialize the Body (set to NULL above)
*/
sp_ptr->header.magic == DAPL_MAGIC_RSP);
dapl_os_assert (dapl_llist_is_empty (&sp_ptr->cr_list_head));
+#if defined(_WIN32) || defined(_WIN64)
+ dapl_os_wait_object_destroy( &sp_ptr->wait_object );
+#endif
dapl_os_lock (&sp_ptr->header.lock);
- sp_ptr->header.magic = DAPL_MAGIC_INVALID; /* reset magic to prevent reuse */
+ sp_ptr->header.magic = DAPL_MAGIC_INVALID;/* reset magic to prevent reuse */
dapl_os_unlock (&sp_ptr->header.lock);
dapl_os_free (sp_ptr, sizeof (DAPL_SP));
}
#include "dapl_dummy_util.h"
#elif OPENIB
#include "dapl_ib_util.h"
+#else /* windows - IBAL and/or IBAL+Sock_CM */
+#include "dapl_ibal_util.h"
#endif
/*********************************************************************
DAPL_ATOMIC req_count;
DAPL_ATOMIC recv_count;
- DAPL_COOKIE_BUFFER req_buffer;
- DAPL_COOKIE_BUFFER recv_buffer;
+ DAPL_COOKIE_BUFFER req_buffer;
+ DAPL_COOKIE_BUFFER recv_buffer;
- ib_data_segment_t *recv_iov;
+ ib_data_segment_t *recv_iov;
DAT_COUNT recv_iov_num;
- ib_data_segment_t *send_iov;
+ ib_data_segment_t *send_iov;
DAT_COUNT send_iov_num;
#ifdef DAPL_DBG_IO_TRC
int ibt_dumped;
struct io_buf_track *ibt_base;
DAPL_RING_BUFFER ibt_queue;
#endif /* DAPL_DBG_IO_TRC */
+#if defined(_WIN32) || defined(_WIN64)
+ DAT_BOOLEAN recv_discreq;
+ DAT_BOOLEAN sent_discreq;
+ dp_ib_cm_handle_t ibal_cm_handle;
+#endif
};
/* DAPL_SRQ maps to DAT_SRQ_HANDLE */
provider = NULL;
hca_ptr = NULL;
+#if defined(_WIN32) || defined(_WIN64)
+ /* initialize DAPL library here as when called from DLL context in DLLmain()
+ * the IB (ibal) call hangs.
+ */
+ dapl_init();
+#endif
+
dat_status = dapl_provider_list_insert(provider_info->ia_name, &provider);
if ( DAT_SUCCESS != dat_status )
{
dapl_hca_free (provider->extension);
(void) dapl_provider_list_remove(provider_info->ia_name);
+
+#if defined(_WIN32) || defined(_WIN64)
+ /* cleanup DAPL library - relocated here from OSD DLL context as the IBAL
+ * calls hung in the DLL context?
+ */
+ dapl_fini();
+#endif
}
fncptr = dat_os_library_sym(data->lib_handle,
"dapl_extensions");
- if ((dlerror() != NULL) || (fncptr == NULL))
+ if ((dat_os_library_error() != NULL) || (fncptr == NULL))
{
dat_os_dbg_print(DAT_OS_DBG_TYPE_SR,
"DAT Registry: WARNING: library %s, "
*********************************************************************/
#define DAT_SR_CONF_ENV "DAT_OVERRIDE"
+#if defined(_WIN32) || defined(_WIN64)
+#define DAT_SR_CONF_DEFAULT "C:\\DAT\\dat.conf"
+#else
#define DAT_SR_CONF_DEFAULT "/etc/dat.conf"
+#endif
#define DAT_SR_TOKEN_THREADSAFE "threadsafe"
#define DAT_SR_TOKEN_NONTHREADSAFE "nonthreadsafe"
}
else
{
- token->value[j] = c;
+ token->value[j] = (char)c;
j++;
is_prev_char_backslash = DAT_FALSE;
} while ( (DAT_SR_CHAR_NEWLINE != c) && (EOF != c) );
/* put back the newline */
- dat_os_fputc (file, c);
+ dat_os_ungetc (file, c);
}