|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
thermal.h
Abstract:
This module implements all the callbacks that are NT specific from the AML Interperter
Environment
Kernel mode only
Revision History:
04-Jun-97 Initial Revision
--*/
#ifndef _THERMAL_H_
#define _THERMAL_H_
//
// Structures
//
typedef struct { THERMAL_INFORMATION Info; ULONG CoolingLevel; ULONG Mode; PVOID ActiveList[10]; PNSOBJ TempMethod; OBJDATA Temp; } THRM_INFO, *PTHRM_INFO;
extern WMIGUIDREGINFO ACPIThermalGuidList; extern KSPIN_LOCK AcpiThermalLock; extern LIST_ENTRY AcpiThermalList;
#define ACPIThermalGuidCount (sizeof(ACPIThermalGuidList) / sizeof(WMIGUIDREGINFO))
//
// Defines
//
#define THRM_COOLING_LEVEL 0x00000001
#define THRM_TEMP 0x00000002
#define THRM_TRIP_POINTS 0x00000004
#define THRM_MODE 0x00000008
#define THRM_INITIALIZE 0x00000010
#define THRM_WAIT_FOR_NOTIFY 0x20000000
#define THRM_BUSY 0x40000000
#define THRM_IN_SERVICE_LOOP 0x80000000
//
// Prototypes
//
VOID ACPIThermalCalculateProcessorMask( IN PNSOBJ ProcessorObject, IN PTHRM_INFO Thrm );
VOID ACPIThermalCancelRequest ( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
VOID EXPORT ACPIThermalComplete( IN PNSOBJ AcpiObject, IN NTSTATUS Status, IN POBJDATA Result OPTIONAL, IN PVOID DevExt );
BOOLEAN ACPIThermalCompletePendingIrps( IN PDEVICE_EXTENSION DeviceExtension, IN PTHRM_INFO Thermal );
NTSTATUS ACPIThermalDeviceControl( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
VOID ACPIThermalEvent( IN PDEVICE_OBJECT DeviceObject, IN ULONG EventData );
NTSTATUS ACPIThermalFanStartDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
VOID ACPIThermalLoop( IN PDEVICE_EXTENSION DeviceExtension, IN ULONG Clear );
VOID ACPIThermalPowerCallback( IN PDEVICE_EXTENSION DeviceExtenion, IN PVOID Context, IN NTSTATUS Status );
NTSTATUS ACPIThermalQueryWmiDataBlock( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN ULONG GuidIndex, IN ULONG InstanceIndex, IN ULONG InstanceCount, IN OUT PULONG InstanceLengthArray, IN ULONG BufferAvail, OUT PUCHAR Buffer );
NTSTATUS ACPIThermalQueryWmiRegInfo( IN PDEVICE_OBJECT DeviceObject, OUT ULONG *RegFlags, OUT PUNICODE_STRING InstanceName, OUT PUNICODE_STRING *RegistryPath, OUT PUNICODE_STRING MofResourceName, OUT PDEVICE_OBJECT *Pdo );
NTSTATUS ACPIThermalStartDevice( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
VOID EXPORT ACPIThermalTempatureRead ( IN PNSOBJ AcpiObject, IN NTSTATUS Status, IN POBJDATA Result OPTIONAL, IN PVOID DevExt );
VOID ACPIThermalWorker ( IN PDEVICE_EXTENSION DevExt, IN ULONG Events );
NTSTATUS ACPIThermalWmi( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
#endif
|