tstUSBLinux.h revision f74e35c55b43bdbc2d2ac21d61ac77ab764deadc
af062818b47340eef15700d2f0211576ba3506eevboxsync/* $Id $ */
af062818b47340eef15700d2f0211576ba3506eevboxsync/** @file
af062818b47340eef15700d2f0211576ba3506eevboxsync * VirtualBox USB Proxy Service class, test version for Linux hosts.
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2008 Sun Microsystems, Inc.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * Sun Microsystems, Inc. confidential
af062818b47340eef15700d2f0211576ba3506eevboxsync * All rights reserved
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef ____H_TSTUSBLINUX
af062818b47340eef15700d2f0211576ba3506eevboxsync#define ____H_TSTUSBLINUX
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef int HRESULT;
af062818b47340eef15700d2f0211576ba3506eevboxsyncenum { S_OK = 0, E_NOTIMPL = 1 };
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync#include <VBox/usb.h>
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync#include <VBox/usbfilter.h>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#include <VBox/err.h>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#ifdef VBOX_USB_WITH_SYSFS
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync# include <libhal.h>
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#include <stdio.h>
af062818b47340eef15700d2f0211576ba3506eevboxsync/**
af062818b47340eef15700d2f0211576ba3506eevboxsync * The Linux hosted USB Proxy Service.
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsyncclass USBProxyServiceLinux
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsyncpublic:
af062818b47340eef15700d2f0211576ba3506eevboxsync USBProxyServiceLinux() : mLastError(VINF_SUCCESS) {}
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT initSysfs(void);
af062818b47340eef15700d2f0211576ba3506eevboxsync PUSBDEVICE getDevicesFromSysfs(void);
af062818b47340eef15700d2f0211576ba3506eevboxsync int getLastError(void) { return mLastError; }
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncprivate:
af062818b47340eef15700d2f0211576ba3506eevboxsync int start(void) { return VINF_SUCCESS; }
af062818b47340eef15700d2f0211576ba3506eevboxsync static void freeDevice(PUSBDEVICE) {} /* We don't care about leaks in a test. */
af062818b47340eef15700d2f0211576ba3506eevboxsync int usbProbeInterfacesFromLibhal(const char *pszHalUuid, PUSBDEVICE pDev);
af062818b47340eef15700d2f0211576ba3506eevboxsync int mLastError;
af062818b47340eef15700d2f0211576ba3506eevboxsync# ifdef VBOX_USB_WITH_SYSFS
af062818b47340eef15700d2f0211576ba3506eevboxsync /** Our connection to DBus for getting information from hal. This will be
af062818b47340eef15700d2f0211576ba3506eevboxsync * NULL if the initialisation failed. */
af062818b47340eef15700d2f0211576ba3506eevboxsync DBusConnection *mDBusConnection;
af062818b47340eef15700d2f0211576ba3506eevboxsync /** Handle to libhal. */
af062818b47340eef15700d2f0211576ba3506eevboxsync LibHalContext *mLibHalContext;
af062818b47340eef15700d2f0211576ba3506eevboxsync# endif
af062818b47340eef15700d2f0211576ba3506eevboxsync};
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* !____H_TSTUSBLINUX */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync