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

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

?? ezhal_x86.h

?? 嵌入式實時內(nèi)核源代碼
?? H
字號:
//
// $Id: ezhal_x86.h,v 1.9 2005/06/10 05:45:14 weihan Exp $
//
//      HW-dependent types and definitions. Shouldn't #include any other
//      header files.
//
#ifndef _EZX86PCHAL_H_
#define _EZX86PCHAL_H_

#include "eztypes.h"
#include "ezhal_impl.h"
#include "ezhalregister.h"
#include "assert.h"

#define EZ_MIN_STACK_SIZE   0x0 //TODO: need to modify to the minimal value

//
//Idle
//
inline void EzHALIdle()
{
    ASM("hlt;");
}

//
//Interrupt operation
//
#define EZ_INTR_ON          EFLAG_IF
#define EZ_INTR_OFF         0

inline UINT EzHALGetInterrupt()
{
    return EzHALSaveFlags() & EFLAG_IF;
}

inline void EzHALSetInterrupt(UINT uNewPosture)
{
    // x86 only support two interrupt states.
    assert(uNewPosture == EZ_INTR_ON || uNewPosture == EZ_INTR_OFF);
    if (uNewPosture) ASM("sti" : : : "memory");
    else             ASM("cli" : : : "memory");
}

inline void EzHALEnableInterrupt()
{
    ASM("sti" : : : "memory");
}

inline void EzHALDisableInterrupt()
{
    ASM("cli" : : : "memory");
}

inline BOOL EzHALIsInterruptEnabled()
{
    return EzHALGetInterrupt() == EZ_INTR_ON;
}

/*

inline void EzHALAtomicAdd(INT *pnDestOperand, INT nSrcOperand)
{
    ASM("addl   %1, %0;"
        :"=m"(*pnDestOperand) :"ir"(nSrcOperand), "m"(*pnDestOperand));
}

inline void EzHALAtomicDec(INT *pnDestOperand)
{
    ASM("decl   %0;"
        :"=m"(*pnDestOperand) :"m"(*pnDestOperand));
}

inline void EzHALAtomicSub(INT *pnDestOperand, INT nSrcOperand)
{
    ASM("subl   %1, %0;"
        :"=m"(*pnDestOperand) :"ir"(nSrcOperand), "m"(*pnDestOperand));
}

inline void EzHALAtomicAnd(INT *pnDestOperand, INT nSrcOperand)
{
    ASM("andl   %1, %0;"
        :"=m"(*pnDestOperand) :"ir"(nSrcOperand), "m"(*pnDestOperand));
}

inline void EzHALAtomicOr(INT *pnDestOperand, INT nSrcOperand)
{
    ASM("orl    %1, %0;"
        :"=m"(*pnDestOperand) :"ir"(nSrcOperand), "m"(*pnDestOperand));
}

inline void *EzHALAtomicExchgPtr(void **ppvTarget, void *pvValue)
{
    void *pvOriginalTarget;

    ASM("xchg   %%eax, (%%edx);"
        :"=a"(pvOriginalTarget)
        :"a"(pvValue), "d"(ppvTarget));

    return pvOriginalTarget;
}

inline void *EzHALAtomicCmpExchgPtr(
        void **ppvDestination, void *pvExchange, void *pvComperand)
{
    void *pvOriginalDestination;

    ASM("cmpxchg    %%ecx, (%%edx);"
        :"=a"(pvOriginalDestination)
        :"a"(pvComperand), "c"(pvExchange), "d"(ppvDestination));

    return pvOriginalDestination;
}

*/

inline void EzHALAtomicInc(ATOM *pnDestOperand)
{
    ASM("incl   %0;"
        :"=m"(*pnDestOperand) :"m"(*pnDestOperand));
}

inline UINT EzHALAtomicExchg(ATOM *puTarget, UINT uValue)
{
    UINT uOriginalTarget;

    ASM("xchg   %%eax, (%%edx);"
        :"=a"(uOriginalTarget)
        :"a"(uValue), "d"(puTarget));

    return uOriginalTarget;
}


inline UINT EzHALAtomicCmpExchg(
        ATOM *puDestination, UINT uExchange, UINT uComperand)
{
    UINT uOriginalDestination;

    ASM("cmpxchg    %%ecx, (%%edx);"
        :"=a"(uOriginalDestination)
        :"a"(uComperand), "c"(uExchange), "d"(puDestination));

    return uOriginalDestination;
}

inline UINT EzHALAtomicExchgAdd(ATOM *puAddend, UINT uIncrement)
{
    UINT uOriginalAddend;

    ASM("xadd   %%eax, (%%edx);"
        :"=a"(uOriginalAddend)
        :"a"(uIncrement), "d"(puAddend));

    return uOriginalAddend;
}

//
//IO instruction
//
inline void EzHALOutb(ADDRESS port, UINT8 u8Data)
{
    ASM("outb   %%al, %%dx;"
        : :"a"(u8Data), "d"(port));
}

inline void EzHALOutw(ADDRESS port, UINT16 u16Data)
{
    ASM("outw   %%ax, %%dx;"
        : :"a"(u16Data), "d"(port));
}

inline void EzHALOutl(ADDRESS port, UINT16 u32Data)
{
    ASM("outl   %%eax, %%dx;"
        : :"a"(u32Data), "d"(port));
}

inline UINT8 EzHALInb(ADDRESS port)
{
    UINT8 u8Data;
    ASM("inb    %%dx, %%al;"
        :"=a"(u8Data) :"d"(port));
    return u8Data;
}

inline UINT16 EzHALInw(ADDRESS port)
{
    UINT16 u16Data;
    ASM("inw    %%dx, %%ax;"
        :"=a"(u16Data) :"d"(port));
    return u16Data;
}

inline UINT32 EzHALInl(ADDRESS port)
{
    UINT32 u32Data;
    ASM("inl    %%dx, %%eax;"
        :"=a"(u32Data) :"d"(port));
    return u32Data;
}

//
//thread hardware context
//
#define SIZEOF_FPU_DATA     80

typedef struct EzFPUContext {
    UINT32    controlWord;
    UINT32    statusWord;
    UINT32    tagWord;
    UINT32    instructionPointerOffset;
    UINT32    instructionPointerSelector;
    UINT32    operandPointerOffset;
    UINT32    operandPointerSelector;
    BYTE      data[SIZEOF_FPU_DATA];
    UINT32    status;
} EzFPUContext;

enum EzThreadHContextFlag {
    EzThreadHContextFlag_FPUInited    = 0x01,
    EzThreadHContextFlag_FPUUsed      = 0x02,
};

struct EzHALThreadContext {
    void Initialize();

    void Save();
    void Restore();

    void SaveFPU();
    void RestoreFPU();
};

//TODO:FPU implementation
inline void EzHALThreadContext::Initialize()
{
}

inline void EzHALThreadContext::Save()
{
}

inline void EzHALThreadContext::Restore()
{
}

inline void EzHALThreadContext::SaveFPU()
{
}

inline void EzHALThreadContext::RestoreFPU()
{
}

#endif //_EZX86PCHAL_H_

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品欧美综合在线观看最新| 久久久精品免费免费| 精品视频免费看| 国产婷婷色一区二区三区| 午夜激情综合网| 91网页版在线| 国产精品区一区二区三区| 日韩黄色片在线观看| 97国产一区二区| 欧美激情中文不卡| 国产精品99久| 精品国产免费人成在线观看| 亚洲123区在线观看| 国产成人精品综合在线观看| 欧美日韩一区在线观看| 亚洲柠檬福利资源导航| 国产99久久久精品| 国产亚洲成aⅴ人片在线观看| 日韩高清欧美激情| 欧美精品v日韩精品v韩国精品v| 亚洲免费av高清| 99re这里只有精品视频首页| 欧美国产一区二区在线观看 | 欧美美女激情18p| 亚洲欧洲国产日本综合| 国产sm精品调教视频网站| 2023国产精品视频| 日本va欧美va精品发布| 在线播放日韩导航| 视频一区视频二区中文字幕| 欧美日韩精品福利| 成人免费电影视频| 久久久精品tv| 成人av影视在线观看| 中文字幕+乱码+中文字幕一区| 国产成人免费高清| 国产精品久久久久婷婷| 91免费看片在线观看| 亚洲天堂网中文字| 在线观看日韩一区| 婷婷久久综合九色综合绿巨人| 欧美日韩二区三区| 日韩极品在线观看| 久久精品视频免费| 成人免费精品视频| 亚洲一区二区偷拍精品| 欧美日韩国产美| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩免费在线观看| 国产高清精品久久久久| 亚洲免费在线视频一区 二区| 91成人免费网站| 日韩精品一区第一页| 久久久久亚洲综合| 91麻豆文化传媒在线观看| 亚洲成人tv网| 久久亚洲精品小早川怜子| 91尤物视频在线观看| 五月天精品一区二区三区| 26uuu成人网一区二区三区| 成人av午夜电影| 亚洲成人免费看| 国产农村妇女精品| 日本韩国一区二区三区| 美国毛片一区二区三区| 国产精品电影一区二区三区| 在线成人av影院| 成人午夜看片网址| 日精品一区二区三区| 国产日韩欧美电影| 欧美一区二区三区人| 丁香桃色午夜亚洲一区二区三区| 亚洲一线二线三线久久久| 2020国产成人综合网| 在线亚洲一区二区| 国产成人福利片| 日本色综合中文字幕| 一色桃子久久精品亚洲| 日韩免费高清av| 在线免费精品视频| 高清不卡一区二区| 免费在线观看一区二区三区| 国产精品不卡视频| 欧美xxxxxxxx| 欧美最猛黑人xxxxx猛交| 成人网在线播放| 国产一区二区三区免费播放| 午夜精品久久久久久久久久| 国产精品久久久久久久浪潮网站 | 在线中文字幕不卡| 国产成人99久久亚洲综合精品| 天天色 色综合| 国产精品久99| 国产精品日韩精品欧美在线| 久久午夜羞羞影院免费观看| 日韩欧美一二三四区| 91麻豆精品国产自产在线| 色88888久久久久久影院野外| 国产成人精品影院| 国产一区二区三区免费| 精品无码三级在线观看视频| 青青草国产成人av片免费| 亚洲丶国产丶欧美一区二区三区| 亚洲视频在线观看三级| 中文字幕一区在线| 国产精品视频在线看| 国产欧美精品一区aⅴ影院| 久久综合色婷婷| 久久精品视频网| 欧美激情综合在线| 国产精品女同一区二区三区| 国产欧美日韩亚州综合 | 日韩一区二区三区在线视频| 欧美亚洲一区二区在线| 欧美在线一区二区| 欧美在线视频日韩| 欧美久久免费观看| 在线综合+亚洲+欧美中文字幕| 欧美精品99久久久**| 欧美日韩国产高清一区二区三区| 欧美精品一级二级| 日韩精品一区二| 国产欧美久久久精品影院| 中文字幕亚洲综合久久菠萝蜜| ...中文天堂在线一区| 国产精品黄色在线观看| 一区二区三区四区在线播放| 美女脱光内衣内裤视频久久网站 | 狠狠色狠狠色综合日日91app| 麻豆精品在线看| 国产成人免费9x9x人网站视频| 成人免费不卡视频| 欧美亚洲免费在线一区| 日韩午夜av电影| 国产午夜精品久久| 一区二区三区在线播放| 亚洲成人一区在线| 国产麻豆精品theporn| 99精品久久只有精品| 欧美日韩国产综合视频在线观看 | 91精品国产丝袜白色高跟鞋| 精品久久久久久综合日本欧美 | 亚洲美女精品一区| 免费精品视频在线| kk眼镜猥琐国模调教系列一区二区 | 国产三级欧美三级日产三级99| 国产精品每日更新在线播放网址 | 国产精品久久久久精k8 | 日韩一区二区在线看片| 国产精品网站在线| 日韩在线播放一区二区| 国产成人免费av在线| 欧美麻豆精品久久久久久| 国产亚洲制服色| 日韩中文字幕麻豆| 99久久国产综合精品麻豆| 欧美一卡在线观看| 亚洲人成人一区二区在线观看 | 精品国产百合女同互慰| 亚洲蜜桃精久久久久久久| 美女国产一区二区三区| 在线观看欧美精品| 国产亚洲成年网址在线观看| 天天操天天色综合| 99国产精品久| 久久久久久久久久久黄色| 天堂蜜桃一区二区三区| 91免费观看在线| 中文字幕不卡在线观看| 美女精品一区二区| 欧美性大战久久| 亚洲日本一区二区三区| 国产精品一区二区果冻传媒| 欧美一区二区三区公司| 亚洲午夜激情网页| 91免费版在线看| 国产精品麻豆久久久| 国内成人精品2018免费看| 9191精品国产综合久久久久久| 亚洲图片激情小说| 成人免费视频app| 国产日韩精品一区二区三区在线| 久久国产视频网| 这里是久久伊人| 午夜日韩在线电影| 欧美久久免费观看| 五月天中文字幕一区二区| 欧美日韩一级片网站| 亚洲一区二区三区视频在线| 色婷婷综合激情| 亚洲免费大片在线观看| 色菇凉天天综合网| 亚洲欧洲精品天堂一级 | 亚洲一二三级电影| 在线观看免费视频综合| 一区二区三区精品在线| 色婷婷综合久色| 一区二区视频在线看| 91成人免费网站| 午夜久久久久久久久|