From 80b9bd8687abd990015df2b160f817e788b38a53 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Mon, 26 Jul 2010 16:09:26 -0700 Subject: [PATCH] nd/adapter: update to latest ND APIs Update adapter API and structure usage to match with latest ND 2.0 spec. Signed-off-by: Sean Hefty --- trunk/ulp/netdirect2/user/nd_adapter.cpp | 73 +++++++++++++++++------- trunk/ulp/netdirect2/user/nd_adapter.h | 36 ++++++------ trunk/ulp/netdirect2/user/nd_connect.h | 2 +- trunk/ulp/netdirect2/user/nd_cq.h | 2 +- trunk/ulp/netdirect2/user/nd_ep.h | 2 +- trunk/ulp/netdirect2/user/nd_listen.h | 2 +- trunk/ulp/netdirect2/user/nd_mw.h | 4 +- trunk/ulp/netdirect2/user/nd_qp.h | 4 +- trunk/ulp/netdirect2/user/nd_srq.h | 2 +- 9 files changed, 79 insertions(+), 48 deletions(-) diff --git a/trunk/ulp/netdirect2/user/nd_adapter.cpp b/trunk/ulp/netdirect2/user/nd_adapter.cpp index 6ced0d4a..dd0277bd 100644 --- a/trunk/ulp/netdirect2/user/nd_adapter.cpp +++ b/trunk/ulp/netdirect2/user/nd_adapter.cpp @@ -168,80 +168,111 @@ QueryAddressList(SOCKET_ADDRESS_LIST* pAddressList, SIZE_T* pcbAddressList) } STDMETHODIMP CNDAdapter:: -CreateCompletionQueue(DWORD queueDepth, GROUP_AFFINITY* pAffinity, - INDCompletionQueue** ppCompletionQueue) +CreateCompletionQueue(REFIID iid, DWORD queueDepth, GROUP_AFFINITY* pAffinity, + VOID** ppCompletionQueue) { return CNDCompletionQueue::CreateInstance(this, queueDepth, ppCompletionQueue); } STDMETHODIMP CNDAdapter:: -CreateMemoryRegion(INDMemoryRegion** ppMemoryRegion) +CreateMemoryRegion(REFIID iid, VOID** ppMemoryRegion) { + if (iid != IID_INDMemoryRegion) { + return E_NOINTERFACE; + } + return CNDMemoryRegion::CreateInstance(this, ppMemoryRegion); } STDMETHODIMP CNDAdapter:: -CreateMemoryWindow(INDMemoryWindow** ppMemoryWindow) +CreateMemoryWindow(REFIID iid, VOID** ppMemoryWindow) { + if (iid != IID_INDMemoryWindow) { + return E_NOINTERFACE; + } + return CNDMemoryWindow::CreateInstance(this, ppMemoryWindow); } STDMETHODIMP CNDAdapter:: -CreateSharedReceiveQueue(DWORD queueDepth, DWORD maxSGE, +CreateSharedReceiveQueue(REFIID iid, DWORD queueDepth, DWORD maxSge, DWORD notifyThreshold, GROUP_AFFINITY* pAffinity, - INDSharedReceiveQueue** ppSharedReceiveQueue) + VOID** ppSharedReceiveQueue) { - return CNDSharedReceiveQueue::CreateInstance(this, queueDepth, maxSGE, + if (iid != IID_INDSharedReceiveQueue) { + return E_NOINTERFACE; + } + + return CNDSharedReceiveQueue::CreateInstance(this, queueDepth, maxSge, notifyThreshold, pAffinity, ppSharedReceiveQueue); } STDMETHODIMP CNDAdapter:: -CreateQueuePair(INDCompletionQueue* pReceiveCompletionQueue, - INDCompletionQueue* pInitiatorCompletionQueue, VOID* context, +CreateQueuePair(REFIID iid, IUnknown* pReceiveCompletionQueue, + IUnknown* pInitiatorCompletionQueue, VOID* context, DWORD receiveQueueDepth, DWORD initiatorQueueDepth, - DWORD maxReceiveRequestSGE, DWORD maxInitiatorRequestSGE, - INDQueuePair** ppQueuePair) + DWORD maxReceiveRequestSge, DWORD maxInitiatorRequestSge, + VOID** ppQueuePair) { CNDCompletionQueue *rcq = (CNDCompletionQueue *) pReceiveCompletionQueue; CNDCompletionQueue *icq = (CNDCompletionQueue *) pInitiatorCompletionQueue; + if (iid != IID_INDQueuePair) { + return E_NOINTERFACE; + } + return CNDQueuePair::CreateInstance(this, rcq, icq, NULL, context, receiveQueueDepth, initiatorQueueDepth, - maxReceiveRequestSGE, maxInitiatorRequestSGE, + maxReceiveRequestSge, maxInitiatorRequestSge, ppQueuePair); } STDMETHODIMP CNDAdapter:: -CreateQueuePairWithSRQ(INDCompletionQueue* pReceiveCompletionQueue, - INDCompletionQueue* pInitiatorCompletionQueue, - INDSharedReceiveQueue* pSharedReceiveQueue, VOID* context, - DWORD initiatorQueueDepth, DWORD maxInitiatorRequestSGE, - INDQueuePair** ppQueuePair) +CreateQueuePairWithSrq(REFIID iid, IUnknown* pReceiveCompletionQueue, + IUnknown* pInitiatorCompletionQueue, + IUnknown* pSharedReceiveQueue, VOID* context, + DWORD initiatorQueueDepth, DWORD maxInitiatorRequestSge, + VOID** ppQueuePair) { CNDCompletionQueue *rcq = (CNDCompletionQueue *) pReceiveCompletionQueue; CNDCompletionQueue *icq = (CNDCompletionQueue *) pInitiatorCompletionQueue; CNDSharedReceiveQueue *srq = (CNDSharedReceiveQueue *) pSharedReceiveQueue; + if (iid != IID_INDQueuePair) { + return E_NOINTERFACE; + } + return CNDQueuePair::CreateInstance(this, rcq, icq, srq, context, 0, initiatorQueueDepth, 0, - maxInitiatorRequestSGE, ppQueuePair); + maxInitiatorRequestSge, ppQueuePair); } STDMETHODIMP CNDAdapter:: -CreateSharedEndpoint(INDSharedEndpoint** ppSharedEndpoint) +CreateSharedEndpoint(REFIID iid, VOID** ppSharedEndpoint) { + if (iid != IID_INDSharedEndpoint) { + return E_NOINTERFACE; + } + return CNDSharedEndpoint::CreateInstance(this, ppSharedEndpoint); } STDMETHODIMP CNDAdapter:: -CreateConnector(INDConnector** ppConnector) +CreateConnector(REFIID iid, VOID** ppConnector) { + if (iid != IID_INDConnector) { + return E_NOINTERFACE; + } return CNDConnector::CreateInstance(this, ppConnector); } STDMETHODIMP CNDAdapter:: -CreateListen(INDListen** ppListen) +CreateListen(REFIID iid, VOID** ppListen) { + if (iid != IID_INDListen) { + return E_NOINTERFACE; + } + return CNDListen::CreateInstance(this, ppListen); } diff --git a/trunk/ulp/netdirect2/user/nd_adapter.h b/trunk/ulp/netdirect2/user/nd_adapter.h index 4210ee37..99e1d952 100644 --- a/trunk/ulp/netdirect2/user/nd_adapter.h +++ b/trunk/ulp/netdirect2/user/nd_adapter.h @@ -49,26 +49,26 @@ public: STDMETHODIMP_(HANDLE) GetFileHandle(); STDMETHODIMP Query(ND_ADAPTER_INFO* pInfo, SIZE_T* pcbInfo); STDMETHODIMP QueryAddressList(SOCKET_ADDRESS_LIST* pAddressList, SIZE_T* pcbAddressList); - STDMETHODIMP CreateCompletionQueue(DWORD queueDepth, GROUP_AFFINITY* pAffinity, - INDCompletionQueue** ppCompletionQueue); - STDMETHODIMP CreateMemoryRegion(INDMemoryRegion** ppMemoryRegion); - STDMETHODIMP CreateMemoryWindow(INDMemoryWindow** ppMemoryWindow); - STDMETHODIMP CreateSharedReceiveQueue(DWORD queueDepth, DWORD maxSGE, + STDMETHODIMP CreateCompletionQueue(REFIID iid, DWORD queueDepth, GROUP_AFFINITY* pAffinity, + VOID** ppCompletionQueue); + STDMETHODIMP CreateMemoryRegion(REFIID iid, VOID** ppMemoryRegion); + STDMETHODIMP CreateMemoryWindow(REFIID iid, VOID** ppMemoryWindow); + STDMETHODIMP CreateSharedReceiveQueue(REFIID iid, DWORD queueDepth, DWORD maxSge, DWORD notifyThreshold, GROUP_AFFINITY* pAffinity, - INDSharedReceiveQueue** ppSharedReceiveQueue); - STDMETHODIMP CreateQueuePair(INDCompletionQueue* pReceiveCompletionQueue, - INDCompletionQueue* pInitiatorCompletionQueue, VOID* context, + VOID** ppSharedReceiveQueue); + STDMETHODIMP CreateQueuePair(REFIID iid, IUnknown* pReceiveCompletionQueue, + IUnknown* pInitiatorCompletionQueue, VOID* context, DWORD receiveQueueDepth, DWORD initiatorQueueDepth, - DWORD maxReceiveRequestSGE, DWORD maxInitiatorRequestSGE, - INDQueuePair** ppQueuePair); - STDMETHODIMP CreateQueuePairWithSRQ(INDCompletionQueue* pReceiveCompletionQueue, - INDCompletionQueue* pInitiatorCompletionQueue, - INDSharedReceiveQueue* pSharedReceiveQueue, VOID* context, - DWORD initiatorQueueDepth, DWORD maxInitiatorRequestSGE, - INDQueuePair** ppQueuePair); - STDMETHODIMP CreateSharedEndpoint(INDSharedEndpoint** ppSharedEndpoint); - STDMETHODIMP CreateConnector(INDConnector** ppConnector); - STDMETHODIMP CreateListen(INDListen** ppListen); + DWORD maxReceiveRequestSge, DWORD maxInitiatorRequestSge, + VOID** ppQueuePair); + STDMETHODIMP CreateQueuePairWithSrq(REFIID, IUnknown* pReceiveCompletionQueue, + IUnknown* pInitiatorCompletionQueue, + IUnknown* pSharedReceiveQueue, VOID* context, + DWORD initiatorQueueDepth, DWORD maxInitiatorRequestSge, + VOID** ppQueuePair); + STDMETHODIMP CreateSharedEndpoint(REFIID iid, VOID** ppSharedEndpoint); + STDMETHODIMP CreateConnector(REFIID iid, VOID** ppConnector); + STDMETHODIMP CreateListen(REFIID iid, VOID** ppListen); CNDAdapter(CNDProvider *pProvider); ~CNDAdapter(); diff --git a/trunk/ulp/netdirect2/user/nd_connect.h b/trunk/ulp/netdirect2/user/nd_connect.h index dd1e142b..ea2b12d0 100644 --- a/trunk/ulp/netdirect2/user/nd_connect.h +++ b/trunk/ulp/netdirect2/user/nd_connect.h @@ -79,7 +79,7 @@ public: ~CNDConnector(); void Delete() {delete this;} static STDMETHODIMP - CreateInstance(CNDAdapter *pAdapter, INDConnector** ppConnector) + CreateInstance(CNDAdapter *pAdapter, VOID** ppConnector) { HRESULT hr; CNDConnector *conn; diff --git a/trunk/ulp/netdirect2/user/nd_cq.h b/trunk/ulp/netdirect2/user/nd_cq.h index 1f6af0e9..dcca2118 100644 --- a/trunk/ulp/netdirect2/user/nd_cq.h +++ b/trunk/ulp/netdirect2/user/nd_cq.h @@ -58,7 +58,7 @@ public: ~CNDCompletionQueue(); void Delete() {delete this;} static STDMETHODIMP - CreateInstance(CNDAdapter *pAdapter, DWORD queueDepth, INDCompletionQueue** ppCq) + CreateInstance(CNDAdapter *pAdapter, DWORD queueDepth, VOID** ppCq) { HRESULT hr; CNDCompletionQueue *cq; diff --git a/trunk/ulp/netdirect2/user/nd_ep.h b/trunk/ulp/netdirect2/user/nd_ep.h index e33df948..81ec1896 100644 --- a/trunk/ulp/netdirect2/user/nd_ep.h +++ b/trunk/ulp/netdirect2/user/nd_ep.h @@ -54,7 +54,7 @@ public: ~CNDSharedEndpoint(); void Delete() {delete this;} static STDMETHODIMP - CreateInstance(CNDAdapter *pAdapter, INDSharedEndpoint** ppSharedEndpoint) + CreateInstance(CNDAdapter *pAdapter, VOID** ppSharedEndpoint) { HRESULT hr; CNDSharedEndpoint *ep; diff --git a/trunk/ulp/netdirect2/user/nd_listen.h b/trunk/ulp/netdirect2/user/nd_listen.h index d077a3ed..83a5b869 100644 --- a/trunk/ulp/netdirect2/user/nd_listen.h +++ b/trunk/ulp/netdirect2/user/nd_listen.h @@ -58,7 +58,7 @@ public: ~CNDListen(); void Delete() {delete this;} static STDMETHODIMP - CreateInstance(CNDAdapter *pAdapter, INDListen** ppListen) + CreateInstance(CNDAdapter *pAdapter, VOID** ppListen) { HRESULT hr; CNDListen *listener; diff --git a/trunk/ulp/netdirect2/user/nd_mw.h b/trunk/ulp/netdirect2/user/nd_mw.h index 8409a0e4..47c18b2d 100644 --- a/trunk/ulp/netdirect2/user/nd_mw.h +++ b/trunk/ulp/netdirect2/user/nd_mw.h @@ -56,7 +56,7 @@ public: ~CNDMemoryRegion(); void Delete() {delete this;} static STDMETHODIMP - CreateInstance(CNDAdapter *pAdapter, INDMemoryRegion** ppMemoryRegion) + CreateInstance(CNDAdapter *pAdapter, VOID** ppMemoryRegion) { HRESULT hr; CNDMemoryRegion *mr; @@ -97,7 +97,7 @@ public: ~CNDMemoryWindow(); void Delete() {delete this;} static STDMETHODIMP - CreateInstance(CNDAdapter *pAdapter, INDMemoryWindow** ppMemoryWindow) + CreateInstance(CNDAdapter *pAdapter, VOID** ppMemoryWindow) { HRESULT hr; CNDMemoryWindow *mw; diff --git a/trunk/ulp/netdirect2/user/nd_qp.h b/trunk/ulp/netdirect2/user/nd_qp.h index 1d09ddc2..3ce320ff 100644 --- a/trunk/ulp/netdirect2/user/nd_qp.h +++ b/trunk/ulp/netdirect2/user/nd_qp.h @@ -71,7 +71,7 @@ public: CNDSharedReceiveQueue *pSharedReceiveQueue, VOID* context, DWORD receiveQueueDepth, DWORD initiatorQueueDepth, DWORD maxReceiveRequestSGE, DWORD maxInitiatorRequestSGE, - INDQueuePair** ppQueuePair) + VOID** ppQueuePair) { HRESULT hr; CNDQueuePair *qp; @@ -111,7 +111,7 @@ protected: CNDCompletionQueue* pInitiatorCompletionQueue, CNDSharedReceiveQueue *pSharedReceiveQueue, VOID* context, DWORD receiveQueueDepth, DWORD initiatorQueueDepth, - DWORD maxReceiveRequestSGE, DWORD maxInitiatorRequestSGE); + DWORD maxReceiveRequestSge, DWORD maxInitiatorRequestSGE); STDMETHODIMP_(DWORD) ConvertSendFlags(DWORD Flags); }; diff --git a/trunk/ulp/netdirect2/user/nd_srq.h b/trunk/ulp/netdirect2/user/nd_srq.h index 80f2c4b6..26938559 100644 --- a/trunk/ulp/netdirect2/user/nd_srq.h +++ b/trunk/ulp/netdirect2/user/nd_srq.h @@ -61,7 +61,7 @@ public: static STDMETHODIMP CreateInstance(CNDAdapter *pAdapter, DWORD queueDepth, DWORD maxSGE, DWORD notifyThreshold, GROUP_AFFINITY* pAffinity, - INDSharedReceiveQueue** ppSharedReceiveQueue) + VOID** ppSharedReceiveQueue) { HRESULT hr; CNDSharedReceiveQueue *srq; -- 2.46.0