+++ /dev/null
-/*\r
- * Copyright (c) 2008 Intel Corporation. All rights reserved.\r
- *\r
- * This software is available to you under the OpenIB.org BSD license\r
- * below:\r
- *\r
- * Redistribution and use in source and binary forms, with or\r
- * without modification, are permitted provided that the following\r
- * conditions are met:\r
- *\r
- * - Redistributions of source code must retain the above\r
- * copyright notice, this list of conditions and the following\r
- * disclaimer.\r
- *\r
- * - Redistributions in binary form must reproduce the above\r
- * copyright notice, this list of conditions and the following\r
- * disclaimer in the documentation and/or other materials\r
- * provided with the distribution.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AWV\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
- * SOFTWARE.\r
- */\r
-\r
-#include "wv_memory.h"\r
-#include "wv_listen.h"\r
-#include "wv_ioctl.h"\r
-\r
-CWVListen::CWVListen(CWVProvider *pProvider)\r
-{\r
- pProvider->AddRef();\r
- m_pProvider = pProvider;\r
- m_hFile = pProvider->m_hFile;\r
-}\r
-\r
-CWVListen::~CWVListen()\r
-{\r
- m_pProvider->Release();\r
-}\r
-\r
-STDMETHODIMP CWVListen::\r
-QueryInterface(REFIID riid, LPVOID FAR* ppvObj)\r
-{\r
- if (riid != IID_IUnknown && riid != IID_IWVListen) {\r
- *ppvObj = NULL;\r
- return E_NOINTERFACE;\r
- }\r
-\r
- *ppvObj = this;\r
- AddRef();\r
- return WV_SUCCESS;\r
-}\r
-\r
-STDMETHODIMP_(ULONG) CWVListen::\r
-AddRef(void)\r
-{\r
- return CWVBase::AddRef();\r
-}\r
-\r
-STDMETHODIMP_(ULONG) CWVListen::\r
-Release(void)\r
-{\r
- return CWVBase::Release();\r
-}\r
-\r
-STDMETHODIMP CWVListen::\r
-CancelOverlappedRequests(void)\r
-{\r
- DWORD bytes;\r
-\r
- return WvDeviceIoControl(m_hFile, WV_IOCTL_LISTEN_CANCEL, &m_Id, sizeof m_Id,\r
- NULL, 0, &bytes, NULL) ?\r
- WV_SUCCESS : HRESULT_FROM_WIN32(GetLastError());\r
-}\r
-\r
-STDMETHODIMP CWVListen::\r
-GetOverlappedResult(OVERLAPPED *pOverlapped,\r
- DWORD *pNumberOfBytesTransferred, BOOL bWait)\r
-{\r
- return ::GetOverlappedResult(m_hFile, pOverlapped,\r
- pNumberOfBytesTransferred, bWait);\r
-}\r
-\r
-STDMETHODIMP CWVListen::\r
-Listen(const struct sockaddr* pAddress, SIZE_T Backlog)\r
-{\r
- UNREFERENCED_PARAMETER(pAddress);\r
- UNREFERENCED_PARAMETER(Backlog);\r
-\r
- return E_NOTIMPL;\r
-}\r
-\r
-STDMETHODIMP CWVListen::\r
-GetRequest(IWVEndpoint* pEndpoint, OVERLAPPED* pOverlapped)\r
-{\r
- UNREFERENCED_PARAMETER(pEndpoint);\r
- UNREFERENCED_PARAMETER(pOverlapped);\r
-\r
- return E_NOTIMPL;\r
-}\r
+++ /dev/null
-/*\r
- * Copyright (c) 2008 Intel Corporation. All rights reserved.\r
- *\r
- * This software is available to you under the OpenIB.org BSD license\r
- * below:\r
- *\r
- * Redistribution and use in source and binary forms, with or\r
- * without modification, are permitted provided that the following\r
- * conditions are met:\r
- *\r
- * - Redistributions of source code must retain the above\r
- * copyright notice, this list of conditions and the following\r
- * disclaimer.\r
- *\r
- * - Redistributions in binary form must reproduce the above\r
- * copyright notice, this list of conditions and the following\r
- * disclaimer in the documentation and/or other materials\r
- * provided with the distribution.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AWV\r
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
- * SOFTWARE.\r
- */\r
-\r
-#pragma once\r
-\r
-#ifndef _WV_LISTEN_H_\r
-#define _WV_LISTEN_H_\r
-\r
-#include <rdma\winverbs.h>\r
-#include "wv_provider.h"\r
-#include "wv_base.h"\r
-\r
-class CWVListen : IWVListen, public CWVBase\r
-{\r
-public:\r
- // IUnknown methods\r
- STDMETHODIMP QueryInterface(REFIID riid, LPVOID FAR* ppvObj);\r
- STDMETHODIMP_(ULONG) AddRef();\r
- STDMETHODIMP_(ULONG) Release();\r
-\r
- // IWVOverlapped methods\r
- STDMETHODIMP CancelOverlappedRequests();\r
- STDMETHODIMP GetOverlappedResult(OVERLAPPED *pOverlapped,\r
- DWORD *pNumberOfBytesTransferred, BOOL bWait);\r
-\r
- // IWVListen methods\r
- STDMETHODIMP GetRequest(IWVEndpoint* pEndpoint, OVERLAPPED* pOverlapped);\r
-\r
- STDMETHODIMP Listen(const struct sockaddr* pAddress, SIZE_T Backlog);\r
-\r
- CWVListen(CWVProvider *pProvider);\r
- ~CWVListen();\r
- void Delete() {delete this;}\r
- static STDMETHODIMP\r
- CreateInstance(CWVProvider *pProvider, const struct sockaddr* pAddress,\r
- SIZE_T Backlog, IWVListen** ppListen)\r
- {\r
- HRESULT hr;\r
- CWVListen *listener;\r
-\r
- listener = new CWVListen(pProvider);\r
- if (listener == NULL) {\r
- hr = WV_NO_MEMORY;\r
- goto err1;\r
- }\r
-\r
- hr = listener->Init();\r
- if (FAILED(hr)) {\r
- goto err2;\r
- }\r
-\r
- hr = listener->Listen(pAddress, Backlog);\r
- if (FAILED(hr)) {\r
- goto err2;\r
- }\r
-\r
- *ppListen = listener;\r
- return WV_SUCCESS;\r
-\r
- err2:\r
- listener->Release();\r
- err1:\r
- *ppListen = NULL;\r
- return hr;\r
- }\r
-\r
- CWVProvider *m_pProvider;\r
-};\r
-\r
-#endif // _WV_LISTEN_H_
\ No newline at end of file