diff -urN vbox-clean-bk\src\libs/Makefile.kmk vbox-clean\src\libs/Makefile.kmk
--- vbox-clean-bk\src\libs/Makefile.kmk	2015-09-27 02:09:22.000000000 +0300
+++ vbox-clean\src\libs/Makefile.kmk	2015-09-27 02:03:06.000000000 +0300
@@ -24,6 +24,12 @@
 #       include path specific to the lib has been changed.
 #
 
+if1of ($(KBUILD_TARGET), os2)
+ include $(PATH_SUB_CURRENT)/zlib-1.2.6/Makefile.kmk
+ include $(PATH_SUB_CURRENT)/libxml2-2.6.31/Makefile.kmk
+ include $(PATH_SUB_CURRENT)/poll-os2/Makefile.kmk
+endif
+
 # Compression libs used by IPRT and <what was it again?>.
 include $(PATH_SUB_CURRENT)/liblzf-3.4/Makefile.kmk
 if  !defined(VBOX_ONLY_SDK) \
diff -urN vbox-clean-bk\src\libs/poll-os2/ChangeLog vbox-clean\src\libs/poll-os2/ChangeLog
--- vbox-clean-bk\src\libs/poll-os2/ChangeLog	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/ChangeLog	2015-07-24 22:37:32.000000000 +0300
@@ -0,0 +1,18 @@
+$Id: ChangeLog,v 1.1.1.1 2003/07/21 16:20:21 zarzycki Exp $
+
+Version 1.4 (2003-01-01)
+
+* Now handles and ignores bad file descriptors (i.e., descriptors
+  with negative values) in poll array. Change is based on a patch
+      submitted by Dave Smith <dizzyd@jabber.org>
+    
+Version 1.3 (2002-09-30)
+
+    * Incorporated changes to Makefile for building on Mac OS/X.
+      (Thanks to Benjamin Reed <ranger@befunk.com>)
+
+Version 1.2 (2002-05-11)
+
+    * Changed WillsCreek.com references to clapper.org.
+    * Added license info to source code comments
+
diff -urN vbox-clean-bk\src\libs/poll-os2/install.sh vbox-clean\src\libs/poll-os2/install.sh
--- vbox-clean-bk\src\libs/poll-os2/install.sh	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/install.sh	2015-07-24 22:34:24.000000000 +0300
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+#
+# install - install a program, script, or datafile
+# This comes from X11R5; it is not part of GNU.
+#
+# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+
+instcmd="$mvprog"
+chmodcmd=""
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+    -c) instcmd="$cpprog"
+        shift
+        continue;;
+
+    -m) chmodcmd="$chmodprog $2"
+        shift
+        shift
+        continue;;
+
+    -o) chowncmd="$chownprog $2"
+        shift
+        shift
+        continue;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+        shift
+        shift
+        continue;;
+
+    -s) stripcmd="$stripprog"
+        shift
+        continue;;
+
+    *)  if [ x"$src" = x ]
+        then
+	src=$1
+        else
+	dst=$1
+        fi
+        shift
+        continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+    echo "install:  no input file specified"
+    exit 1
+fi
+
+if [ x"$dst" = x ]
+then
+    echo "install:  no destination specified"
+    exit 1
+fi
+
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+if [ -d $dst ]
+then
+    dst="$dst"/`basename $src`
+fi
+
+# Make a temp file name in the proper directory.
+
+dstdir=`dirname $dst`
+dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+$doit $instcmd $src $dsttmp
+
+# and set any options; do chmod last to preserve setuid bits
+
+if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
+if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
+if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
+if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
+
+# Now rename the file to the real destination.
+
+$doit $rmcmd $dst
+$doit $mvcmd $dsttmp $dst
+
+
+exit 0
+
diff -urN vbox-clean-bk\src\libs/poll-os2/INSTALL vbox-clean\src\libs/poll-os2/INSTALL
--- vbox-clean-bk\src\libs/poll-os2/INSTALL	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/INSTALL	2015-07-24 22:36:50.000000000 +0300
@@ -0,0 +1,37 @@
+$Id: INSTALL,v 1.1.1.1 2003/07/21 16:20:21 zarzycki Exp $
+---------------------------------------------------------------------------
+
+	      Building and installing
+
+1) Edit the Makefile, adjusting any necessary definitions. Pay specific
+   attention to the value of PREFIX and the compiler settings.
+2) Type "make" to build the "libpoll.a" and "libpoll.so" libraries.
+3) Type "make install" to install the shared and static libraries in
+   $(PREFIX)/lib (default: /usr/local/lib) and the poll.h header file
+   in $(PREFIX)/include (default: /usr/local/include)
+
+
+	      Using the poll emulator
+
+Compiling:
+
+    To compile a program that wants the poll.h header file, you need
+    to include the appropriate "-I" option on the compiler command line.
+    If you set PREFIX to "/usr/local", then use "-I/usr/local/include".
+    For instance:
+
+	cc -c -I/usr/local/include mypollprog.c
+
+Linking:
+
+    To link a program that uses poll, you need to link against the
+    static or shared version of the library you built and installed.
+    Use the "-L" and "-l" options:
+
+	cc -o mypollprog mypollprog.o -L/usr/local/lib -lpoll
+
+        If you need to force static linkage, add "-static" (with gcc) to
+    force use of "libpoll.a":
+
+	cc -o mypollprog mypollprog.o -L/usr/local/lib -lpoll -static
+---------------------------------------------------------------------------
\  ª®­æ¥ ä ©«  ­¥â ­®¢®© áâà®ªš
diff -urN vbox-clean-bk\src\libs/poll-os2/LICENSE vbox-clean\src\libs/poll-os2/LICENSE
--- vbox-clean-bk\src\libs/poll-os2/LICENSE	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/LICENSE	2015-07-24 22:36:14.000000000 +0300
@@ -0,0 +1,30 @@
+LICENSE
+
+$Id: LICENSE,v 1.1.1.1 2003/07/21 16:20:21 zarzycki Exp $
+
+This software is released under the following license:
+
+    Copyright (c) 1995-2002 Brian M. Clapper
+    All rights reserved.
+
+    Redistribution and use in source and binary forms are permitted
+    provided that: (1) source distributions retain this entire
+    copyright notice and comment; (2) modifications made to the
+    software are prominently mentioned, and a copy of the original
+    software (or a pointer to its location) are included; and (3)
+    distributions including binaries display the following
+    acknowledgement: "This product includes software developed by Brian
+    M. Clapper <bmc@clapper.org>" in the documentation or other
+    materials provided with the distribution. The name of the author
+    may not be used to endorse or promote products derived from this
+    software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+Effectively, this means you can do what you want with the software except
+remove this notice or take advantage of the author's name.  If you modify
+the software and redistribute your modified version, you must indicate that
+your version is a modification of the original, and you must provide either
+a pointer to or a copy of the original.
\  ª®­æ¥ ä ©«  ­¥â ­®¢®© áâà®ªš
diff -urN vbox-clean-bk\src\libs/poll-os2/Makefile vbox-clean\src\libs/poll-os2/Makefile
--- vbox-clean-bk\src\libs/poll-os2/Makefile	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/Makefile	2015-07-24 22:35:34.000000000 +0300
@@ -0,0 +1,93 @@
+# Makefile for poll(2) emulator
+#
+# $Id: Makefile,v 1.3 2003/08/31 18:31:28 emoy Exp $
+# ---------------------------------------------------------------------------
+
+#############################################################################
+# Definitions that you need to edit
+#############################################################################
+
+# ---------------------------------------------------------------------------
+# Installation prefix
+
+PREFIX		= /usr/local
+LIBDIR		= $(PREFIX)/lib
+INCDIR		= $(PREFIX)/include
+
+# ---------------------------------------------------------------------------
+# Platform-specific bits
+#
+# For GNU CC on *BSD. Should work for FreeBSD, NetBSD, OpenBSD and BSD/OS
+LINK_SHARED	= $(CC) -dynamiclib
+SHLIB_EXT	= so
+SHLIB_NOVER	= $(LIB_NAME).$(SHLIB_EXT)
+SHLIB		= $(LIB_NAME).$(SHLIB_EXT).$(VERSION)
+SHLIB_INSTALLED = $(LIBDIR)/$(LIB_NAME).$(SHLIB_EXT).$(MAJOR)
+
+# Benjamin Reed <ranger@befunk.com>:
+# On Mac OS X, comment out the above lines, and uncomment these instead.
+#LINK_SHARED	= $(CC) -install_name $(PREFIX)/lib/$(SHLIB) \
+#			-compatibility_version $(COMPAT_VERSION) \
+#			-current_version $(VERSION) -dynamiclib
+#SHLIB_EXT	= dylib
+#SHLIB_NOVER	= $(LIB_NAME).$(SHLIB_EXT)
+#SHLIB		= $(LIB_NAME).$(VERSION).$(SHLIB_EXT)
+#SHLIB_INSTALLED= $(LIBDIR)/$(LIB_NAME).$(MAJOR).$(SHLIB_EXT)
+
+# If you have a BSD-compatible install(1), use:
+INSTALL		= install -c
+
+# If you do not have a BSD-compatible install(1), use:
+#INSTALL	= ./install.sh -c
+
+# ---------------------------------------------------------------------------
+# Compilation and Linkage
+
+MAJOR		= 1
+MINOR		= 3
+VERSION		= $(MAJOR).$(MINOR)
+COMPAT_VERSION	= $(MAJOR)
+CC		= cc
+LIB_NAME	= libpoll
+LIB		= $(LIB_NAME).a
+COMPILE_STATIC	= $(CC) $(CFLAGS) -c 
+COMPILE_SHARED	= $(CC) $(CFLAGS) -c
+RANLIB		= ranlib
+
+#############################################################################
+# There should be no need to edit past this point
+#############################################################################
+
+.SUFFIXES: .po
+
+.c.po:
+    $(COMPILE_SHARED) $< -o $*.po
+.c.o:
+    $(COMPILE_STATIC) $<
+
+all:		libs
+libs:		$(SHLIB) $(LIB)
+test:		polltest
+
+dirs:
+	@echo "creating directories..."
+	$(INSTALL) -m 755 -d $(LIBDIR)
+	$(INSTALL) -m 755 -d $(INCDIR)
+
+install:	all dirs
+	$(INSTALL) -m 755 $(SHLIB) $(LIB) $(LIBDIR)
+	ln -sf $(SHLIB) $(SHLIB_INSTALLED)
+	ln -sf $(SHLIB) $(LIBDIR)/$(SHLIB_NOVER)
+	$(INSTALL) -m 644 poll.h $(INCDIR)
+
+clean:
+	rm -f poll.po *.o $(LIB) $(SHLIB) $(SHLIB_NOVER) polltest
+
+$(SHLIB):	poll.po
+	$(LINK_SHARED) -o $(SHLIB) poll.po
+$(LIB):		poll.o
+	ar rv $(LIB) poll.o
+	ranlib $(LIB)
+polltest:	polltest.o
+	$(CC) -o polltest polltest.o $(LIB)
+
diff -urN vbox-clean-bk\src\libs/poll-os2/Makefile.kmk vbox-clean\src\libs/poll-os2/Makefile.kmk
--- vbox-clean-bk\src\libs/poll-os2/Makefile.kmk	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/Makefile.kmk	2015-08-14 03:01:58.000000000 +0300
@@ -0,0 +1,27 @@
+# $Id: Makefile.kmk 56301 2015-06-09 14:38:36Z vboxsync $
+## @file
+# Sub-Makefile for zlib.
+#
+
+#
+# Copyright (C) 2006-2015 Oracle Corporation
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL) as published by the Free Software
+# Foundation, in version 2 as it comes in the "COPYING" file of the
+# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+SUB_DEPTH = ../../..
+include $(KBUILD_PATH)/subheader.kmk
+
+LIBRARIES += VBox-os2-poll
+VBox-os2-poll_TEMPLATE = VBOXR3
+VBox-os2-poll_INCS = .
+VBox-os2-poll_SOURCES = \
+	poll.c
+
+include $(FILE_KBUILD_SUB_FOOTER)
diff -urN vbox-clean-bk\src\libs/poll-os2/poll.c vbox-clean\src\libs/poll-os2/poll.c
--- vbox-clean-bk\src\libs/poll-os2/poll.c	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/poll.c	2015-09-04 18:30:58.000000000 +0300
@@ -0,0 +1,305 @@
+/*---------------------------------------------------------------------------*\
+  $Id: poll.c,v 1.1.1.1 2003/07/21 16:20:21 zarzycki Exp $
+
+  NAME
+
+    poll - select(2)-based poll() emulation function for BSD systems.
+
+  SYNOPSIS
+    #include "poll.h"
+
+    struct pollfd
+    {
+        int     fd;
+        short   events;
+        short   revents;
+    }
+
+    int poll (struct pollfd *pArray, unsigned long n_fds, int timeout)
+
+  DESCRIPTION
+
+    This file, and the accompanying "poll.h", implement the System V
+    poll(2) system call for BSD systems (which typically do not provide
+    poll()).  Poll() provides a method for multiplexing input and output
+    on multiple open file descriptors; in traditional BSD systems, that
+    capability is provided by select().  While the semantics of select()
+    differ from those of poll(), poll() can be readily emulated in terms
+    of select() -- which is how this function is implemented.
+
+  REFERENCES
+    Stevens, W. Richard. Unix Network Programming.  Prentice-Hall, 1990.
+
+  NOTES
+    1. This software requires an ANSI C compiler.
+
+  LICENSE
+
+    This software is released under the following license:
+
+	Copyright (c) 1995-2002 Brian M. Clapper
+	All rights reserved.
+
+	Redistribution and use in source and binary forms are
+	permitted provided that: (1) source distributions retain
+	this entire copyright notice and comment; (2) modifications
+	made to the software are prominently mentioned, and a copy
+	of the original software (or a pointer to its location) are
+	included; and (3) distributions including binaries display
+	the following acknowledgement: "This product includes
+	software developed by Brian M. Clapper <bmc@clapper.org>"
+	in the documentation or other materials provided with the
+	distribution. The name of the author may not be used to
+	endorse or promote products derived from this software
+	without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS
+	OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE
+	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+	PARTICULAR PURPOSE.
+
+    Effectively, this means you can do what you want with the software
+    except remove this notice or take advantage of the author's name.
+    If you modify the software and redistribute your modified version,
+    you must indicate that your version is a modification of the
+    original, and you must provide either a pointer to or a copy of the
+    original.
+\*---------------------------------------------------------------------------*/
+
+
+/*---------------------------------------------------------------------------*\
+		 Includes
+\*---------------------------------------------------------------------------*/
+
+#include <unistd.h>			     /* standard Unix definitions */
+#include <sys/types.h>                       /* system types */
+#include <sys/time.h>                        /* time definitions */
+#include <assert.h>                          /* assertion macros */
+#include <string.h>                          /* string functions */
+#include "poll.h"                            /* this package */
+
+/*---------------------------------------------------------------------------*\
+		  Macros
+\*---------------------------------------------------------------------------*/
+
+#ifndef MAX
+#define MAX(a,b)	((a) > (b) ? (a) : (b))
+#endif
+
+
+/*---------------------------------------------------------------------------*\
+	         Private Functions
+\*---------------------------------------------------------------------------*/
+
+static int map_poll_spec
+#if __STDC__ > 0
+	    (struct pollfd *pArray,
+	      unsigned long  n_fds,
+	      fd_set        *pReadSet,
+	      fd_set        *pWriteSet,
+	      fd_set        *pExceptSet)
+#else
+	     (pArray, n_fds, pReadSet, pWriteSet, pExceptSet)
+	      struct pollfd *pArray;
+	      unsigned long  n_fds;
+	      fd_set        *pReadSet;
+	      fd_set        *pWriteSet;
+	      fd_set        *pExceptSet;
+#endif
+{
+    register unsigned long  i;                   /* loop control */
+    register struct	    pollfd *pCur;        /* current array element */
+    register int	    max_fd = -1;         /* return value */
+
+    /*
+       Map the poll() structures into the file descriptor sets required
+       by select().
+    */
+    for (i = 0, pCur = pArray; i < n_fds; i++, pCur++)
+    {
+        /* Skip any bad FDs in the array. */
+
+        if (pCur->fd < 0)
+            continue;
+
+    if (pCur->events & POLLIN)
+    {
+        /* "Input Ready" notification desired. */
+        FD_SET (pCur->fd, pReadSet);
+    }
+
+    if (pCur->events & POLLOUT)
+    {
+        /* "Output Possible" notification desired. */
+        FD_SET (pCur->fd, pWriteSet);
+    }
+
+    if (pCur->events & POLLPRI)
+    {
+        /*
+           "Exception Occurred" notification desired.  (Exceptions
+           include out of band data.
+        */
+        FD_SET (pCur->fd, pExceptSet);
+    }
+
+    max_fd = MAX (max_fd, pCur->fd);
+    }
+
+    return max_fd;
+}
+
+static struct timeval *map_timeout
+#if __STDC__ > 0
+	    (int poll_timeout, struct timeval *pSelTimeout)
+#else
+	    (poll_timeout, pSelTimeout)
+	     int             poll_timeout;
+	     struct timeval *pSelTimeout;
+#endif
+{
+    struct timeval *pResult;
+
+    /*
+       Map the poll() timeout value into a select() timeout.  The possible
+       values of the poll() timeout value, and their meanings, are:
+
+       VALUE	MEANING
+
+       -1	wait indefinitely (until signal occurs)
+        0	return immediately, don't block
+       >0	wait specified number of milliseconds
+
+       select() uses a "struct timeval", which specifies the timeout in
+       seconds and microseconds, so the milliseconds value has to be mapped
+       accordingly.
+    */
+
+    assert (pSelTimeout != (struct timeval *) NULL);
+
+    switch (poll_timeout)
+    {
+    case -1:
+        /*
+           A NULL timeout structure tells select() to wait indefinitely.
+        */
+        pResult = (struct timeval *) NULL;
+        break;
+
+    case 0:
+        /*
+           "Return immediately" (test) is specified by all zeros in
+           a timeval structure.
+        */
+        pSelTimeout->tv_sec  = 0;
+        pSelTimeout->tv_usec = 0;
+        pResult = pSelTimeout;
+        break;
+
+    default:
+        /* Wait the specified number of milliseconds. */
+        pSelTimeout->tv_sec  = poll_timeout / 1000; /* get seconds */
+        poll_timeout        %= 1000;                /* remove seconds */
+        pSelTimeout->tv_usec = poll_timeout * 1000; /* get microseconds */
+        pResult = pSelTimeout;
+        break;
+    }
+
+
+    return pResult;
+}
+
+static void map_select_results
+#if __STDC__ > 0
+	     (struct pollfd *pArray,
+	      unsigned long  n_fds,
+	      fd_set        *pReadSet,
+	      fd_set        *pWriteSet,
+	      fd_set        *pExceptSet)
+#else
+	     (pArray, n_fds, pReadSet, pWriteSet, pExceptSet)
+	      struct pollfd *pArray;
+	      unsigned long  n_fds;
+	      fd_set        *pReadSet;
+	      fd_set        *pWriteSet;
+	      fd_set        *pExceptSet;
+#endif
+{
+    register unsigned long  i;                   /* loop control */
+    register struct	    pollfd *pCur;        /* current array element */
+
+    for (i = 0, pCur = pArray; i < n_fds; i++, pCur++)
+    {
+        /* Skip any bad FDs in the array. */
+
+        if (pCur->fd < 0)
+            continue;
+
+    /* Exception events take priority over input events. */
+
+    pCur->revents = 0;
+    if (FD_ISSET (pCur->fd, pExceptSet))
+        pCur->revents |= POLLPRI;
+
+    else if (FD_ISSET (pCur->fd, pReadSet))
+        pCur->revents |= POLLIN;
+
+    if (FD_ISSET (pCur->fd, pWriteSet))
+        pCur->revents |= POLLOUT;
+    }
+
+    return;
+}
+
+/*---------------------------------------------------------------------------*\
+	         Public Functions
+\*---------------------------------------------------------------------------*/
+
+int poll
+
+#if __STDC__ > 0
+    (struct pollfd *pArray, unsigned long n_fds, int timeout)
+#else
+    (pArray, n_fds, timeout)
+     struct	       pollfd *pArray;
+     unsigned long n_fds;
+     int	       timeout;
+#endif
+
+{
+    fd_set  read_descs;                          /* input file descs */
+    fd_set  write_descs;                         /* output file descs */
+    fd_set  except_descs;                        /* exception descs */
+    struct  timeval stime;                       /* select() timeout value */
+    int	    ready_descriptors;                   /* function result */
+    int	    max_fd;                              /* maximum fd value */
+    struct  timeval *pTimeout;                   /* actually passed */
+
+    FD_ZERO (&read_descs);
+    FD_ZERO (&write_descs);
+    FD_ZERO (&except_descs);
+
+    assert (pArray != (struct pollfd *) NULL);
+
+    /* Map the poll() file descriptor list in the select() data structures. */
+
+    max_fd = map_poll_spec (pArray, n_fds,
+	        &read_descs, &write_descs, &except_descs);
+
+    /* Map the poll() timeout value in the select() timeout structure. */
+
+    pTimeout = map_timeout (timeout, &stime);
+
+    /* Make the select() call. */
+
+    ready_descriptors = select (max_fd + 1, &read_descs, &write_descs,
+		&except_descs, pTimeout);
+
+    if (ready_descriptors >= 0)
+    {
+    map_select_results (pArray, n_fds,
+	        &read_descs, &write_descs, &except_descs);
+    }
+
+    return ready_descriptors;
+}
diff -urN vbox-clean-bk\src\libs/poll-os2/poll.h vbox-clean\src\libs/poll-os2/poll.h
--- vbox-clean-bk\src\libs/poll-os2/poll.h	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/poll.h	2015-07-24 22:47:12.000000000 +0300
@@ -0,0 +1,121 @@
+/*---------------------------------------------------------------------------*\
+  $Id: poll.h,v 1.2 2003/09/13 00:08:18 eseidel Exp $
+
+  NAME
+
+    poll - select(2)-based poll() emulation function for BSD systems.
+
+  SYNOPSIS
+    #include "poll.h"
+
+    struct pollfd
+    {
+        int     fd;
+        short   events;
+        short   revents;
+    }
+
+    int poll (struct pollfd *pArray, unsigned long n_fds, int timeout)
+
+  DESCRIPTION
+
+    This file, and the accompanying "poll.c", implement the System V
+    poll(2) system call for BSD systems (which typically do not provide
+    poll()).  Poll() provides a method for multiplexing input and output
+    on multiple open file descriptors; in traditional BSD systems, that
+    capability is provided by select().  While the semantics of select()
+    differ from those of poll(), poll() can be readily emulated in terms
+    of select() -- which is how this function is implemented.
+
+  REFERENCES
+    Stevens, W. Richard. Unix Network Programming.  Prentice-Hall, 1990.
+
+  NOTES
+    1. This software requires an ANSI C compiler.
+
+  LICENSE
+
+    This software is released under the following license:
+
+	Copyright (c) 1995-2002 Brian M. Clapper
+	All rights reserved.
+
+	Redistribution and use in source and binary forms are
+	permitted provided that: (1) source distributions retain
+	this entire copyright notice and comment; (2) modifications
+	made to the software are prominently mentioned, and a copy
+	of the original software (or a pointer to its location) are
+	included; and (3) distributions including binaries display
+	the following acknowledgement: "This product includes
+	software developed by Brian M. Clapper <bmc@clapper.org>"
+	in the documentation or other materials provided with the
+	distribution. The name of the author may not be used to
+	endorse or promote products derived from this software
+	without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS
+	OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE
+	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+	PARTICULAR PURPOSE.
+
+    Effectively, this means you can do what you want with the software
+    except remove this notice or take advantage of the author's name.
+    If you modify the software and redistribute your modified version,
+    you must indicate that your version is a modification of the
+    original, and you must provide either a pointer to or a copy of the
+    original.
+\*---------------------------------------------------------------------------*/
+
+#ifndef _POLL_EMUL_H_
+#define _POLL_EMUL_H_
+
+#define POLL_NO_WARN
+
+#ifndef POLL_NO_WARN
+#warning "poll() functionality for Mac OS X is implemented via an emulation layer on top of select(), not in the kernel directly.  It is recommended that programs running under OS X 10.3 prefer select() over poll().  Configure scripts should look for the _POLL_EMUL_H_ define (instead of _POLL_H_ or _SYS_POLL_H_) and avoid implementations where poll is not implemented in the kernel."
+#endif
+
+#ifdef RT_OS_OS2
+#include <sys/select.h>
+#endif
+
+#define POLLIN		0x01
+#define POLLPRI		0x02
+#define POLLOUT		0x04
+#define POLLERR		0x08
+#define POLLHUP		0x10
+#define POLLNVAL	0x20
+
+// these are taken from Linux
+#define POLLRDNORM      0x0040
+#define POLLRDBAND      0x0080
+#define POLLWRNORM      0x0100
+#define POLLWRBAND      0x0200
+#define POLLMSG         0x0400
+#define POLLREMOVE      0x1000
+#define POLLRDHUP       0x2000
+#define POLLFREE       0x4000
+
+struct pollfd
+{
+    int     fd;
+    short   events;
+    short   revents;
+};
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#if (__STDC__ > 0) || defined(__cplusplus)
+extern int poll (struct pollfd *pArray, unsigned long n_fds, int timeout);
+#else
+extern int poll();
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _POLL_EMUL_H_ */
diff -urN vbox-clean-bk\src\libs/poll-os2/polltest.c vbox-clean\src\libs/poll-os2/polltest.c
--- vbox-clean-bk\src\libs/poll-os2/polltest.c	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/polltest.c	2015-08-14 01:40:54.000000000 +0300
@@ -0,0 +1,78 @@
+/* $Id: polltest.c,v 1.1.1.1 2003/07/21 16:20:21 zarzycki Exp $ */
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include "poll.h"
+
+#define MAX10
+
+main (int argc, char **argv)
+{
+    int    arg;
+    int    i;
+    struct  pollfd array[MAX];
+    int     ready;
+
+    if ((argc == 1) || ((argc % 2) != 1) || (argc > ((MAX * 2) + 1)) )
+    {
+fprintf (stderr, "Usage: %s r|w file [r|w file] ...\n", argv[0]);
+exit (1);
+    }
+
+    for (arg = 1, i = 0; arg < argc; arg += 2, i++)
+    {
+    int open_mode;
+    short poll_mask;
+    char *strMode;
+
+    if (argv[arg][0]  == 'r')
+    {
+        open_mode = O_RDONLY;
+        poll_mask = POLLIN;
+        strMode   = "reading";
+    }
+    else
+    {
+        open_mode = O_WRONLY;
+        poll_mask = POLLOUT;
+        strMode   = "writing";
+    }
+
+    printf ("%2d: Opening \"%s\" for %s ...\n", i, argv[arg + 1], strMode);
+    array[i].revents = 0;
+    array[i].events |= poll_mask;
+    array[i].fd      = open (argv[arg + 1], open_mode);
+    if (array[i].fd == -1)
+    {
+        fprintf (stderr, "Can't open \"%s\": errno %d\n",
+	     argv[arg + 1], errno);
+        exit (1);
+    }
+    }
+
+    printf ("Polling on %d file descriptors.  Timeout is indefinite ...\n", i);
+    ready = poll (array, (unsigned long) i, -1);
+    printf ("poll() returned %d.\n", ready);
+    if (ready < 0)
+    printf ("Errno = %d\n", errno);
+
+    for (arg = 1, i = 0; arg < argc; arg += 2, i++)
+    {
+    if (array[i].revents != 0)
+    {
+        printf ("%2d (\"%s\"):", i, argv[arg + 1]);
+
+        if (array[i].revents &  POLLPRI)
+	printf (" EXCEPTION");
+        if (array[i].revents &  POLLIN)
+	printf (" INPUT");
+        if (array[i].revents &  POLLOUT)
+	printf (" OUTPUT");
+        putchar ('\n');
+    }
+    }
+
+    exit (0);
+}
diff -urN vbox-clean-bk\src\libs/poll-os2/sys/poll.h vbox-clean\src\libs/poll-os2/sys/poll.h
--- vbox-clean-bk\src\libs/poll-os2/sys/poll.h	1970-01-01 03:00:00.000000000 +0300
+++ vbox-clean\src\libs/poll-os2/sys/poll.h	2015-07-24 22:47:12.000000000 +0300
@@ -0,0 +1,121 @@
+/*---------------------------------------------------------------------------*\
+  $Id: poll.h,v 1.2 2003/09/13 00:08:18 eseidel Exp $
+
+  NAME
+
+    poll - select(2)-based poll() emulation function for BSD systems.
+
+  SYNOPSIS
+    #include "poll.h"
+
+    struct pollfd
+    {
+        int     fd;
+        short   events;
+        short   revents;
+    }
+
+    int poll (struct pollfd *pArray, unsigned long n_fds, int timeout)
+
+  DESCRIPTION
+
+    This file, and the accompanying "poll.c", implement the System V
+    poll(2) system call for BSD systems (which typically do not provide
+    poll()).  Poll() provides a method for multiplexing input and output
+    on multiple open file descriptors; in traditional BSD systems, that
+    capability is provided by select().  While the semantics of select()
+    differ from those of poll(), poll() can be readily emulated in terms
+    of select() -- which is how this function is implemented.
+
+  REFERENCES
+    Stevens, W. Richard. Unix Network Programming.  Prentice-Hall, 1990.
+
+  NOTES
+    1. This software requires an ANSI C compiler.
+
+  LICENSE
+
+    This software is released under the following license:
+
+	Copyright (c) 1995-2002 Brian M. Clapper
+	All rights reserved.
+
+	Redistribution and use in source and binary forms are
+	permitted provided that: (1) source distributions retain
+	this entire copyright notice and comment; (2) modifications
+	made to the software are prominently mentioned, and a copy
+	of the original software (or a pointer to its location) are
+	included; and (3) distributions including binaries display
+	the following acknowledgement: "This product includes
+	software developed by Brian M. Clapper <bmc@clapper.org>"
+	in the documentation or other materials provided with the
+	distribution. The name of the author may not be used to
+	endorse or promote products derived from this software
+	without specific prior written permission.
+
+	THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS
+	OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE
+	IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+	PARTICULAR PURPOSE.
+
+    Effectively, this means you can do what you want with the software
+    except remove this notice or take advantage of the author's name.
+    If you modify the software and redistribute your modified version,
+    you must indicate that your version is a modification of the
+    original, and you must provide either a pointer to or a copy of the
+    original.
+\*---------------------------------------------------------------------------*/
+
+#ifndef _POLL_EMUL_H_
+#define _POLL_EMUL_H_
+
+#define POLL_NO_WARN
+
+#ifndef POLL_NO_WARN
+#warning "poll() functionality for Mac OS X is implemented via an emulation layer on top of select(), not in the kernel directly.  It is recommended that programs running under OS X 10.3 prefer select() over poll().  Configure scripts should look for the _POLL_EMUL_H_ define (instead of _POLL_H_ or _SYS_POLL_H_) and avoid implementations where poll is not implemented in the kernel."
+#endif
+
+#ifdef RT_OS_OS2
+#include <sys/select.h>
+#endif
+
+#define POLLIN		0x01
+#define POLLPRI		0x02
+#define POLLOUT		0x04
+#define POLLERR		0x08
+#define POLLHUP		0x10
+#define POLLNVAL	0x20
+
+// these are taken from Linux
+#define POLLRDNORM      0x0040
+#define POLLRDBAND      0x0080
+#define POLLWRNORM      0x0100
+#define POLLWRBAND      0x0200
+#define POLLMSG         0x0400
+#define POLLREMOVE      0x1000
+#define POLLRDHUP       0x2000
+#define POLLFREE       0x4000
+
+struct pollfd
+{
+    int     fd;
+    short   events;
+    short   revents;
+};
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#if (__STDC__ > 0) || defined(__cplusplus)
+extern int poll (struct pollfd *pArray, unsigned long n_fds, int timeout);
+#else
+extern int poll();
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _POLL_EMUL_H_ */
