📄 pwr.h
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
#ifndef _PWR_DRV_H_
#define _PWR_DRV_H_
#include <pm.h>
#include <windows.h>
#include <ceddk.h>
#include <nkintr.h>
#include "gpiodrv.h"
#define THRDPRI_BATT_FLT 100
#define THRDPRI_POWER 101
#define POWER_THREAD_PRIORITY THRDPRI_POWER
typedef enum _PWR_STATE {
UNINITIALIZED,
INITIALIZE,
RUN,
SUSPEND,
RESUME,
ADC_ERROR,
} PWR_STATE, *PPWR_STATE;
#define PCF_SIG ' FCP'
#define VALID_CONTEXT( p ) \
( p && p->Sig && PCF_SIG == p->Sig )
// PWR_CONTEXT
#pragma pack(1)
typedef struct _PWR_CONTEXT
{
DWORD Sig; // Signature
// Saved our OOCS & INTx registers during init/reset/resume
// because they are cleared on read, so we loose them.
UCHAR ResetReg[4];
BOOL ResetRegReady;
volatile GPIO_REGS *pIORegs;
PWR_STATE State;
CRITICAL_SECTION RegCS;
HANDLE hI2C; // I2C Bus Driver
HANDLE hUtil; // UTIL Driver to map in VA
HANDLE IST;
HANDLE ISTEvent;
HANDLE hBATT_FLT_IST;
HANDLE hBATT_FLT_Event;
DWORD OpenCount;
//
// System Global Events
//
HANDLE hADC; // A-to-D Conversion Done
HANDLE hTSCPRES; // Touch Pressed
CEDEVICE_POWER_STATE Dx;
} PWR_CONTEXT, *PPWR_CONTEXT;
#pragma pack()
// (logical) PDD functions
DWORD HW_Init(PPWR_CONTEXT pPWR);
DWORD HW_Deinit(PPWR_CONTEXT pPWR);
DWORD HW_Open(PPWR_CONTEXT pPWR);
DWORD HW_Close(PPWR_CONTEXT pPWR);
DWORD HW_Read( PPWR_CONTEXT pPWR,
DWORD slvAddr, // target slave address
UCHAR addr, // starting slave word address
PUCHAR pData, // buffer
DWORD count); // nBytes to read
DWORD HW_Write( PPWR_CONTEXT pPWR,
DWORD slvAddr, // target slave address
UCHAR addr, // starting slave word address
PUCHAR pData, // buffer
DWORD count); // nBytes to write
BOOL HW_IOControl( PPWR_CONTEXT pPWR,
DWORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut);
BOOL HW_PowerUp(PPWR_CONTEXT pPWR);
BOOL HW_PowerDown(PPWR_CONTEXT pPWR);
BOOL HW_PowerCapabilities(PPWR_CONTEXT pPWR,PPOWER_CAPABILITIES ppc);
BOOL HW_PowerSet(PPWR_CONTEXT pPWR,PCEDEVICE_POWER_STATE pDx);
BOOL HW_PowerGet(PPWR_CONTEXT pPWR,PCEDEVICE_POWER_STATE pDx);
#endif _PWR_DRV_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -