summaryrefslogtreecommitdiff
path: root/src/VBox/Runtime/r3/posix/pipe-posix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Runtime/r3/posix/pipe-posix.cpp')
-rw-r--r--src/VBox/Runtime/r3/posix/pipe-posix.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/VBox/Runtime/r3/posix/pipe-posix.cpp b/src/VBox/Runtime/r3/posix/pipe-posix.cpp
index 2e006cb3..9d950de9 100644
--- a/src/VBox/Runtime/r3/posix/pipe-posix.cpp
+++ b/src/VBox/Runtime/r3/posix/pipe-posix.cpp
@@ -4,7 +4,7 @@
*/
/*
- * Copyright (C) 2010 Oracle Corporation
+ * Copyright (C) 2010-2013 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
@@ -35,6 +35,7 @@
#include <iprt/assert.h>
#include <iprt/err.h>
#include <iprt/mem.h>
+#include <iprt/poll.h>
#include <iprt/string.h>
#include <iprt/thread.h>
#include "internal/magics.h"
@@ -54,6 +55,8 @@
# include <sys/filio.h>
#endif
+#include "internal/pipe.h"
+
/*******************************************************************************
* Structures and Typedefs *
@@ -667,3 +670,17 @@ RTDECL(int) RTPipeQueryReadable(RTPIPE hPipe, size_t *pcbReadable)
return rc;
}
+
+int rtPipePollGetHandle(RTPIPE hPipe, uint32_t fEvents, PRTHCINTPTR phNative)
+{
+ RTPIPEINTERNAL *pThis = hPipe;
+ AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
+ AssertReturn(pThis->u32Magic == RTPIPE_MAGIC, VERR_INVALID_HANDLE);
+
+ AssertReturn(!(fEvents & RTPOLL_EVT_READ) || pThis->fRead, VERR_INVALID_PARAMETER);
+ AssertReturn(!(fEvents & RTPOLL_EVT_WRITE) || !pThis->fRead, VERR_INVALID_PARAMETER);
+
+ *phNative = pThis->fd;
+ return VINF_SUCCESS;
+}
+