1
/* $Id: iokit.h 33540 2010-10-28 09:27:05Z vboxsync $ */
3
* Main - Darwin IOKit Routines.
7
* Copyright (C) 2006-2007 Oracle Corporation
9
* This file is part of VirtualBox Open Source Edition (OSE), as
10
* available from http://www.virtualbox.org. This file is free software;
11
* you can redistribute it and/or modify it under the terms of the GNU
12
* General Public License (GPL) as published by the Free Software
13
* Foundation, in version 2 as it comes in the "COPYING" file of the
14
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18
#ifndef ___darwin_iokit_h___
19
#define ___darwin_iokit_h___
21
#include <iprt/cdefs.h>
22
#include <iprt/types.h>
24
# include <VBox/usb.h>
28
* Darwin DVD descriptor as returned by DarwinGetDVDDrives().
30
typedef struct DARWINDVD
32
/** Pointer to the next DVD. */
33
struct DARWINDVD *pNext;
34
/** Variable length name / identifier. */
37
/** Pointer to a Darwin DVD descriptor. */
38
typedef DARWINDVD *PDARWINDVD;
42
* Darwin ethernet controller descriptor as returned by DarwinGetEthernetControllers().
44
typedef struct DARWINETHERNIC
46
/** Pointer to the next NIC. */
47
struct DARWINETHERNIC *pNext;
48
/** The BSD name. (like en0)*/
50
/** The fake unique identifier. */
52
/** The MAC address. */
54
/** Whether it's wireless (true) or wired (false). */
56
/** Whether it is an AirPort device. */
58
/** Whether it's built in or not. */
60
/** Whether it's a USB device or not. */
62
/** Whether it's the primary interface. */
64
/** A variable length descriptive name if possible. */
67
/** Pointer to a Darwin ethernet controller descriptor. */
68
typedef DARWINETHERNIC *PDARWINETHERNIC;
71
/** The run loop mode string used by iokit.cpp when it registers
72
* notifications events. */
73
#define VBOX_IOKIT_MODE_STRING "VBoxIOKitMode"
77
void * DarwinSubscribeUSBNotifications(void);
78
void DarwinUnsubscribeUSBNotifications(void *pvOpaque);
79
PUSBDEVICE DarwinGetUSBDevices(void);
80
void DarwinFreeUSBDeviceFromIOKit(PUSBDEVICE pCur);
81
int DarwinReEnumerateUSBDevice(PCUSBDEVICE pCur);
82
#endif /* VBOX_WITH_USB */
83
PDARWINDVD DarwinGetDVDDrives(void);
84
PDARWINETHERNIC DarwinGetEthernetControllers(void);