From 0e0019ed05ffa475082014b14fb6826bc72ed3cb Mon Sep 17 00:00:00 2001 From: leonidk Date: Wed, 2 Jul 2008 10:34:39 +0000 Subject: [PATCH] [IBAL] Add code to allow user-mode code to register memory via the existing IBAL IOCTLs, and if that succeeds, issue a no-op IOCTL that completes the user's overlapped request to their IOCP (or whatever mechanism they are using - the I/O manager will take care of it). Signed-off-by: Fab Tillier git-svn-id: svn://openib.tc.cornell.edu/gen1@1319 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- trunk/core/al/al_dev.h | 4 +++- trunk/core/al/kernel/al_proxy_ndi.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/trunk/core/al/al_dev.h b/trunk/core/al/al_dev.h index ee1ffe0e..9c98e150 100644 --- a/trunk/core/al/al_dev.h +++ b/trunk/core/al/al_dev.h @@ -55,7 +55,7 @@ #define AL_DEVICE_NAME L"\\Device\\ibal" #define ALDEV_KEY (0x3B) /* Matches FILE_DEVICE_INFINIBAND from wdm.h */ -#define AL_IOCTL_VERSION (5) +#define AL_IOCTL_VERSION (6) /* max number of devices with non-default pkey */ #define MAX_NUM_PKEY 16 @@ -403,6 +403,7 @@ typedef enum _al_ndi_ops ual_ndi_rtu_cm_ioctl_cmd, ual_ndi_rej_cm_ioctl_cmd, ual_ndi_dreq_cm_ioctl_cmd, + ual_ndi_noop, al_ndi_maxops @@ -424,6 +425,7 @@ typedef enum _al_ndi_ops #define UAL_NDI_RTU_CM IOCTL_CODE(ALDEV_KEY, ual_ndi_rtu_cm_ioctl_cmd) #define UAL_NDI_REJ_CM IOCTL_CODE(ALDEV_KEY, ual_ndi_rej_cm_ioctl_cmd) #define UAL_NDI_DREQ_CM IOCTL_CODE(ALDEV_KEY, ual_ndi_dreq_cm_ioctl_cmd) +#define UAL_NDI_NOOP IOCTL_CODE(ALDEV_KEY, ual_ndi_noop) /* * Various Operation Allowable on the System Helper diff --git a/trunk/core/al/kernel/al_proxy_ndi.c b/trunk/core/al/kernel/al_proxy_ndi.c index c16e8424..7b119623 100644 --- a/trunk/core/al/kernel/al_proxy_ndi.c +++ b/trunk/core/al/kernel/al_proxy_ndi.c @@ -631,6 +631,9 @@ ndi_ioctl( case UAL_NDI_DREQ_CM: cl_status = __ndi_dreq_cm( p_context, h_ioctl, p_ret_bytes ); break; + case UAL_NDI_NOOP: + cl_status = CL_SUCCESS; + break; default: cl_status = CL_INVALID_PARAMETER; break; -- 2.41.0