亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pwr.h

?? windows ce 50 drive program
?? 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 "s2440.h"
#include "drv_glob.h"
#include "utldrv.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 PDRIVER_GLOBALS pDriverGlobals;

    volatile IOPreg * pIORegs;

    PWR_STATE   State;

    CRITICAL_SECTION RegCS;

    HANDLE          hI2C;   // I2C Bus Driver
    HANDLE          hUtil;   // UTIL Driver to map in VA
    UTL_FASTCALL    utlFc;
	
    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()




// Registry names 
#define REG_MODE_VAL_NAME TEXT("Mode") 
#define REG_MODE_VAL_LEN  sizeof( DWORD )

#define REG_SLAVEADDR_VAL_NAME TEXT("SlaveAddress") 
#define REG_SLAVEADDR_VAL_LEN  sizeof( DWORD )

#define REG_IRQ_VAL_NAME TEXT("IRQ") 
#define REG_IRQ_VAL_LEN  sizeof( DWORD )

#define REG_IOBASE_VAL_NAME TEXT("IoBase") 
#define REG_IOBASE_VAL_LEN  sizeof( DWORD )
#define REG_IOLEN_VAL_NAME TEXT("IoLen") 
#define REG_IOLEN_VAL_LEN  sizeof( DWORD )

#define REG_CONFIGBASE_VAL_NAME TEXT("ConfigBase") 
#define REG_CONFIGBASE_VAL_LEN  sizeof( DWORD )
#define REG_CONFIGLEN_VAL_NAME TEXT("ConfigLen") 
#define REG_CONFIGLEN_VAL_LEN  sizeof( DWORD )


//
// (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
   );


#ifdef IMGEBOOT
#define DEBUGBREAK      DebugBreak
#else
#define DEBUGBREAK()
#endif

#ifndef SHIP_BUILD

DBGPARAM dpCurSettings;

#define ZONE_ERR            DEBUGZONE(0)
#define ZONE_WRN            DEBUGZONE(1)
#undef  ZONE_INIT
#define ZONE_INIT           DEBUGZONE(2)
#define ZONE_OPEN           DEBUGZONE(3)
#define ZONE_READ           DEBUGZONE(4)
#define ZONE_WRITE          DEBUGZONE(5)
#define ZONE_IOCTL          DEBUGZONE(6)
#define ZONE_IST            DEBUGZONE(7)
#define ZONE_REG            DEBUGZONE(8)
#define ZONE_REG_DUMP       DEBUGZONE(9)
#define ZONE_ADC            DEBUGZONE(10)
#define ZONE_BATT           DEBUGZONE(11)
#define ZONE_EVENTS         DEBUGZONE(12)
#define ZONE_POWER          DEBUGZONE(13)
//...
#define ZONE_TRACE          DEBUGZONE(15)

#define DUMP_INTx()                                           \
{                                                             \
    DEBUGMSG(ZONE_REG,(TEXT("INT1: 0x%.2x\r\n"), pPWR->Reg[INT1]));    \
    DEBUGMSG(ZONE_REG,(TEXT("INT2: 0x%.2x\r\n"), pPWR->Reg[INT2]));    \
    DEBUGMSG(ZONE_REG,(TEXT("INT3: 0x%.2x\r\n"), pPWR->Reg[INT3]));    \
}

#define DUMP_INTxM()                                            \
{                                                               \
    DEBUGMSG(ZONE_REG,(TEXT("INT1M: 0x%.2x\r\n"), pPWR->Reg[INT1M]));    \
    DEBUGMSG(ZONE_REG,(TEXT("INT2M: 0x%.2x\r\n"), pPWR->Reg[INT2M]));    \
    DEBUGMSG(ZONE_REG,(TEXT("INT3M: 0x%.2x\r\n"), pPWR->Reg[INT3M]));    \
}

#define DUMP_RTC()                                              \
{                                                               \
    DEBUGMSG(ZONE_REG,(TEXT("RTC.0[yr:mo:day:wkd] (hr:min:sec) : [%.2u:%.2u:%.2u:%.2u] (%.2u:%.2u:%.2u) \r\n"),   \
    FROM_BCD(pPWR->Reg[RTCYR])+2000, FROM_BCD(pPWR->Reg[RTCMT]), FROM_BCD(pPWR->Reg[RTCDT]), pPWR->Reg[RTCWD], \
    FROM_BCD(pPWR->Reg[RTCHR]), FROM_BCD(pPWR->Reg[RTCMN]), FROM_BCD(pPWR->Reg[RTCSC]) )); \
}

#define DUMP_REGS(StartReg, nRegs)                                                              \
{                                                                                               \
    DWORD i;                                                                                    \
    RETAILMSG(1,(TEXT("PCF50606 Reg [0x%X - 0x%X] { \r\n"), StartReg, StartReg+nRegs-1)); \
    for (i = StartReg; i < StartReg+nRegs; i++) {                                               \
        RETAILMSG(1,(TEXT("\t [0x%.2X] : 0x%.2x \r\n"), i, pPWR->Reg[i]));                        \
    }                                                                                           \
    RETAILMSG(1,(TEXT("} \r\n")));                                                              \
}

//
// these should be removed in the code if you can 'g' past these successfully
//
#define TEST_TRAP { \
    NKDbgPrintfW( TEXT("%s: Code Coverage Trap in: PWR, Line: %d\n"), TEXT(__FILE__), __LINE__); \
    DEBUGBREAK();  \
}

#else
#define TEST_TRAP
#define ZONE_REG_DUMP   0

#define DUMP_INTx()
#define DUMP_INTxM()
#define DUMP_RTC()
#define DUMP_REGS(StartReg, nRegs)
#endif


#endif _PWR_DRV_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区中文字幕在线| 日韩一级在线观看| 亚洲成人黄色小说| 久久综合久久99| 在线影院国内精品| 狠狠色伊人亚洲综合成人| 欧美国产成人在线| 免费久久精品视频| 日韩精品一区国产麻豆| 99精品久久免费看蜜臀剧情介绍 | 视频一区中文字幕国产| 国产欧美日韩视频在线观看| 制服丝袜中文字幕一区| 日韩一卡二卡三卡国产欧美| 欧洲视频一区二区| 99久久精品免费| 国产综合成人久久大片91| 日韩精品成人一区二区在线| 亚洲猫色日本管| 国产精品网站在线| 欧美精品一区二区在线观看| 欧美午夜在线一二页| 99久久久久久| 不卡视频在线观看| 国产成人精品aa毛片| 国产高清久久久| 国内精品不卡在线| 久久国产精品第一页| 亚洲国产欧美在线| 亚洲一区中文日韩| 一区二区三区色| 亚洲免费av高清| 亚洲综合在线免费观看| 亚洲欧洲av色图| 综合婷婷亚洲小说| 中文字幕亚洲成人| 亚洲色图19p| 亚洲精品ww久久久久久p站| 中文字幕人成不卡一区| 自拍偷拍亚洲综合| 亚洲女人****多毛耸耸8| 亚洲精品成a人| 亚洲一区二区偷拍精品| 天天av天天翘天天综合网 | 欧美老肥妇做.爰bbww视频| 日本高清无吗v一区| 91国在线观看| 欧美日韩免费观看一区二区三区| 在线观看欧美日本| 欧美日韩另类一区| 91精品国产一区二区三区蜜臀| 欧美高清性hdvideosex| 日韩欧美中文字幕公布| 久久久99精品免费观看不卡| 国产精品三级久久久久三级| 亚洲天堂久久久久久久| 亚洲一区二区欧美日韩| 日本v片在线高清不卡在线观看| 欧美aaaaa成人免费观看视频| 精品一区二区在线播放| 成人久久18免费网站麻豆| 91福利精品第一导航| 欧美精品v国产精品v日韩精品| 欧美一级夜夜爽| 国产亚洲一区二区在线观看| 亚洲品质自拍视频网站| 日韩黄色在线观看| 国产精品1区二区.| 色老汉一区二区三区| 日韩一级高清毛片| 中文字幕中文字幕一区| 亚洲高清不卡在线| 激情综合亚洲精品| jizzjizzjizz欧美| 欧美年轻男男videosbes| 精品国产凹凸成av人网站| 中文字幕一区二区视频| 亚洲va欧美va人人爽| 国产成人aaa| 欧美区在线观看| 欧美国产在线观看| 午夜国产不卡在线观看视频| 国产美女在线观看一区| 色视频欧美一区二区三区| 久久久精品天堂| 岛国av在线一区| 99久久精品99国产精品| 欧美日韩综合在线| 欧美精品一区二区三区蜜桃视频| 国产精品的网站| 日本伊人色综合网| 成人免费视频视频在线观看免费 | 久久精品国产在热久久| 不卡的av电影在线观看| 欧美一区二区三区四区在线观看| 中文字幕日韩精品一区| 蜜臀久久99精品久久久久宅男| 99国产精品一区| 久久综合九色综合欧美就去吻| 亚洲一区二区三区免费视频| 国产成a人亚洲精| 日韩免费电影网站| 亚洲国产综合91精品麻豆| 粉嫩高潮美女一区二区三区| 91精品综合久久久久久| 亚洲男同性视频| 国产精品一区一区三区| 国产精品99久久久久久有的能看| 91精品国产欧美一区二区| 亚洲综合视频网| 99riav久久精品riav| 国产亚洲午夜高清国产拍精品| 日韩国产精品大片| 欧美日本一区二区三区| 亚洲精品日韩一| eeuss鲁一区二区三区| 国产偷国产偷亚洲高清人白洁| 免费成人小视频| 欧美一区二区在线看| 亚洲国产精品久久久男人的天堂| 色综合久久久久综合体| 国产精品国产三级国产有无不卡| 激情综合色丁香一区二区| 91精品国产综合久久精品app| 亚洲最新在线观看| 色吊一区二区三区| 亚洲欧美一区二区三区极速播放| 成人性生交大片免费看在线播放 | 成人免费观看视频| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品福利在线播放| 高清不卡一区二区在线| 久久久久国产精品人| 国产一区二区三区不卡在线观看| 日韩欧美国产wwwww| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一级淫片007| 狠狠色狠狠色合久久伊人| 26uuu久久天堂性欧美| 国精产品一区一区三区mba视频 | 午夜日韩在线电影| 欧美吻胸吃奶大尺度电影| 亚洲国产一区二区在线播放| 欧美日韩小视频| 五月激情综合婷婷| 91精品国产色综合久久不卡蜜臀 | 91成人在线免费观看| 一区二区三区在线看| 欧美视频一二三区| 午夜激情一区二区三区| 日韩欧美电影一区| 国产精品一色哟哟哟| 亚洲视频在线观看三级| 欧美专区在线观看一区| 人人狠狠综合久久亚洲| 国产日韩精品视频一区| jvid福利写真一区二区三区| 一区二区三区中文在线观看| 911精品国产一区二区在线| 久久99精品久久久久久国产越南| 久久久久久久久一| 92国产精品观看| 肉色丝袜一区二区| 久久新电视剧免费观看| eeuss国产一区二区三区| 亚洲一区在线观看免费观看电影高清| 欧美午夜一区二区三区免费大片| 青娱乐精品在线视频| 日本一区二区三区免费乱视频| 91视频在线观看| 日韩av在线免费观看不卡| 精品国产免费视频| 91亚洲永久精品| 美女诱惑一区二区| 国产精品电影一区二区| 日韩一区二区三区电影| av电影天堂一区二区在线 | 国产成人亚洲精品青草天美| 亚洲免费三区一区二区| 欧美mv日韩mv国产网站| 色婷婷综合久久久久中文一区二区| 日韩中文字幕亚洲一区二区va在线| 久久亚洲精华国产精华液| 色哟哟一区二区在线观看| 久久99精品国产麻豆婷婷| 中文字幕亚洲综合久久菠萝蜜| 91精品国产麻豆国产自产在线| fc2成人免费人成在线观看播放| 免费三级欧美电影| 国产精品久久久久四虎| 日韩视频中午一区| 日本高清免费不卡视频| 国产成a人亚洲精| 日本不卡在线视频| 亚洲视频免费观看| 精品动漫一区二区三区在线观看| 91免费视频网| 国产精品18久久久久久久久久久久| 亚洲国产精品尤物yw在线观看| 国产精品伦理一区二区|