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

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

?? pm.c

?? uboot for K9 AT91RM9200 學習板
?? C
?? 第 1 頁 / 共 4 頁
字號:
Set the real time clock frequency (for stereo modes).****************************************************************************/void PMAPI PM_setRealTimeClockFrequency(    int frequency){    /* Not supported under Win32 */    (void)frequency;}/****************************************************************************REMARKS:Restore the original real time clock handler.****************************************************************************/void PMAPI PM_restoreRealTimeClockHandler(void){    /* Not supported under Win32 */}/****************************************************************************REMARKS:Return the current operating system path or working directory.****************************************************************************/char * PMAPI PM_getCurrentPath(    char *path,    int maxLen){    return getcwd(path,maxLen);}/****************************************************************************REMARKS:Query a string from the registry (extended version).****************************************************************************/static ibool REG_queryStringEx(    HKEY hKey,    const char *szValue,    char *value,    ulong size){    DWORD   type;    if (RegQueryValueEx(hKey,(PCHAR)szValue,(PDWORD)NULL,(PDWORD)&type,(LPBYTE)value,(PDWORD)&size) == ERROR_SUCCESS)	return true;    return false;}/****************************************************************************REMARKS:Query a string from the registry.****************************************************************************/static ibool REG_queryString(    const char *szKey,    const char *szValue,    char *value,    DWORD size){    HKEY    hKey;    ibool   status = false;    memset(value,0,sizeof(value));    if (RegOpenKey(HKEY_LOCAL_MACHINE,szKey,&hKey) == ERROR_SUCCESS) {	status = REG_queryStringEx(hKey,szValue,value,size);	RegCloseKey(hKey);	}    return status;}/****************************************************************************REMARKS:Return the drive letter for the boot drive.****************************************************************************/char PMAPI PM_getBootDrive(void){    static char path[256];    GetSystemDirectory(path,sizeof(path));    return path[0];}/****************************************************************************REMARKS:Return the path to the VBE/AF driver files.****************************************************************************/const char * PMAPI PM_getVBEAFPath(void){    return "c:\\";}/****************************************************************************REMARKS:Return the path to the Nucleus driver files.****************************************************************************/const char * PMAPI PM_getNucleusPath(void){    static char path[256];    char        *env;    if ((env = getenv("NUCLEUS_PATH")) != NULL)	return env;    GetSystemDirectory(path,sizeof(path));    strcat(path,"\\nucleus");    return path;}/****************************************************************************REMARKS:Return the path to the Nucleus configuration files.****************************************************************************/const char * PMAPI PM_getNucleusConfigPath(void){    static char path[256];    strcpy(path,PM_getNucleusPath());    PM_backslash(path);    strcat(path,"config");    return path;}/****************************************************************************REMARKS:Return a unique identifier for the machine if possible.****************************************************************************/const char * PMAPI PM_getUniqueID(void){    return PM_getMachineName();}/****************************************************************************REMARKS:Get the name of the machine on the network.****************************************************************************/const char * PMAPI PM_getMachineName(void){    static char name[256];    if (REG_queryString(szMachineNameKey,szMachineName,name,sizeof(name)))	return name;    if (REG_queryString(szMachineNameKeyNT,szMachineName,name,sizeof(name)))	return name;    return "Unknown";}/****************************************************************************REMARKS:Return a pointer to the real mode BIOS data area.****************************************************************************/void * PMAPI PM_getBIOSPointer(void){    if (_PM_haveWinNT) {	/* On Windows NT we have to map it physically directly */	    return PM_mapPhysicalAddr(0x400, 0x1000, true);	}    else {	/* For Windows 9x we can access this memory directly */	return (void*)0x400;	}}/****************************************************************************REMARKS:Return a pointer to 0xA0000 physical VGA graphics framebuffer.****************************************************************************/void * PMAPI PM_getA0000Pointer(void){    if (_PM_haveWinNT) {	/* On Windows NT we have to map it physically directly */	    return PM_mapPhysicalAddr(0xA0000, 0x0FFFF, false);	}    else {	/* Always use the 0xA0000 linear address so that we will use	 * whatever page table mappings are set up for us (ie: for virtual	 * bank switching.	 */	return (void*)0xA0000;	}}/****************************************************************************REMARKS:Map a physical address to a linear address in the callers process.****************************************************************************/void * PMAPI PM_mapPhysicalAddr(    ulong base,    ulong limit,    ibool isCached){    DWORD   inBuf[3];   /* Buffer to send data to VxD       */    DWORD   outBuf[1];  /* Buffer to receive data from VxD  */    DWORD   count;      /* Count of bytes returned from VxD */    if (!inited)	PM_init();    inBuf[0] = base;    inBuf[1] = limit;    inBuf[2] = isCached;    CHECK_FOR_PMHELP();    if (DeviceIoControl(_PM_hDevice, PMHELP_MAPPHYS32, inBuf, sizeof(inBuf),	    outBuf, sizeof(outBuf), &count, NULL))	return (void*)outBuf[0];    return NULL;}/****************************************************************************REMARKS:Free a physical address mapping allocated by PM_mapPhysicalAddr.****************************************************************************/void PMAPI PM_freePhysicalAddr(    void *ptr,    ulong limit){    /* We never free the mappings under Win32 (the VxD tracks them and     * reissues the same mappings until the system is rebooted).     */    (void)ptr;    (void)limit;}/****************************************************************************REMARKS:Find the physical address of a linear memory address in current process.****************************************************************************/ulong PMAPI PM_getPhysicalAddr(    void *p){    DWORD   inBuf[1];   /* Buffer to send data to VxD       */    DWORD   outBuf[1];  /* Buffer to receive data from VxD  */    DWORD   count;      /* Count of bytes returned from VxD */    if (!inited)	PM_init();    inBuf[0] = (ulong)p;    CHECK_FOR_PMHELP();    if (DeviceIoControl(_PM_hDevice, PMHELP_GETPHYSICALADDR32, inBuf, sizeof(inBuf),	    outBuf, sizeof(outBuf), &count, NULL))	return outBuf[0];    return 0xFFFFFFFFUL;}/****************************************************************************REMARKS:Find the physical address of a linear memory address in current process.****************************************************************************/ibool PMAPI PM_getPhysicalAddrRange(    void *p,    ulong length,    ulong *physAddress){    DWORD   inBuf[3];   /* Buffer to send data to VxD       */    DWORD   outBuf[1];  /* Buffer to receive data from VxD  */    DWORD   count;      /* Count of bytes returned from VxD */    if (!inited)	PM_init();    inBuf[0] = (ulong)p;    inBuf[1] = (ulong)length;    inBuf[2] = (ulong)physAddress;    CHECK_FOR_PMHELP();    if (DeviceIoControl(_PM_hDevice, PMHELP_GETPHYSICALADDRRANGE32, inBuf, sizeof(inBuf),	    outBuf, sizeof(outBuf), &count, NULL))	return outBuf[0];    return false;}/****************************************************************************REMARKS:Sleep for the specified number of milliseconds.****************************************************************************/void PMAPI PM_sleep(    ulong milliseconds){    Sleep(milliseconds);}/****************************************************************************REMARKS:Return the base I/O port for the specified COM port.****************************************************************************/int PMAPI PM_getCOMPort(int port){    /* TODO: Re-code this to determine real values using the Plug and Play */    /*       manager for the OS. */    switch (port) {	case 0: return 0x3F8;	case 1: return 0x2F8;	case 2: return 0x3E8;	case 3: return 0x2E8;	}    return 0;}/****************************************************************************REMARKS:Return the base I/O port for the specified LPT port.****************************************************************************/int PMAPI PM_getLPTPort(int port){    /* TODO: Re-code this to determine real values using the Plug and Play */    /*       manager for the OS. */    switch (port) {	case 0: return 0x3BC;	case 1: return 0x378;	case 2: return 0x278;	}    return 0;}/****************************************************************************REMARKS:Allocate a block of shared memory. For Win9x we allocate shared memoryas locked, global memory that is accessible from any memory context(including interrupt time context), which allows us to load our importantdata structure and code such that we can access it directly from a ring0 interrupt context.****************************************************************************/void * PMAPI PM_mallocShared(    long size){    DWORD   inBuf[1];   /* Buffer to send data to VxD       */    DWORD   outBuf[1];  /* Buffer to receive data from VxD  */    DWORD   count;      /* Count of bytes returned from VxD */    inBuf[0] = size;    CHECK_FOR_PMHELP();    if (DeviceIoControl(_PM_hDevice, PMHELP_MALLOCSHARED32, inBuf, sizeof(inBuf),	    outBuf, sizeof(outBuf), &count, NULL))	return (void*)outBuf[0];    return NULL;}/****************************************************************************REMARKS:Free a block of shared memory.****************************************************************************/void PMAPI PM_freeShared(    void *ptr){    DWORD   inBuf[1];   /* Buffer to send data to VxD       */    inBuf[0] = (ulong)ptr;    CHECK_FOR_PMHELP();    DeviceIoControl(_PM_hDevice, PMHELP_FREESHARED32, inBuf, sizeof(inBuf), NULL, 0, NULL, NULL);}/****************************************************************************REMARKS:Map a linear memory address to the calling process address space. Theaddress will have been allocated in another process using thePM_mapPhysicalAddr function.****************************************************************************/void * PMAPI PM_mapToProcess(    void *base,    ulong limit){    (void)base;    (void)limit;    return base;}/****************************************************************************REMARKS:Map a real mode pointer to a protected mode pointer.****************************************************************************/void * PMAPI PM_mapRealPointer(    uint r_seg,    uint r_off){    return (void*)(MK_PHYS(r_seg,r_off));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码国产乱码精品精可以看 | 国内外成人在线| 床上的激情91.| 欧美人妇做爰xxxⅹ性高电影| 国产欧美日韩中文久久| 五月婷婷色综合| 99久久99久久精品国产片果冻| 日韩片之四级片| 一区二区高清在线| 91玉足脚交白嫩脚丫在线播放| 3d成人动漫网站| 亚洲在线观看免费| 91在线观看免费视频| 国产欧美综合在线观看第十页| 蜜桃久久久久久| 3atv在线一区二区三区| 天天亚洲美女在线视频| 91福利在线看| 亚洲在线一区二区三区| 91啦中文在线观看| 国产精品区一区二区三| 国产精品白丝jk黑袜喷水| 日韩精品影音先锋| 久久99国产乱子伦精品免费| 日韩女优av电影| 六月丁香综合在线视频| 精品久久人人做人人爰| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一区二区三区思思人| 亚洲一区av在线| 欧美日韩国产高清一区| 日韩av中文在线观看| 精品少妇一区二区三区免费观看 | 亚洲国产综合人成综合网站| 色综合咪咪久久| 一卡二卡三卡日韩欧美| 欧美视频三区在线播放| 日本不卡免费在线视频| 日韩免费观看2025年上映的电影| 经典三级视频一区| 久久影院午夜论| 成人免费毛片aaaaa**| 国产精品久久久久桃色tv| 99久久伊人久久99| 一区二区三区在线观看欧美| 欧美日韩午夜在线| 久久精品国产第一区二区三区 | 欧美日韩国产乱码电影| 日本不卡的三区四区五区| 欧美电影免费观看完整版| 国产乱子伦视频一区二区三区 | 亚洲一级二级在线| 在线不卡中文字幕播放| 久久成人18免费观看| 中文字幕乱码亚洲精品一区| 色呦呦日韩精品| 奇米影视一区二区三区| 精品91自产拍在线观看一区| 99re热这里只有精品视频| 五月天一区二区| 欧美激情综合五月色丁香| 欧美亚洲禁片免费| 国产乱人伦偷精品视频不卡| 亚洲一区二区三区自拍| 久久影院午夜片一区| 在线视频欧美精品| 国产精品69毛片高清亚洲| 亚洲免费视频成人| 欧美成人福利视频| 91精品福利在线| 久久99国内精品| 亚洲一区二区高清| 国产精品久久夜| 日韩欧美一区二区三区在线| 91伊人久久大香线蕉| 久久99精品久久久| 亚洲国产va精品久久久不卡综合| 久久老女人爱爱| 欧美精品在线观看播放| 99v久久综合狠狠综合久久| 男人的j进女人的j一区| 亚洲精品久久久蜜桃| 久久久久久久久久久黄色| 91精品国产色综合久久ai换脸 | 亚洲毛片av在线| 久久网站热最新地址| 欧美精品在线观看播放| 91精品福利视频| 99视频超级精品| 成人免费视频caoporn| 精品一区二区在线免费观看| 亚洲成人av中文| 亚洲麻豆国产自偷在线| 国产精品污网站| 精品久久久久久久久久久久久久久| 欧美中文字幕一二三区视频| 99久久婷婷国产综合精品| 国产91精品久久久久久久网曝门| 经典三级一区二区| 麻豆久久一区二区| 日本欧美一区二区| 日韩激情中文字幕| 视频一区二区三区入口| 一区二区激情视频| 亚洲自拍与偷拍| 亚洲精品第1页| 一区二区三区国产| 一区二区三区在线视频观看| 曰韩精品一区二区| 亚洲精品少妇30p| 亚洲激情男女视频| 亚洲激情图片一区| 亚洲第一主播视频| 亚洲成人黄色小说| 男人的天堂久久精品| 男人的j进女人的j一区| 经典一区二区三区| 国产99久久久国产精品潘金 | 亚洲天堂免费看| 亚洲免费三区一区二区| 亚洲精品国产无套在线观| 亚洲精品欧美专区| 午夜一区二区三区视频| 青青草精品视频| 国产精品一区2区| 成人av电影免费观看| 波多野结衣中文字幕一区二区三区 | 亚洲成a人片在线不卡一二三区| 亚洲在线一区二区三区| 秋霞av亚洲一区二区三| 国产大陆精品国产| 99久久综合色| 91精品国产aⅴ一区二区| 久久色.com| 亚洲视频一二区| 日本在线不卡一区| 国产成人在线影院| 欧洲另类一二三四区| 精品久久久久一区二区国产| 国产午夜亚洲精品理论片色戒 | 欧美性欧美巨大黑白大战| 欧美精品久久久久久久多人混战| 日韩限制级电影在线观看| 久久九九影视网| 亚洲一区二区三区四区在线| 白白色亚洲国产精品| 欧美日韩mp4| 国产精品美女www爽爽爽| 亚洲一区二区三区四区在线免费观看| 蜜桃视频一区二区三区在线观看| 国产成人午夜精品5599| 欧美最新大片在线看| 久久精品免费在线观看| 在线观看亚洲一区| 亚洲乱码精品一二三四区日韩在线 | 国产在线一区二区| 91麻豆自制传媒国产之光| 69堂精品视频| 国产精品电影院| 国产一区二区按摩在线观看| 色香蕉成人二区免费| 精品国产乱码久久久久久闺蜜| 国产精品九色蝌蚪自拍| 久久精工是国产品牌吗| 色吊一区二区三区| 欧美—级在线免费片| 免费一级片91| 欧美三级视频在线| 国产精品久久久久久久午夜片| 久久91精品久久久久久秒播| 欧美亚洲国产bt| 一区精品在线播放| 久久成人综合网| 91精品久久久久久久久99蜜臂| 亚洲欧美激情视频在线观看一区二区三区 | 蜜桃精品视频在线观看| 99精品国产99久久久久久白柏| 日韩视频免费观看高清在线视频| 亚洲精品欧美专区| 成人av资源在线观看| 26uuu欧美日本| 青青草精品视频| 欧美一级二级三级蜜桃| 亚洲在线观看免费视频| 色综合久久88色综合天天免费| 国产日韩欧美电影| 欧美主播一区二区三区美女| 亚洲欧洲日韩一区二区三区| 国产不卡一区视频| 久久久久久久久久久久久夜| 精品一区二区三区免费观看| 日韩午夜三级在线| 日韩电影在线观看一区| 欧美日韩不卡视频| 亚洲综合在线视频| 欧美日韩精品一区视频| 亚洲成av人**亚洲成av**| 在线成人小视频| 美女网站色91| 久久嫩草精品久久久久|