parent
f3123eacf4
commit
9a9c7dcd72
|
@ -1,6 +1,6 @@
|
||||||
# $NetBSD$
|
# $NetBSD$
|
||||||
|
|
||||||
DISTNAME= ATS2-Postiats-0.3.13
|
DISTNAME= ATS2-Postiats-0.3.12
|
||||||
CATEGORIES= lang
|
CATEGORIES= lang
|
||||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=ats2-lang/}
|
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=ats2-lang/}
|
||||||
EXTRACT_SUFX= .tgz
|
EXTRACT_SUFX= .tgz
|
||||||
|
@ -17,7 +17,11 @@ USE_TOOLS+= gmake
|
||||||
MAKE_JOBS_SAFE= no
|
MAKE_JOBS_SAFE= no
|
||||||
MAKE_FLAGS+= LDFLAGS+=
|
MAKE_FLAGS+= LDFLAGS+=
|
||||||
|
|
||||||
WRKSRC= ${WRKDIR}/${PKGBASE}-gmp-${PKGVERSION_NOREV}
|
SUBST_CLASSES+= version
|
||||||
|
SUBST_STAGE.version= pre-configure
|
||||||
|
SUBST_MESSAGE.version= Fixing version.
|
||||||
|
SUBST_FILES.version= configure
|
||||||
|
SUBST_SED.version= -e "s/0\.3\.11/0.3.12/g"
|
||||||
|
|
||||||
.include "../../devel/gmp/buildlink3.mk"
|
.include "../../devel/gmp/buildlink3.mk"
|
||||||
.include "../../mk/bsd.pkg.mk"
|
.include "../../mk/bsd.pkg.mk"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
$NetBSD$
|
$NetBSD$
|
||||||
|
|
||||||
SHA1 (ATS2-Postiats-0.3.13.tgz) = 969fcaf9e2c11ca3b89d5b21aaff70f7b126a960
|
SHA1 (ATS2-Postiats-0.3.12.tgz) = da6e20815351c6a59635ca61da9474c68fc06b34
|
||||||
RMD160 (ATS2-Postiats-0.3.13.tgz) = a2a7d19cafa0f2b949026d41c900671d3bfb6112
|
RMD160 (ATS2-Postiats-0.3.12.tgz) = ca709266b8f27f4637f888a475f651fb35c9f2c1
|
||||||
SHA512 (ATS2-Postiats-0.3.13.tgz) = 40e0fc40e4295ca6c5c21d9aeb97a6729fc74f7fc9bf165b3328b5b57a4e1480f9e0a792573aad60df0df2a445472a1aa4ef4a707ebbbae2d4ceb5f9b59a8269
|
SHA512 (ATS2-Postiats-0.3.12.tgz) = d8619488356e0d1ec98230a0810b5850f7cc274151b1911545420be8e364080a269c7776ef337205ad7561a1d2463cb18a0a0a374376e81dba4c54eeff521933
|
||||||
Size (ATS2-Postiats-0.3.13.tgz) = 4532102 bytes
|
Size (ATS2-Postiats-0.3.12.tgz) = 4440614 bytes
|
||||||
SHA1 (patch-Makefile) = 6695c27284c2e5f765439f0d2b77c3bda3c2a5ed
|
SHA1 (patch-Makefile) = 6695c27284c2e5f765439f0d2b77c3bda3c2a5ed
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- include/VBox/types.h.orig 2018-12-18 12:51:31.000000000 +0000
|
|
||||||
+++ include/VBox/types.h
|
|
||||||
@@ -29,6 +29,10 @@
|
|
||||||
#include <VBox/cdefs.h>
|
|
||||||
#include <iprt/types.h>
|
|
||||||
|
|
||||||
+#if defined(RT_OS_NETBSD)
|
|
||||||
+/* PVM is defined by 'sys/param.h' */
|
|
||||||
+#undef PVM
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/** @defgroup grp_types VBox Basic Types
|
|
||||||
* @{
|
|
|
@ -1,13 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- include/iprt/types.h.orig 2018-12-18 12:51:38.000000000 +0000
|
|
||||||
+++ include/iprt/types.h
|
|
||||||
@@ -237,8 +237,6 @@ typedef _Bool bool;
|
|
||||||
* For the kernel code <stdbool.h> is not available, but bool is
|
|
||||||
* provided by <sys/types.h> included above.
|
|
||||||
*/
|
|
||||||
-# include <stdbool.h>
|
|
||||||
-
|
|
||||||
/*
|
|
||||||
* ... but the story doesn't end here. The C standard says that
|
|
||||||
* <stdbool.h> defines preprocessor macro "bool" that expands to
|
|
|
@ -1,30 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/VBox/Devices/Audio/DrvHostOSSAudio.cpp.orig 2018-12-18 12:55:50.000000000 +0000
|
|
||||||
+++ src/VBox/Devices/Audio/DrvHostOSSAudio.cpp
|
|
||||||
@@ -21,6 +21,9 @@
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <sys/soundcard.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
+#if defined(RT_OS_NETBSD)
|
|
||||||
+#include <strings.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include <iprt/alloc.h>
|
|
||||||
#include <iprt/uuid.h> /* For PDMIBASE_2_PDMDRV. */
|
|
||||||
@@ -132,6 +135,7 @@ static OSSAUDIOCFG s_OSSConf =
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
+#if !defined(RT_OS_NETBSD)
|
|
||||||
/* http://www.df.lth.se/~john_e/gems/gem002d.html */
|
|
||||||
static uint32_t popcount(uint32_t u)
|
|
||||||
{
|
|
||||||
@@ -142,6 +146,7 @@ static uint32_t popcount(uint32_t u)
|
|
||||||
u = ( u&0x0000ffff) + (u>>16);
|
|
||||||
return u;
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
|
|
||||||
static uint32_t lsbindex(uint32_t u)
|
|
|
@ -1,23 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/VBox/Devices/EFI/Firmware/AppPkg/Applications/Python/PyMod-2.7.2/Include/pyport.h.orig 2018-12-18 12:55:52.000000000 +0000
|
|
||||||
+++ src/VBox/Devices/EFI/Firmware/AppPkg/Applications/Python/PyMod-2.7.2/Include/pyport.h
|
|
||||||
@@ -468,7 +468,7 @@ extern "C" {
|
|
||||||
* This isn't reliable. See Py_OVERFLOWED comments.
|
|
||||||
* X is evaluated more than once.
|
|
||||||
*/
|
|
||||||
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || (defined(__hpux) && defined(__ia64))
|
|
||||||
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || (defined(__hpux) && defined(__ia64)) || defined(__NetBSD__)
|
|
||||||
#define _Py_SET_EDOM_FOR_NAN(X) if (isnan(X)) errno = EDOM;
|
|
||||||
#else
|
|
||||||
#define _Py_SET_EDOM_FOR_NAN(X) ;
|
|
||||||
@@ -684,6 +684,9 @@ extern int fdatasync(int);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if defined(__NetBSD__)
|
|
||||||
+# define _PY_PORT_CTYPE_UTF8_ISSUE
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
|
||||||
# define _PY_PORT_CTYPE_UTF8_ISSUE
|
|
|
@ -1,12 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/VBox/Devices/Network/lwip-new/vbox/include/arch/cc.h.orig 2018-12-18 12:58:36.000000000 +0000
|
|
||||||
+++ src/VBox/Devices/Network/lwip-new/vbox/include/arch/cc.h
|
|
||||||
@@ -12,6 +12,7 @@
|
|
||||||
|
|
||||||
#ifndef RT_OS_WINDOWS
|
|
||||||
# define LWIP_TIMEVAL_PRIVATE 0
|
|
||||||
+# include <sys/time.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef uint8_t u8_t;
|
|
|
@ -1,41 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/VBox/Main/include/USBProxyBackend.h.orig 2018-12-18 13:00:06.000000000 +0000
|
|
||||||
+++ src/VBox/Main/include/USBProxyBackend.h
|
|
||||||
@@ -378,6 +378,36 @@ private:
|
|
||||||
};
|
|
||||||
# endif /* RT_OS_FREEBSD */
|
|
||||||
|
|
||||||
+# if defined(RT_OS_NETBSD) || defined(DOXYGEN_RUNNING)
|
|
||||||
+/**
|
|
||||||
+ * The FreeBSD hosted USB Proxy Backend.
|
|
||||||
+ */
|
|
||||||
+class USBProxyBackendNetBSD : public USBProxyBackend
|
|
||||||
+{
|
|
||||||
+public:
|
|
||||||
+ DECLARE_EMPTY_CTOR_DTOR(USBProxyBackendNetBSD)
|
|
||||||
+
|
|
||||||
+ int init(USBProxyService *pUsbProxyService, const com::Utf8Str &strId,
|
|
||||||
+ const com::Utf8Str &strAddress, bool fLoadingSettings);
|
|
||||||
+ void uninit();
|
|
||||||
+
|
|
||||||
+ virtual int captureDevice(HostUSBDevice *aDevice);
|
|
||||||
+ virtual int releaseDevice(HostUSBDevice *aDevice);
|
|
||||||
+
|
|
||||||
+protected:
|
|
||||||
+ int initUsbfs(void);
|
|
||||||
+ int initSysfs(void);
|
|
||||||
+ virtual int wait(RTMSINTERVAL aMillies);
|
|
||||||
+ virtual int interruptWait(void);
|
|
||||||
+ virtual PUSBDEVICE getDevices(void);
|
|
||||||
+ int addDeviceToChain(PUSBDEVICE pDev, PUSBDEVICE *ppFirst, PUSBDEVICE **pppNext, int rc);
|
|
||||||
+ virtual void deviceAdded(ComObjPtr<HostUSBDevice> &aDevice, SessionMachinesList &llOpenedMachines, PUSBDEVICE aUSBDevice);
|
|
||||||
+
|
|
||||||
+private:
|
|
||||||
+ RTSEMEVENT mNotifyEventSem;
|
|
||||||
+};
|
|
||||||
+# endif /* RT_OS_NETBSD */
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* USB/IP Proxy receive state.
|
|
||||||
*/
|
|
|
@ -1,356 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/VBox/Main/src-server/netbsd/USBProxyBackendNetBSD.cpp.orig 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ src/VBox/Main/src-server/netbsd/USBProxyBackendNetBSD.cpp
|
|
||||||
@@ -0,0 +1,351 @@
|
|
||||||
+/* USBProxyBackendNetBSD.cpp $ */
|
|
||||||
+/** @file
|
|
||||||
+ * VirtualBox USB Proxy Service, NetBSD Specialization.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Copyright (C) 2005-2017 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.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/*********************************************************************************************************************************
|
|
||||||
+* Header Files *
|
|
||||||
+*********************************************************************************************************************************/
|
|
||||||
+#include "USBProxyBackend.h"
|
|
||||||
+#include "Logging.h"
|
|
||||||
+
|
|
||||||
+#include <VBox/usb.h>
|
|
||||||
+#include <VBox/usblib.h>
|
|
||||||
+#include <VBox/err.h>
|
|
||||||
+
|
|
||||||
+#include <iprt/string.h>
|
|
||||||
+#include <iprt/alloc.h>
|
|
||||||
+#include <iprt/assert.h>
|
|
||||||
+#include <iprt/file.h>
|
|
||||||
+#include <iprt/err.h>
|
|
||||||
+#include <iprt/mem.h>
|
|
||||||
+#include <iprt/param.h>
|
|
||||||
+#include <iprt/path.h>
|
|
||||||
+#include <iprt/semaphore.h>
|
|
||||||
+
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <errno.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
+#include <fcntl.h>
|
|
||||||
+#include <sys/poll.h>
|
|
||||||
+#include <dev/usb/usb.h>
|
|
||||||
+#include <dev/usb/usb_ioctl.h>
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/*********************************************************************************************************************************
|
|
||||||
+* Structures and Typedefs *
|
|
||||||
+*********************************************************************************************************************************/
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/*********************************************************************************************************************************
|
|
||||||
+* Global Variables *
|
|
||||||
+*********************************************************************************************************************************/
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * Initialize data members.
|
|
||||||
+ */
|
|
||||||
+USBProxyBackendNetBSD::USBProxyBackendNetBSD()
|
|
||||||
+ : USBProxyBackend(), mNotifyEventSem(NIL_RTSEMEVENT)
|
|
||||||
+{
|
|
||||||
+ LogFlowThisFunc(("\n"));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+USBProxyBackendNetBSD::~USBProxyBackendNetBSD()
|
|
||||||
+{
|
|
||||||
+ LogFlowThisFunc(("\n"));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * Initializes the object (called right after construction).
|
|
||||||
+ *
|
|
||||||
+ * @returns S_OK on success and non-fatal failures, some COM error otherwise.
|
|
||||||
+ */
|
|
||||||
+int USBProxyBackendNetBSD::init(USBProxyService *pUsbProxyService, const com::Utf8Str &strId,
|
|
||||||
+ const com::Utf8Str &strAddress, bool fLoadingSettings)
|
|
||||||
+{
|
|
||||||
+ USBProxyBackend::init(pUsbProxyService, strId, strAddress, fLoadingSettings);
|
|
||||||
+
|
|
||||||
+ unconst(m_strBackend) = Utf8Str("host");
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * Create semaphore.
|
|
||||||
+ */
|
|
||||||
+ int rc = RTSemEventCreate(&mNotifyEventSem);
|
|
||||||
+ if (RT_FAILURE(rc))
|
|
||||||
+ return rc;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * Start the poller thread.
|
|
||||||
+ */
|
|
||||||
+ start();
|
|
||||||
+ return VINF_SUCCESS;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * Stop all service threads and free the device chain.
|
|
||||||
+ */
|
|
||||||
+void USBProxyBackendNetBSD::uninit()
|
|
||||||
+{
|
|
||||||
+ LogFlowThisFunc(("\n"));
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * Stop the service.
|
|
||||||
+ */
|
|
||||||
+ if (isActive())
|
|
||||||
+ stop();
|
|
||||||
+
|
|
||||||
+ RTSemEventDestroy(mNotifyEventSem);
|
|
||||||
+ mNotifyEventSem = NULL;
|
|
||||||
+ USBProxyBackend::uninit();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int USBProxyBackendNetBSD::captureDevice(HostUSBDevice *aDevice)
|
|
||||||
+{
|
|
||||||
+ AssertReturn(aDevice, VERR_GENERAL_FAILURE);
|
|
||||||
+ AssertReturn(!aDevice->isWriteLockOnCurrentThread(), VERR_GENERAL_FAILURE);
|
|
||||||
+
|
|
||||||
+ AutoReadLock devLock(aDevice COMMA_LOCKVAL_SRC_POS);
|
|
||||||
+ LogFlowThisFunc(("aDevice=%s\n", aDevice->i_getName().c_str()));
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * Don't think we need to do anything when the device is held... fake it.
|
|
||||||
+ */
|
|
||||||
+ Assert(aDevice->i_getUnistate() == kHostUSBDeviceState_Capturing);
|
|
||||||
+ devLock.release();
|
|
||||||
+ interruptWait();
|
|
||||||
+
|
|
||||||
+ return VINF_SUCCESS;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int USBProxyBackendNetBSD::releaseDevice(HostUSBDevice *aDevice)
|
|
||||||
+{
|
|
||||||
+ AssertReturn(aDevice, VERR_GENERAL_FAILURE);
|
|
||||||
+ AssertReturn(!aDevice->isWriteLockOnCurrentThread(), VERR_GENERAL_FAILURE);
|
|
||||||
+
|
|
||||||
+ AutoReadLock devLock(aDevice COMMA_LOCKVAL_SRC_POS);
|
|
||||||
+ LogFlowThisFunc(("aDevice=%s\n", aDevice->i_getName().c_str()));
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * We're not really holding it atm., just fake it.
|
|
||||||
+ */
|
|
||||||
+ Assert(aDevice->i_getUnistate() == kHostUSBDeviceState_ReleasingToHost);
|
|
||||||
+ devLock.release();
|
|
||||||
+ interruptWait();
|
|
||||||
+
|
|
||||||
+ return VINF_SUCCESS;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+bool USBProxyBackendNetBSD::isFakeUpdateRequired()
|
|
||||||
+{
|
|
||||||
+ return true;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int USBProxyBackendNetBSD::wait(RTMSINTERVAL aMillies)
|
|
||||||
+{
|
|
||||||
+ return RTSemEventWait(mNotifyEventSem, aMillies < 1000 ? 1000 : 5000);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int USBProxyBackendNetBSD::interruptWait(void)
|
|
||||||
+{
|
|
||||||
+ return RTSemEventSignal(mNotifyEventSem);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * Dumps a USBDEVICE structure to the log using LogLevel 3.
|
|
||||||
+ * @param pDev The structure to log.
|
|
||||||
+ * @todo This is really common code.
|
|
||||||
+ */
|
|
||||||
+DECLINLINE(void) usbLogDevice(PUSBDEVICE pDev)
|
|
||||||
+{
|
|
||||||
+ NOREF(pDev);
|
|
||||||
+
|
|
||||||
+ Log3(("USB device:\n"));
|
|
||||||
+ Log3(("Product: %s (%x)\n", pDev->pszProduct, pDev->idProduct));
|
|
||||||
+ Log3(("Manufacturer: %s (Vendor ID %x)\n", pDev->pszManufacturer, pDev->idVendor));
|
|
||||||
+ Log3(("Serial number: %s (%llx)\n", pDev->pszSerialNumber, pDev->u64SerialHash));
|
|
||||||
+ Log3(("Device revision: %d\n", pDev->bcdDevice));
|
|
||||||
+ Log3(("Device class: %x\n", pDev->bDeviceClass));
|
|
||||||
+ Log3(("Device subclass: %x\n", pDev->bDeviceSubClass));
|
|
||||||
+ Log3(("Device protocol: %x\n", pDev->bDeviceProtocol));
|
|
||||||
+ Log3(("USB version number: %d\n", pDev->bcdUSB));
|
|
||||||
+ Log3(("Device speed: %s\n",
|
|
||||||
+ pDev->enmSpeed == USBDEVICESPEED_UNKNOWN ? "unknown"
|
|
||||||
+ : pDev->enmSpeed == USBDEVICESPEED_LOW ? "1.5 MBit/s"
|
|
||||||
+ : pDev->enmSpeed == USBDEVICESPEED_FULL ? "12 MBit/s"
|
|
||||||
+ : pDev->enmSpeed == USBDEVICESPEED_HIGH ? "480 MBit/s"
|
|
||||||
+ : pDev->enmSpeed == USBDEVICESPEED_VARIABLE ? "variable"
|
|
||||||
+ : "invalid"));
|
|
||||||
+ Log3(("Number of configurations: %d\n", pDev->bNumConfigurations));
|
|
||||||
+ Log3(("Bus number: %d\n", pDev->bBus));
|
|
||||||
+ Log3(("Port number: %d\n", pDev->bPort));
|
|
||||||
+ Log3(("Device number: %d\n", pDev->bDevNum));
|
|
||||||
+ Log3(("Device state: %s\n",
|
|
||||||
+ pDev->enmState == USBDEVICESTATE_UNSUPPORTED ? "unsupported"
|
|
||||||
+ : pDev->enmState == USBDEVICESTATE_USED_BY_HOST ? "in use by host"
|
|
||||||
+ : pDev->enmState == USBDEVICESTATE_USED_BY_HOST_CAPTURABLE ? "in use by host, possibly capturable"
|
|
||||||
+ : pDev->enmState == USBDEVICESTATE_UNUSED ? "not in use"
|
|
||||||
+ : pDev->enmState == USBDEVICESTATE_HELD_BY_PROXY ? "held by proxy"
|
|
||||||
+ : pDev->enmState == USBDEVICESTATE_USED_BY_GUEST ? "used by guest"
|
|
||||||
+ : "invalid"));
|
|
||||||
+ Log3(("OS device address: %s\n", pDev->pszAddress));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+PUSBDEVICE USBProxyBackendNetBSD::getDevices(void)
|
|
||||||
+{
|
|
||||||
+ PUSBDEVICE pDevices = NULL;
|
|
||||||
+ int FileUsb = 0;
|
|
||||||
+ int iBus = 0;
|
|
||||||
+ int iAddr = 1;
|
|
||||||
+ int rc = VINF_SUCCESS;
|
|
||||||
+ char *pszDevicePath = NULL;
|
|
||||||
+ uint32_t PlugTime = 0;
|
|
||||||
+
|
|
||||||
+ for (;;)
|
|
||||||
+ {
|
|
||||||
+ rc = RTStrAPrintf(&pszDevicePath, "/dev/%s%d.%d", USB_GENERIC_NAME, iBus, iAddr);
|
|
||||||
+ if (RT_FAILURE(rc))
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ LogFlowFunc((": Opening %s\n", pszDevicePath));
|
|
||||||
+
|
|
||||||
+ FileUsb = open(pszDevicePath, O_RDONLY);
|
|
||||||
+ if (FileUsb < 0)
|
|
||||||
+ {
|
|
||||||
+ RTStrFree(pszDevicePath);
|
|
||||||
+
|
|
||||||
+ if ((errno == ENOENT) && (iAddr > 1))
|
|
||||||
+ {
|
|
||||||
+ iAddr = 1;
|
|
||||||
+ iBus++;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ else if (errno == EACCES)
|
|
||||||
+ {
|
|
||||||
+ /* Skip devices without the right permission. */
|
|
||||||
+ iAddr++;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ LogFlowFunc((": %s opened successfully\n", pszDevicePath));
|
|
||||||
+
|
|
||||||
+ struct usb_device_info UsbDevInfo;
|
|
||||||
+ RT_ZERO(UsbDevInfo);
|
|
||||||
+
|
|
||||||
+ rc = ioctl(FileUsb, USB_GET_DEVICEINFO, &UsbDevInfo);
|
|
||||||
+ if (rc < 0)
|
|
||||||
+ {
|
|
||||||
+ LogFlowFunc((": Error querying device info rc=%Rrc\n", RTErrConvertFromErrno(errno)));
|
|
||||||
+ close(FileUsb);
|
|
||||||
+ RTStrFree(pszDevicePath);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Filter out hubs */
|
|
||||||
+ if (UsbDevInfo.udi_class != 0x09)
|
|
||||||
+ {
|
|
||||||
+ PUSBDEVICE pDevice = (PUSBDEVICE)RTMemAllocZ(sizeof(USBDEVICE));
|
|
||||||
+ if (!pDevice)
|
|
||||||
+ {
|
|
||||||
+ close(FileUsb);
|
|
||||||
+ RTStrFree(pszDevicePath);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ pDevice->enmState = USBDEVICESTATE_USED_BY_HOST_CAPTURABLE;
|
|
||||||
+ pDevice->bBus = UsbDevInfo.udi_bus;
|
|
||||||
+ pDevice->bPort = UsbDevInfo.udi_hubport;
|
|
||||||
+ pDevice->bDeviceClass = UsbDevInfo.udi_class;
|
|
||||||
+ pDevice->bDeviceSubClass = UsbDevInfo.udi_subclass;
|
|
||||||
+ pDevice->bDeviceProtocol = UsbDevInfo.udi_protocol;
|
|
||||||
+ pDevice->bNumConfigurations = UsbDevInfo.udi_config_no;
|
|
||||||
+ pDevice->idVendor = UsbDevInfo.udi_vendorNo;
|
|
||||||
+ pDevice->idProduct = UsbDevInfo.udi_productNo;
|
|
||||||
+ pDevice->bDevNum = UsbDevInfo.udi_index;
|
|
||||||
+
|
|
||||||
+ switch (UsbDevInfo.udi_speed)
|
|
||||||
+ {
|
|
||||||
+ case USB_SPEED_LOW:
|
|
||||||
+ pDevice->enmSpeed = USBDEVICESPEED_LOW;
|
|
||||||
+ break;
|
|
||||||
+ case USB_SPEED_FULL:
|
|
||||||
+ pDevice->enmSpeed = USBDEVICESPEED_FULL;
|
|
||||||
+ break;
|
|
||||||
+ case USB_SPEED_HIGH:
|
|
||||||
+ pDevice->enmSpeed = USBDEVICESPEED_HIGH;
|
|
||||||
+ break;
|
|
||||||
+ case USB_SPEED_SUPER:
|
|
||||||
+ pDevice->enmSpeed = USBDEVICESPEED_SUPER;
|
|
||||||
+ break;
|
|
||||||
+ case USB_SPEED_VARIABLE:
|
|
||||||
+ pDevice->enmSpeed = USBDEVICESPEED_VARIABLE;
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ pDevice->enmSpeed = USBDEVICESPEED_UNKNOWN;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (UsbDevInfo.udi_vendor[0] != '\0')
|
|
||||||
+ {
|
|
||||||
+ USBLibPurgeEncoding(UsbDevInfo.udi_vendor);
|
|
||||||
+ pDevice->pszManufacturer = RTStrDupN(UsbDevInfo.udi_vendor, sizeof(UsbDevInfo.udi_vendor));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (UsbDevInfo.udi_product[0] != '\0')
|
|
||||||
+ {
|
|
||||||
+ USBLibPurgeEncoding(UsbDevInfo.udi_product);
|
|
||||||
+ pDevice->pszProduct = RTStrDupN(UsbDevInfo.udi_product, sizeof(UsbDevInfo.udi_product));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (UsbDevInfo.udi_serial[0] != '\0')
|
|
||||||
+ {
|
|
||||||
+ USBLibPurgeEncoding(UsbDevInfo.udi_serial);
|
|
||||||
+ pDevice->pszSerialNumber = RTStrDupN(UsbDevInfo.udi_serial, sizeof(UsbDevInfo.udi_serial));
|
|
||||||
+ pDevice->u64SerialHash = USBLibHashSerial(UsbDevInfo.udi_serial);
|
|
||||||
+ }
|
|
||||||
+ rc = ioctl(FileUsb, USB_GET_PLUGTIME, &PlugTime);
|
|
||||||
+ if (rc == 0)
|
|
||||||
+ pDevice->u64SerialHash += PlugTime;
|
|
||||||
+
|
|
||||||
+ pDevice->pszAddress = RTStrDup(pszDevicePath);
|
|
||||||
+ pDevice->pszBackend = RTStrDup("host");
|
|
||||||
+
|
|
||||||
+ usbLogDevice(pDevice);
|
|
||||||
+
|
|
||||||
+ pDevice->pNext = pDevices;
|
|
||||||
+ if (pDevices)
|
|
||||||
+ pDevices->pPrev = pDevice;
|
|
||||||
+ pDevices = pDevice;
|
|
||||||
+ }
|
|
||||||
+ close(FileUsb);
|
|
||||||
+ RTStrFree(pszDevicePath);
|
|
||||||
+ iAddr++;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return pDevices;
|
|
||||||
+}
|
|
|
@ -1,36 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/libs/xpcom18a4/Config.kmk.orig 2018-12-18 13:01:16.000000000 +0000
|
|
||||||
+++ src/libs/xpcom18a4/Config.kmk
|
|
||||||
@@ -53,6 +53,7 @@ TEMPLATE_XPCOM_CXXFLAGS.release = -O
|
|
||||||
TEMPLATE_XPCOM_CXXFLAGS.profile = -O
|
|
||||||
TEMPLATE_XPCOM_CXXFLAGS.darwin = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
|
|
||||||
TEMPLATE_XPCOM_CXXFLAGS.freebsd = -pthread
|
|
||||||
+TEMPLATE_XPCOM_CXXFLAGS.netbsd = -pthread
|
|
||||||
TEMPLATE_XPCOM_CXXFLAGS.linux = -pthread
|
|
||||||
TEMPLATE_XPCOM_CXXFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
|
|
||||||
TEMPLATE_XPCOM_CFLAGS = -g -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden) \
|
|
||||||
@@ -62,6 +63,7 @@ TEMPLATE_XPCOM_CFLAGS.amd64 = -m6
|
|
||||||
TEMPLATE_XPCOM_CFLAGS.release = -O
|
|
||||||
TEMPLATE_XPCOM_CFLAGS.profile = -O
|
|
||||||
TEMPLATE_XPCOM_CFLAGS.freebsd = -pthread
|
|
||||||
+TEMPLATE_XPCOM_CFLAGS.netbsd = -pthread
|
|
||||||
TEMPLATE_XPCOM_CFLAGS.linux = -pthread -ansi
|
|
||||||
TEMPLATE_XPCOM_CFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
|
|
||||||
TEMPLATE_XPCOM_DEFS = \
|
|
||||||
@@ -80,6 +82,7 @@ TEMPLATE_XPCOM_DEFS.amd64 = HAV
|
|
||||||
TEMPLATE_XPCOM_DEFS.darwin = OSTYPE=\"Darwin8.8.1\" OSARCH=\"Darwin\" XP_UNIX=1 XP_MACOSX=1 TARGET_CARBON=1 HAVE_VISIBILITY_ATTRIBUTE=1 DARWIN=1 $(TEMPLATE_VBOXR3NP_DEFS.darwin)
|
|
||||||
TEMPLATE_XPCOM_DEFS.darwin.amd64 = VBOX_MACOSX_FOLLOWS_UNIX_IO
|
|
||||||
TEMPLATE_XPCOM_DEFS.freebsd = OSTYPE=\"FreeBSD5+\" OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
|
|
||||||
+TEMPLATE_XPCOM_DEFS.netbsd = OSTYPE=\"NetBSD8\" OSARCH=\"NetBSD\" XP_UNIX=1 NETBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
|
|
||||||
TEMPLATE_XPCOM_DEFS.linux = OSTYPE=\"Linux2.6\" OSARCH=\"Linux\" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
|
|
||||||
# Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP
|
|
||||||
TEMPLATE_XPCOM_DEFS.os2 = OSTYPE=\"OS/2_4.5\" OSARCH=\"OS/2\" XP_OS2 XP_PC OS2=4
|
|
||||||
@@ -173,6 +176,7 @@ TEMPLATE_XPCOMEXE_LIBS = \
|
|
||||||
$(VBoxXPCOM_1_TARGET) \
|
|
||||||
$(TEMPLATE_XPCOM_LIBS)
|
|
||||||
TEMPLATE_XPCOMEXE_LIBS.freebsd = $(LIB_PTHREAD)
|
|
||||||
+TEMPLATE_XPCOMEXE_LIBS.netbsd = $(LIB_PTHREAD)
|
|
||||||
TEMPLATE_XPCOMEXE_LIBS.linux = dl $(LIB_PTHREAD)
|
|
||||||
TEMPLATE_XPCOMEXE_LDFLAGS.darwin = -bind_at_load $(filter-out -current_version -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPCOM_LDFLAGS.darwin))
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/libs/xpcom18a4/Makefile.kmk.orig 2018-12-18 13:01:16.000000000 +0000
|
|
||||||
+++ src/libs/xpcom18a4/Makefile.kmk
|
|
||||||
@@ -537,6 +537,7 @@ VBox-xpcom-nspr_DEFS.linux = \
|
|
||||||
_PR_PTHREADS
|
|
||||||
# _BSD_SOURCE is here to keep the Glibc header files happy and make them include the right things
|
|
||||||
VBox-xpcom-nspr_DEFS.netbsd = \
|
|
||||||
+ NETBSD=1 \
|
|
||||||
_PR_PTHREADS
|
|
||||||
VBox-xpcom-nspr_DEFS.openbsd = \
|
|
||||||
_PR_PTHREADS
|
|
||||||
@@ -629,6 +630,7 @@ VBox-xpcom-nspr_SOURCES.darwin = nsprpub
|
|
||||||
VBox-xpcom-nspr_SOURCES.darwin.x86 = nsprpub/pr/src/md/unix/os_Darwin_x86.s
|
|
||||||
|
|
||||||
VBox-xpcom-nspr_SOURCES.freebsd = nsprpub/pr/src/md/unix/freebsd.c
|
|
||||||
+VBox-xpcom-nspr_SOURCES.netbsd = nsprpub/pr/src/md/unix/netbsd.c
|
|
||||||
|
|
||||||
VBox-xpcom-nspr_SOURCES.linux = nsprpub/pr/src/md/unix/linux.c
|
|
||||||
VBox-xpcom-nspr_SOURCES.linux.x86 = nsprpub/pr/src/md/unix/os_Linux_x86.s
|
|
||||||
@@ -870,6 +872,10 @@ VBox-xpcom-xptcall_SOURCES.freebsd.x86 =
|
|
||||||
xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
|
|
||||||
VBox-xpcom-xptcall_SOURCES.freebsd.amd64=xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
|
|
||||||
xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
|
|
||||||
+VBox-xpcom-xptcall_SOURCES.netbsd.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
|
|
||||||
+ xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
|
|
||||||
+VBox-xpcom-xptcall_SOURCES.netbsd.amd64= xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
|
|
||||||
+ xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
|
|
||||||
VBox-xpcom-xptcall_SOURCES.linux.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
|
|
||||||
xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
|
|
||||||
VBox-xpcom-xptcall_SOURCES.linux.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
|
|
|
@ -1,13 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/libs/xpcom18a4/nsprpub/pr/include/md/_netbsd.h.orig 2018-12-18 13:01:23.000000000 +0000
|
|
||||||
+++ src/libs/xpcom18a4/nsprpub/pr/include/md/_netbsd.h
|
|
||||||
@@ -57,6 +57,8 @@
|
|
||||||
#elif defined(__arm32__) || defined(__arm__) || defined(__armel__) \
|
|
||||||
|| defined(__armeb__)
|
|
||||||
#define _PR_SI_ARCHITECTURE "arm"
|
|
||||||
+#elif defined(__amd64__)
|
|
||||||
+#define _PR_SI_ARCHITECTURE "amd64"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__ELF__)
|
|
|
@ -1,13 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/libs/xpcom18a4/nsprpub/pr/include/md/_pth.h.orig 2018-12-18 13:01:23.000000000 +0000
|
|
||||||
+++ src/libs/xpcom18a4/nsprpub/pr/include/md/_pth.h
|
|
||||||
@@ -231,7 +231,7 @@
|
|
||||||
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
|
|
||||||
#endif /* defined(_PR_DCETHREADS) */
|
|
||||||
|
|
||||||
-#elif defined(LINUX) || defined(FREEBSD)
|
|
||||||
+#elif defined(LINUX) || defined(FREEBSD) || defined(NETBSD)
|
|
||||||
#define PT_PRIO_MIN sched_get_priority_min(SCHED_OTHER)
|
|
||||||
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
|
|
||||||
#elif defined(NTO)
|
|
|
@ -1,13 +0,0 @@
|
||||||
$NetBSD$
|
|
||||||
|
|
||||||
--- src/libs/xpcom18a4/nsprpub/pr/src/linking/prlink.c.orig 2018-12-18 13:01:26.000000000 +0000
|
|
||||||
+++ src/libs/xpcom18a4/nsprpub/pr/src/linking/prlink.c
|
|
||||||
@@ -1810,7 +1810,7 @@ PR_LoadStaticLibrary(const char *name, c
|
|
||||||
PR_IMPLEMENT(char *)
|
|
||||||
PR_GetLibraryFilePathname(const char *name, PRFuncPtr addr)
|
|
||||||
{
|
|
||||||
-#if defined(SOLARIS) || defined(LINUX) || defined(FREEBSD)
|
|
||||||
+#if defined(SOLARIS) || defined(LINUX) || defined(FREEBSD) || defined(NETBSD)
|
|
||||||
Dl_info dli;
|
|
||||||
char *result;
|
|
||||||
|
|
Loading…
Reference in New Issue