iokit.h revision e45ccb294fc1f6b4078d058eaff86100361a7358
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/* $Id$ */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/** @file
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * Main - Darwin IOKit Routines.
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/*
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * Copyright (C) 2006-2007 Oracle Corporation
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync *
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * available from http://www.virtualbox.org. This file is free software;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * you can redistribute it and/or modify it under the terms of the GNU
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * General Public License (GPL) as published by the Free Software
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#ifndef ___darwin_iokit_h___
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#define ___darwin_iokit_h___
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#include <iprt/cdefs.h>
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#include <iprt/types.h>
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#ifdef VBOX_WITH_USB
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync# include <VBox/usb.h>
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#endif
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/**
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * Darwin DVD descriptor as returned by DarwinGetDVDDrives().
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsynctypedef struct DARWINDVD
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync{
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Pointer to the next DVD. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync struct DARWINDVD *pNext;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Variable length name / identifier. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync char szName[1];
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync} DARWINDVD;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/** Pointer to a Darwin DVD descriptor. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsynctypedef DARWINDVD *PDARWINDVD;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/**
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * Darwin ethernet controller descriptor as returned by DarwinGetEthernetControllers().
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsynctypedef struct DARWINETHERNIC
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync{
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Pointer to the next NIC. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync struct DARWINETHERNIC *pNext;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** The BSD name. (like en0)*/
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync char szBSDName[16];
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** The fake unique identifier. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync RTUUID Uuid;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** The MAC address. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync RTMAC Mac;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Whether it's wireless (true) or wired (false). */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync bool fWireless;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Whether it is an AirPort device. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync bool fAirPort;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Whether it's built in or not. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync bool fBuiltin;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Whether it's a USB device or not. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync bool fUSB;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** Whether it's the primary interface. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync bool fPrimaryIf;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync /** A variable length descriptive name if possible. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync char szName[1];
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync} DARWINETHERNIC;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/** Pointer to a Darwin ethernet controller descriptor. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsynctypedef DARWINETHERNIC *PDARWINETHERNIC;
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync/** The run loop mode string used by iokit.cpp when it registers
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync * notifications events. */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#define VBOX_IOKIT_MODE_STRING "VBoxIOKitMode"
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncRT_C_DECLS_BEGIN
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#ifdef VBOX_WITH_USB
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncvoid * DarwinSubscribeUSBNotifications(void);
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncvoid DarwinUnsubscribeUSBNotifications(void *pvOpaque);
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncPUSBDEVICE DarwinGetUSBDevices(void);
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncvoid DarwinFreeUSBDeviceFromIOKit(PUSBDEVICE pCur);
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncint DarwinReEnumerateUSBDevice(PCUSBDEVICE pCur);
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#endif /* VBOX_WITH_USB */
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncPDARWINDVD DarwinGetDVDDrives(void);
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncPDARWINETHERNIC DarwinGetEthernetControllers(void);
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsyncRT_C_DECLS_END
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync#endif
8c48cf39dfb84c1f26e0e7fbd1c407e25a34eef1vboxsync