#ifndef __IOKIT_IOACPITYPES_H
#define __IOKIT_IOACPITYPES_H
#include <IOKit/IOMessage.h>
extern const IORegistryPlane * gIOACPIPlane;
extern const OSSymbol * gIOACPIHardwareIDKey;
extern const OSSymbol * gIOACPIUniqueIDKey;
extern const OSSymbol * gIOACPIAddressKey;
extern const OSSymbol * gIOACPIDeviceStatusKey;
#pragma pack(1)
struct IOACPIAddressSpaceDescriptor {
UInt32 resourceType;
UInt32 generalFlags;
UInt32 typeSpecificFlags;
UInt32 reserved1;
UInt64 granularity;
UInt64 minAddressRange;
UInt64 maxAddressRange;
UInt64 translationOffset;
UInt64 addressLength;
UInt64 reserved2;
UInt64 reserved3;
UInt64 reserved4;
};
enum {
kIOACPIMemoryRange = 0,
kIOACPIIORange = 1,
kIOACPIBusNumberRange = 2
};
typedef UInt32 IOACPIAddressSpaceID;
enum {
kIOACPIAddressSpaceIDSystemMemory = 0,
kIOACPIAddressSpaceIDSystemIO = 1,
kIOACPIAddressSpaceIDPCIConfiguration = 2,
kIOACPIAddressSpaceIDEmbeddedController = 3,
kIOACPIAddressSpaceIDSMBus = 4
};
enum {
kIOACPIAddressSpaceOpRead = 0,
kIOACPIAddressSpaceOpWrite = 1
};
union IOACPIAddress {
UInt64 addr64;
struct {
UInt16 offset;
UInt16 function;
UInt16 device;
UInt8 bus;
UInt8 reserved;
} pci;
};
typedef IOReturn (*IOACPIAddressSpaceHandler)( UInt32 operation,
IOACPIAddress address,
UInt64 * value,
UInt32 bitWidth,
UInt32 bitOffset,
void * context );
enum {
kIOACPIFixedEventPMTimer = 0,
kIOACPIFixedEventPowerButton = 2,
kIOACPIFixedEventSleepButton = 3,
kIOACPIFixedEventRealTimeClock = 4
};
#pragma pack()
#ifndef sub_iokit_acpi
#define sub_iokit_acpi err_sub(10)
#endif
#define kIOACPIMessageDeviceNotification iokit_family_msg(sub_iokit_acpi, 0x10)
enum {
kIOACPIDevicePowerStateD0 = 0,
kIOACPIDevicePowerStateD1 = 1,
kIOACPIDevicePowerStateD2 = 2,
kIOACPIDevicePowerStateD3 = 3,
kIOACPIDevicePowerStateCount = 4
};
#endif