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

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

?? profiler.c

?? 三星2440 cpu WINCE 5.00板級支持包
?? C
字號:
//
// 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.
//
//------------------------------------------------------------------------------
//
//  File:  profiler.c
//
//  This file contains implementation of profiler module suitable for the
//  Samsung S3C2440x CPU/SoC with count/compare timer.  The routines
//  use match register 2 (M2) for the profiling timer.
//
#include <windows.h>
#include <nkintr.h>
#include <oal.h>
#include <intr.h>
#include <s3c2440x.h>

//------------------------------------------------------------------------------
// Local Variables 
static S3C2440X_PWM_REG *g_pPWMRegs = NULL;

static struct
{
    BOOL enabled;                               // is profiler active?
    UINT32 countsPerHit;                        // counts per profiler interrupt
} g_profiler;

//------------------------------------------------------------------------------
// External Variables 

extern PFN_PROFILER_ISR g_pProfilerISR;

//------------------------------------------------------------------------------
// Local Functions 
UINT32 OALProfileIntrHandler(UINT32 ra);
    

//------------------------------------------------------------------------------
//
//  Function:  ConfigureNextProfilerCount
//
//  Updates the profiler count (prepares the timer for the next timer event).
//
static void ConfigureNextProfilerCount(DWORD dwCountInterval)
{
    DWORD dwTimerTemp;  
	
    if (!g_pProfilerISR) return;

	   // Change number of timer ticks in the period.
	   //
	   OUTREG32(&g_pPWMRegs->TCNTB2, dwCountInterval);

	   dwTimerTemp = INREG32(&g_pPWMRegs->TCON) & (~(0xf << 12));
	   OUTREG32(&g_pPWMRegs->TCON, dwTimerTemp | (2 << 12));	// Update TCVNTB2 and stop.
	   OUTREG32(&g_pPWMRegs->TCON, dwTimerTemp | (1 << 12));	// One-shot mode and start.

}


//------------------------------------------------------------------------------
//
//  Function:  OEMProfileTimerEnable
//
//  This function is called by kernel to start kernel profiling timer.
//
VOID OEMProfileTimerEnable(DWORD interval)
{
    BOOL enabled;
    UINT32 irq;
    
    OALMSG(TRUE, (L"+OEMProfileTimerEnable(%d)\r\n", interval));
    
    // We can't enable timer second time
    if (g_profiler.enabled) return;
   
    // Obtain a pointer to the PWM registers.
    if (!g_pPWMRegs)
    {
        g_pPWMRegs = (S3C2440X_PWM_REG *) OALPAtoVA(S3C2440X_BASE_REG_PA_PWM, FALSE);
    }

    // How many hi-res ticks per profiler hit
    g_profiler.countsPerHit = (g_oalTimer.countsPerMSec * interval)/1000;

    // Following code should not be interrupted
    enabled = INTERRUPTS_ENABLE(FALSE);

    // Configure profiling ISR callback function.
    g_pProfilerISR = OALProfileIntrHandler;

    // Update the compare register for the next profile hit.
    ConfigureNextProfilerCount(g_profiler.countsPerHit);

    // Enable interrupts
    INTERRUPTS_ENABLE(enabled);
    irq = IRQ_TIMER2;
    OALIntrDoneIrqs(1, &irq);

    // Set flag
    g_profiler.enabled = TRUE;

    OALMSG(TRUE, (L"-OEMProfileTimerEnable\r\n"));
}


//------------------------------------------------------------------------------
//
//  Function:  OEMProfileTimerDisable
//
//  This function is called by kernel to stop kernel profiling timer.
//

VOID OEMProfileTimerDisable() 
{
    BOOL enabled;
    UINT32 irq;

    OALMSG(TRUE, (L"+OEMProfileTimerDisable()\r\n"));

    // No disable without enable
    if (!g_profiler.enabled) goto cleanUp;

    // Following code should not be interrupted
    enabled = INTERRUPTS_ENABLE(FALSE);

    // Disable the profile timer interrupt
    irq = IRQ_TIMER2;
    OALIntrDisableIrqs(1, &irq);

    // Deconfigure profiling ISR callback function.
    g_pProfilerISR = NULL;

    // Reset flag
    g_profiler.enabled = FALSE;

    // Enable interrupts
    INTERRUPTS_ENABLE(enabled);

cleanUp:
    OALMSG(TRUE, (L"-OEMProfileTimerDisable\r\n"));
}


//------------------------------------------------------------------------------
//
//  Function:  OALProfileIntrHandler
//
//  This is timer interrupt handler which replace default handler in time when
//  kernel profiling is active. It calls original interrupt handler in
//  appropriate times.
//
UINT32 OALProfileIntrHandler(UINT32 ra)
{
    UINT32 irq;

    // Update the compare register for the next profile hit.
    ConfigureNextProfilerCount(g_profiler.countsPerHit);

    // First call profiler
    ProfilerHit(ra);

    // Enable interrupts
    irq = IRQ_TIMER2;
    OALIntrDoneIrqs(1, &irq);

    return(SYSINTR_NOP); 
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频一区二区在线观看| 日韩中文字幕一区二区三区| 欧美午夜影院一区| 九九九精品视频| 亚洲区小说区图片区qvod| 欧美一区二区三区在线电影| 99这里都是精品| 国产一区欧美一区| 舔着乳尖日韩一区| 亚洲欧美欧美一区二区三区| 久久久久久久精| 日韩午夜电影在线观看| 91久久一区二区| 9久草视频在线视频精品| 老司机一区二区| 日日夜夜精品视频天天综合网| 国产精品久久久久久户外露出| 精品1区2区在线观看| 欧美美女视频在线观看| 91小视频在线免费看| 成人免费观看视频| 国产成人av网站| 国产在线国偷精品免费看| 日产国产高清一区二区三区| 一区二区三区日韩在线观看| 亚洲日本电影在线| 国产精品三级在线观看| 久久久99久久| 欧美国产精品一区二区| xf在线a精品一区二区视频网站| 制服丝袜成人动漫| 欧美日韩国产首页| 6080国产精品一区二区| 欧美高清你懂得| 欧美军同video69gay| 欧美美女直播网站| 欧美裸体bbwbbwbbw| 欧美久久久久中文字幕| 欧美日韩aaaaa| 3d动漫精品啪啪一区二区竹菊| 欧美日韩精品电影| 欧美精品久久久久久久多人混战| 精品污污网站免费看| 欧美三级电影一区| 欧美精品久久天天躁| 91麻豆精品国产自产在线| 日韩欧美在线1卡| 精品精品欲导航| 久久中文字幕电影| 国产欧美一区二区三区在线看蜜臀| 国产视频一区在线观看| 日本一区二区三区免费乱视频 | 国产精品一区二区男女羞羞无遮挡| 看电视剧不卡顿的网站| 国产精品一二三| 99视频热这里只有精品免费| 91视频你懂的| 欧美美女一区二区在线观看| 欧美大片在线观看| 欧美激情综合五月色丁香| 国产精品国产三级国产aⅴ入口| 成人免费在线视频观看| 亚洲成人综合网站| 久久er99精品| av欧美精品.com| 欧美日韩综合在线| 精品久久久久久无| ●精品国产综合乱码久久久久 | 国产精品18久久久久久久久 | www国产亚洲精品久久麻豆| 久久久午夜电影| 成人免费视频在线观看| 午夜视频在线观看一区| 精品无人码麻豆乱码1区2区| 波多野结衣中文字幕一区二区三区| 色狠狠一区二区| 欧美成人欧美edvon| 亚洲色欲色欲www| 日韩成人一区二区| 成人午夜看片网址| 欧美日韩mp4| 国产精品二三区| 毛片av一区二区| 色综合久久久久综合99| 欧美第一区第二区| 亚洲精品网站在线观看| 久久精工是国产品牌吗| 91网上在线视频| 精品福利二区三区| 亚洲综合久久av| 丰满少妇在线播放bd日韩电影| 在线观看一区二区精品视频| 26uuu亚洲| 亚洲va天堂va国产va久| 国产精品99久久久久久久vr| 欧美日本韩国一区二区三区视频| 国产人成亚洲第一网站在线播放 | 日韩欧美一级特黄在线播放| 国产精品理论在线观看| 老司机精品视频在线| 欧美曰成人黄网| 国产欧美日韩精品在线| 美女国产一区二区| 欧美三级日本三级少妇99| 中文字幕在线不卡| 国产综合色在线视频区| 91精品国产一区二区三区香蕉| 亚洲精选一二三| 成人激情免费网站| 久久中文娱乐网| 蜜臀久久久久久久| 欧美丰满嫩嫩电影| 亚洲高清三级视频| 91美女在线视频| 国产精品美女久久久久久久久| 精品一区二区三区免费播放| 欧美日本一区二区| 亚洲国产欧美一区二区三区丁香婷| 成人精品免费网站| 欧美国产精品专区| 国产ts人妖一区二区| 久久久综合网站| 国产一区二三区好的| 日韩免费在线观看| 久久精品二区亚洲w码| 日韩视频在线一区二区| 日韩成人一区二区| 欧美一级日韩一级| 美女精品一区二区| 精品久久五月天| 国内精品不卡在线| 久久久亚洲精品石原莉奈| 国产在线播放一区二区三区| 久久综合资源网| 国产精品自拍av| 日本一区二区成人| 成人动漫中文字幕| 亚洲欧美日韩国产综合| 色婷婷综合激情| 亚洲高清不卡在线| 91精品国产综合久久国产大片| 日日夜夜精品免费视频| 日韩欧美国产一区二区三区| 久久激五月天综合精品| 国产亚洲一二三区| 成人avav影音| 亚洲综合在线视频| 制服丝袜中文字幕亚洲| 蜜桃av一区二区三区电影| 久久这里只有精品首页| 国产a区久久久| 亚洲私人黄色宅男| 欧美日韩性生活| 日韩不卡免费视频| 久久综合狠狠综合久久综合88 | 毛片一区二区三区| 久久久91精品国产一区二区精品 | 欧美性一二三区| 蜜桃传媒麻豆第一区在线观看| 久久五月婷婷丁香社区| 大尺度一区二区| 亚洲精品久久久蜜桃| 9191成人精品久久| 国产超碰在线一区| 一区二区三区电影在线播| 555www色欧美视频| 国v精品久久久网| 亚洲丶国产丶欧美一区二区三区| 91精品国产综合久久香蕉的特点 | 国产福利91精品一区| 国产精品久久久久天堂| 欧美日韩亚洲综合在线| 国产精品一区二区在线播放| 亚洲视频香蕉人妖| 日韩一区二区免费在线观看| 成人av免费网站| 免费成人美女在线观看.| 国产欧美一区二区精品久导航 | 黑人精品欧美一区二区蜜桃| 国产精品传媒入口麻豆| 欧美另类videos死尸| 国产成人自拍在线| 丝袜美腿亚洲综合| 国产精品视频一二三区| 在线不卡中文字幕播放| 波多野结衣视频一区| 青青草伊人久久| 亚洲欧洲日韩综合一区二区| 91精品久久久久久蜜臀| 99这里只有精品| 狠狠色狠狠色综合系列| 亚洲不卡av一区二区三区| 国产精品国产三级国产有无不卡| 日韩一级片在线观看| 日本精品视频一区二区三区| 国产米奇在线777精品观看| 香蕉久久夜色精品国产使用方法| 国产精品久久久久久久浪潮网站| 日韩一级免费观看| 欧美视频在线播放|