tstUSBLinux.h revision c8278c7ae01edc83719fb99af38f040cc8c495ea
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync/* $Id $ */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync/** @file
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * VirtualBox USB Proxy Service class, test version for Linux hosts.
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync/*
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * Copyright (C) 2008 Sun Microsystems, Inc.
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync *
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * Sun Microsystems, Inc. confidential
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * All rights reserved
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
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync# include "libhal.h"
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#endif
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync#include <stdio.h>
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync/**
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync * The Linux hosted USB Proxy Service.
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync */
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsyncclass USBProxyServiceLinux
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync{
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsyncpublic:
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync USBProxyServiceLinux() : mLastError(VINF_SUCCESS) {}
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync HRESULT initSysfs(void);
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync PUSBDEVICE getDevicesFromSysfs(void);
c8278c7ae01edc83719fb99af38f040cc8c495eavboxsync int getLastError(void) { return mLastError; }
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