6739cf90e4aa3b3344768b8da241802f80ff455cvboxsync/* $Id$ */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync/** @file
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * VirtualBox USB Proxy Service class, test version for Linux hosts.
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync/*
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync * Copyright (C) 2008-2010 Oracle Corporation
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync *
b642fb1edcf7e8c0ddb37bed00c3960e9368e5e1vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
b642fb1edcf7e8c0ddb37bed00c3960e9368e5e1vboxsync * available from http://www.virtualbox.org. This file is free software;
b642fb1edcf7e8c0ddb37bed00c3960e9368e5e1vboxsync * you can redistribute it and/or modify it under the terms of the GNU
b642fb1edcf7e8c0ddb37bed00c3960e9368e5e1vboxsync * General Public License (GPL) as published by the Free Software
b642fb1edcf7e8c0ddb37bed00c3960e9368e5e1vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
b642fb1edcf7e8c0ddb37bed00c3960e9368e5e1vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
b642fb1edcf7e8c0ddb37bed00c3960e9368e5e1vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#ifndef ____H_TSTUSBLINUX
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#define ____H_TSTUSBLINUX
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsynctypedef int HRESULT;
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsyncenum { S_OK = 0, E_NOTIMPL = 1 };
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#include <VBox/usb.h>
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#include <VBox/usbfilter.h>
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#include <VBox/err.h>
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#ifdef VBOX_USB_WITH_SYSFS
f74e35c55b43bdbc2d2ac21d61ac77ab764deadcvboxsync# include <libhal.h>
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#endif
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#include <stdio.h>
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync/**
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * The Linux hosted USB Proxy Service.
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsyncclass USBProxyServiceLinux
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync{
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsyncpublic:
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync USBProxyServiceLinux()
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync : mLastError(VINF_SUCCESS)
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync {}
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync HRESULT initSysfs(void);
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync PUSBDEVICE getDevicesFromSysfs(void);
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync int getLastError(void)
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync {
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync return mLastError;
e07acfb7f2dbb8bb40804024c79fd3139bdb3f24vboxsync }
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsyncprivate:
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync int start(void) { return VINF_SUCCESS; }
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync static void freeDevice(PUSBDEVICE) {} /* We don't care about leaks in a test. */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync int usbProbeInterfacesFromLibhal(const char *pszHalUuid, PUSBDEVICE pDev);
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync int mLastError;
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync# ifdef VBOX_USB_WITH_SYSFS
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync /** Our connection to DBus for getting information from hal. This will be
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * NULL if the initialisation failed. */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync DBusConnection *mDBusConnection;
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync /** Handle to libhal. */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync LibHalContext *mLibHalContext;
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync# endif
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync};
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#endif /* !____H_TSTUSBLINUX */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync