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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? oal_timer.h.svn-base

?? 這是三星的2443的wince的bootloader
?? SVN-BASE
字號(hào):
//
// 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.
//
//------------------------------------------------------------------------------
//
//  Header: oal_timer.h
//
//  This header define OAL timer module. Module code implements system ticks,
//  idle/power saving HAL functionality. It is also used by other OAL modules
//  for action or information related to time.
//
//  Interaction with kernel:
//      * Interrupt handler (SYSINTR_RESCHED)
//      * CurMSec
//      * OEMIdle
//      * SC_GetTickCount
//      * pQueryPerformanceFrequency
//      * pQueryPerformanceCounter
//      * pOEMUpdateRescheduleTime
//
//  Interaction with other OAL modules:
//      * OALTimerInit (system initialization)
//      * OALTimerRecharge (kernel profiling)
//      * OALTimerUpdate (kernel profiling)
//      * OALTimerCountsSinceSysTick (kernel profiling, IL timing)
//      * g_oalTimer (kernel profiling, IL timing)
//      * OALGetTickCount
//      * OALStall
//
//  Internal module functions:
//      * OALTimerRecharge
//      * OALCPUIdle
//
//  Internal module functions for system with count/compare counters:
//      * OALTimerInitCount
//      * OALTimerGetCount
//      * OALTimerGetCompare
//      * OALTimerSetCompare
//
//
#ifndef __OAL_TIMER_H
#define __OAL_TIMER_H

#if __cplusplus
extern "C" {
#endif

//------------------------------------------------------------------------------
//
//  Type:   OAL_TIMER_STATE
//
//  Timer module component control block - it unites all internal module
//  variables which can be used by other OAL modules.
//
//  The countsPerMSec specifies input clock frequency in kHz (or how many
//  input clock ticks fits to 1 ms time frame). The countsMargin defines
//  how many ticks before timer interrupt is safe to change timer value. It
//  is used in OEMIdle/pOEMUpdateRescheduleTime as parameter for functions
//  manipulating timer. The maxPeriodMSec specifies maximal period time
//  supported by hardware. Some modules (profiler, ILT) change this value
//  to reduce maximal time between system timer interrupt. The msecPerSysTick
//  and countsPerSysTick are base timer period values (countsPerSysTick is
//  always equal to msecPerSysTick * countsPerMSec). The actualMSecPerSysTick
//  and actualCountsPerSysTick are timer period values for actual tick.
//  Interrupt handler must use this actual values to update system counters
//  CurMSec and curCounts. At beginning of period handler must recharge/restore
//  actual values from base variables (msecPerSysTick/countsPerSysTick).
//
typedef struct {
    UINT32 countsPerMSec;                   // counts per 1 msec
    UINT32 countsMargin;                    // counts margin
    UINT32 maxPeriodMSec;                   // maximal timer period in MSec
    UINT32 msecPerSysTick;                  // msec per system tick
    UINT32 countsPerSysTick;                // counts per system tick
    UINT32 actualMSecPerSysTick;            // actual msec per system tick
    UINT32 actualCountsPerSysTick;          // actual counts per system tick
    volatile UINT64 curCounts;              // counts at last system tick
} OAL_TIMER_STATE, *POAL_TIMER_STATE;

//------------------------------------------------------------------------------
//
//  Extern:  g_oalTimer
//
//  Exports the OAL timer control block. This is global instance of internal
//  timer module variables.
//
extern OAL_TIMER_STATE g_oalTimer;

//------------------------------------------------------------------------------
//
//  Function:  OALTimerInit
//
//  This function initialize system timer. It is called usually from OEMInit.
//  The msecPerSysTick parameter defines system tick period. The
//  countsPerMSec parameter states timer input clock frequency (value is
//  frequency divided by 1000). Last margin parameter is used in timer
//  manipulation routines (OALTimerRecharge, OALTimerUpdate) to define safe
//  time range where timer can be modified without possible hazard.
//
//  For variable tick period first value should be set to maximal period
//  supported by hardware (the implementation should also check and fix
//  value is bigger than supported - this allows use -1 as parameter).
//
BOOL OALTimerInit(UINT32 msecPerSysTick, UINT32 countsPerMSec, UINT32 margin);

//------------------------------------------------------------------------------
//
//  Function:  OALTimerIntrHandler
//
//  This function implements timer interrupt handler. Depending on hardware
//  it is called from general interrupt handler (e.g. ARM) or it is used
//  as interrupt handler (e.g. MIPS). It returns SYSINTR value as expected 
//  from interrupt handler.
//
UINT32 OALTimerIntrHandler();

//------------------------------------------------------------------------------
//
//  Function:  OALTimerQueryPerformanceFrequency
//
//  This function is exported through pQueryPerformanceFrequency.
//
BOOL OALTimerQueryPerformanceFrequency(LARGE_INTEGER *pFrequency);

//------------------------------------------------------------------------------
//
//  Function:  OALTimerQueryPerformanceCounter
//
//  This function is exported through pQueryPerformanceCounter. It returns
//  high resolution counter value.
//
BOOL OALTimerQueryPerformanceCounter(LARGE_INTEGER *pCounter);

//------------------------------------------------------------------------------
//
//  Function:  OALTimerUpdateRescheduleTime
//
//  This function should be implemented if implementation supports variable
//  tick. It is exported through pOEMUpdateRescheduleTime.
//
VOID OALTimerUpdateRescheduleTime(DWORD time);

//------------------------------------------------------------------------------
//
//  Function:  OALTimerCountsSinceSysTick
//
//  This function returns time which expires from current system tick. 
//
INT32 OALTimerCountsSinceSysTick();

//------------------------------------------------------------------------------
//
//  Function:  OALTimerRecharge
//
//  This function is called usually form timer interrupt handler to recharge
//  timer for next system ticks. Depending on timer hardware implementation
//  it can be stubed (in cases when timer has auto-recharge mode).
//
VOID OALTimerRecharge(UINT32 period, UINT32 margin);

//------------------------------------------------------------------------------
//
//  Function:  OALTimerUpdate
//
//  This function is called to modify actual timer period. The new
//  system tick period is defined in first parameter. It returns time which
//  already expires from actual period in new system tick period quants. 
//  This value is usefull to avoid system tick drift and/or for idle time
//  counting. If actual time is to close to tick (near then second parameter)
//  tick time isn't changed. If new tick time is close to actual time it
//  should be shifted forward (by count given in second parameter).
//
//  This function must be implemented only when OAL OEMIdle, IL timing or
//  profilling implementation are used.
//
UINT32 OALTimerUpdate(UINT32 period, UINT32 margin);

//------------------------------------------------------------------------------
//
//  Function:   OALCPUIdle
//
//  This function is called to put CPU/SoC to idle state. The CPU/SoC should
//  exit idle state when interrupt occurs. It is called with disabled
//  interrupts. When it returns interrupt must be disabled also.
//
//  This function must be implemented only when OAL OEMIdle implementation is
//  used. The common library contains busy loop implementation which can be
//  used for development.
//  
VOID OALCPUIdle();

//------------------------------------------------------------------------------
//
//  Function:  OALGetTickCount
//
//  This function returns number of 1 ms ticks which elapsed since system boot
//  or reset (absolute value isn't important). The counter can overflow but
//  overflow period should not be shorter then approx 30 seconds. Function 
//  is used in  system boot so it must work before interrupt subsystem
//  is active.
//
UINT32 OALGetTickCount();

//------------------------------------------------------------------------------
//
//  Function:  OALStall
//
//  This function returns stalls CPU for time defined in parameters. The unit
//  is 1 microseconds. Function is used in  system boot so it must work before
//  interrupt subsystem is active.
//
VOID OALStall(UINT32 uSecs);

//------------------------------------------------------------------------------
//
//  Function:  OALTimerInitCount
//
//  Initialize system timer with given base period. Value margin specify number
//  of clocks used by count/compare counter to decide if recharge can be done
//  based on previous period or on current clock value.
//
VOID OALTimerInitCount(UINT32 period);

//------------------------------------------------------------------------------
//
//  Function:  OALTimerGetCount
//
//  This function returns actual timer value. This function is inted to be used
//  for OALGetTickCount/OALStall implementation in situation when global timer
//  variable isn't initialized. It is also used for OALTimerRecharge/
//  OALTimerCountsSinceSysTick/OALTimerReduceSysTick and OALTimerExtendSysTick
//  implementation for systems with count/compare timer. This function call
//  should also clear timer interrupt.
//
UINT32 OALTimerGetCount();

//------------------------------------------------------------------------------
//
//  Function:  OALTimerGetCompare
//
//  This function returns timer compare value. This function should be
//  implemented only for systems with count/compare timer type. It is used
//  for OALTimerRecharge/OALTimerCountsSinceSysTick/OALTimerReduceSysTick and
//  OALTimerExtendSysTick implementation for systems with count/compare timer.
//
UINT32 OALTimerGetCompare();

//------------------------------------------------------------------------------
//
//  Function:  OALTimerSetCompare
//
//  This function sets timer compare value. This function should be
//  implemented only for systems with count/compare timer type. It is used
//  for OALTimerRecharge/OALTimerCountsSinceSysTick/OALTimerReduceSysTick and
//  OALTimerExtendSysTick implementation for systems with count/compare timer.
//
VOID OALTimerSetCompare(UINT32 compare);

//------------------------------------------------------------------------------

#if __cplusplus
}
#endif

#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线一区| 一区二区国产视频| 一本高清dvd不卡在线观看| 亚洲成av人影院| 中文乱码免费一区二区| 久久精品亚洲一区二区三区浴池| 99综合影院在线| 久久国产夜色精品鲁鲁99| 亚洲精选在线视频| 久久精品夜夜夜夜久久| 欧美剧情片在线观看| aaa欧美大片| 国产一区二区三区免费在线观看| 亚洲一区自拍偷拍| 亚洲国产成人在线| 日韩精品中午字幕| 欧美又粗又大又爽| 成av人片一区二区| 韩日av一区二区| 亚洲一区电影777| 亚洲日本丝袜连裤袜办公室| 国产日韩综合av| 日韩欧美国产综合| 欧美三级一区二区| 91蜜桃免费观看视频| 国产精品羞羞答答xxdd| 麻豆一区二区三区| 水野朝阳av一区二区三区| 中文字幕一区二区视频| 国产精品人人做人人爽人人添| 精品国精品自拍自在线| 欧美一卡二卡在线观看| 欧美另类久久久品| 欧美少妇xxx| 欧美日韩一区二区三区视频| 欧美日韩在线播放| 欧美三级在线视频| 欧美日韩国产综合草草| 在线亚洲+欧美+日本专区| 91在线视频免费观看| 波多野结衣精品在线| 国产99久久久国产精品免费看| 国产一区二区久久| 国产美女视频91| 国产精品主播直播| 国产精华液一区二区三区| 国产一区二区三区av电影| 精品在线视频一区| 欧美中文字幕一区二区三区亚洲| 不卡在线观看av| 色爱区综合激月婷婷| 欧美在线视频全部完| 欧美日韩一区二区电影| 91精品免费在线观看| 日韩午夜在线观看视频| 欧美白人最猛性xxxxx69交| 欧美精品一区二区三区蜜臀| 国产三级精品视频| 亚洲欧洲国产专区| 亚洲成人一区二区| 秋霞电影网一区二区| 国产一区二区三区免费| www.av精品| 欧美久久久一区| 精品国产乱码久久久久久1区2区| 国产欧美日韩精品一区| 一区二区三区自拍| 蜜臀久久99精品久久久久宅男| 久久se精品一区二区| 国产精品综合视频| 成人黄色免费短视频| caoporn国产一区二区| 欧美色区777第一页| 欧美一区二区美女| 久久综合九色综合97婷婷女人| 欧美大片一区二区| 久久久国产精品午夜一区ai换脸| 国产女人18毛片水真多成人如厕| 国产精品国产精品国产专区不片| 一区二区三区电影在线播| 亚洲综合色自拍一区| 麻豆精品视频在线观看| 国产老女人精品毛片久久| 久久精品国产免费看久久精品| 欧美一卡2卡三卡4卡5免费| 欧美成人一区二区三区片免费 | 国产91露脸合集magnet| 成人一区二区三区视频在线观看 | 暴力调教一区二区三区| 色综合天天综合网天天看片| 91老师国产黑色丝袜在线| 在线影视一区二区三区| 欧美一级高清大全免费观看| 国产日韩欧美a| 亚洲精品免费电影| 久久99精品国产.久久久久| 99精品国产91久久久久久| 欧美日韩国产美| 久久影院视频免费| 欧美xfplay| 亚洲午夜羞羞片| 国产一区二区在线看| 91一区二区在线| 欧美一区二区女人| 中文字幕一区日韩精品欧美| 美女看a上一区| 91在线免费视频观看| 欧美一区欧美二区| 久久久亚洲午夜电影| 亚洲免费在线看| 成人激情校园春色| 欧美午夜不卡视频| 久久精品人人做人人综合| 一区二区三区欧美视频| 99久久国产综合精品麻豆 | 精品电影一区二区三区 | 亚洲欧洲日本在线| 久久99精品网久久| 一本久道中文字幕精品亚洲嫩| 26uuu久久天堂性欧美| 国产精品视频线看| 韩日av一区二区| 在线成人av影院| 亚洲视频在线一区观看| 91在线你懂得| 国产午夜精品一区二区三区视频| 亚洲一区免费在线观看| 在线这里只有精品| 国产精品女主播av| 狠狠色狠狠色综合系列| 欧美主播一区二区三区美女| 久久影院电视剧免费观看| 日韩av一区二区在线影视| 欧美性极品少妇| 亚洲综合色成人| 在线这里只有精品| 亚洲欧美国产77777| 国产91精品精华液一区二区三区| 日韩免费看的电影| 免费日本视频一区| 欧美一区二区三区免费观看视频 | 欧美亚洲高清一区| 亚洲三级小视频| 波多野结衣在线aⅴ中文字幕不卡| 精品久久久久99| 久久精品国产999大香线蕉| 日本韩国欧美在线| 国产精品免费久久| 成人三级伦理片| 亚洲国产精品v| 国产精品一区二区x88av| 欧美精品一区视频| 久久超级碰视频| 884aa四虎影成人精品一区| 免费精品视频最新在线| 欧美一区二区三区色| 麻豆91在线看| 精品毛片乱码1区2区3区| 久久国产精品一区二区| 精品理论电影在线| 九九久久精品视频| 337p粉嫩大胆噜噜噜噜噜91av | 蜜桃一区二区三区在线| 91.麻豆视频| 蜜桃av一区二区在线观看| 精品免费视频一区二区| 激情综合网av| 国产精品婷婷午夜在线观看| 99精品国产视频| 日韩精品国产欧美| 精品久久人人做人人爽| 国产成人精品亚洲日本在线桃色| 日本一区二区高清| 色综合久久久久综合99| 亚洲日本在线a| 日韩欧美色综合| 国产.精品.日韩.另类.中文.在线.播放| 国产日产欧美一区二区三区| 99久久精品国产网站| 亚洲午夜免费视频| 欧美精品三级日韩久久| 春色校园综合激情亚洲| 亚洲乱码国产乱码精品精可以看| 欧美色中文字幕| 韩国精品在线观看| 中文字幕亚洲一区二区va在线| 91精品一区二区三区在线观看| 岛国精品在线播放| 一区二区高清在线| 久久新电视剧免费观看| 99久久er热在这里只有精品15| 亚洲成人在线网站| 国产色综合一区| 欧亚洲嫩模精品一区三区| 美女视频黄 久久| 国产精品国产三级国产aⅴ入口| 欧美伦理影视网| 成人性生交大片免费看视频在线 | 天堂在线亚洲视频| 久久美女高清视频|