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

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

?? diag_lib.c

?? WinDriver Cypress USB 偵錯程式 for Wince 5.0
?? C
字號:
/******************************************************************************
*  File: diag_lib.c - Implementation of shared WD user-mode diagnostics API.  *
*                                                                             *
*  Copyright (c) 2003 - 2006 Jungo Ltd.  http://www.jungo.com                 *
*******************************************************************************/

#if !defined(__KERNEL__)

#include <stdio.h>
#include "diag_lib.h"

/*************************************************************
  General definitions
 *************************************************************/
/* Error messages display */
#define DIAG_ERR printf

/*************************************************************
  Functions implementation
 *************************************************************/
#define BYTES_IN_LINE 16
#define HEX_CHARS_PER_BYTE 3
#define HEX_STOP_POS BYTES_IN_LINE * HEX_CHARS_PER_BYTE
void DIAG_PrintHexBuffer(PVOID pBuf, DWORD dwBytes, BOOL fAscii)
{
    PBYTE pbData = (PBYTE)pBuf;
    CHAR pHex[HEX_STOP_POS + 1];
    CHAR pAscii[BYTES_IN_LINE + 1];
    DWORD dwOffset, dwLineOffset, i;

    if (!pBuf || !dwBytes)
    {
        DIAG_ERR("DIAG_PrintHexBuffer: Error - %s\n",
            !pBuf ? "NULL buffer pointer" : "Empty buffer");
        return;
    }
        
    for (dwOffset = 0; dwOffset < dwBytes; dwOffset++)
    {
        dwLineOffset = dwOffset % BYTES_IN_LINE;
        if (dwOffset && !dwLineOffset)
        {
            if (pAscii)
                pAscii[dwLineOffset] = '\0';
            printf("%s%s%s\n", pHex, fAscii ? " | " : "", fAscii ? pAscii : "");
        }
        sprintf(pHex + dwLineOffset * HEX_CHARS_PER_BYTE, "%02X ", (UINT32)pbData[dwOffset]);
        if (fAscii)
        {
            pAscii[dwLineOffset] =
                (CHAR)((pbData[dwOffset] >= 0x20) ? pbData[dwOffset] : '.');
        }
    }

    /* Print the last line. Fill with blanks if needed */
    if (dwOffset % BYTES_IN_LINE)
    {
        for (i = (dwOffset % BYTES_IN_LINE) * HEX_CHARS_PER_BYTE;
            i < BYTES_IN_LINE * HEX_CHARS_PER_BYTE;
            i++)
        {
            pHex[i] = ' ';
        }
        pHex[i] = '\0';
    }
    if (fAscii)
        pAscii[dwOffset % BYTES_IN_LINE] = '\0';
        printf("%s%s%s\n", pHex, fAscii ? " | " : "", fAscii ? pAscii : "");
}

int DIAG_GetHexChar(void)
{
    int ch;

    ch = getchar();

    if (!isxdigit(ch))
        return -1;

    if (isdigit(ch))
        return ch - '0';
    else
        return toupper(ch) - 'A' + 10;
}

DWORD DIAG_GetHexBuffer(PVOID pBuffer, DWORD dwBytes)
{
    DWORD dwBytesRead = 0;
    PBYTE pData = (PBYTE)pBuffer;
    int res;
    int ch;

    while (dwBytesRead < dwBytes)
    {
        ch = DIAG_GetHexChar();
        if (ch < 0)
            continue;

        res = ch << 4;

        ch = DIAG_GetHexChar();
        if (ch < 0)
            continue;

        res += ch;
        pData[dwBytesRead] = (BYTE)res;
        dwBytesRead++;
    }

    /* Advance to new line */
    ch = getchar();
    while (1)
    {
        if (ch == '\n' || ch == '\r')
            break;
        ch = getchar();
    }

    /* Return the number of bytes that was read */
    return dwBytesRead;
}

/* Get menu option from user */
DIAG_INPUT_RESULT DIAG_GetMenuOption(PDWORD pdwOption, DWORD dwMax)
{
    static CHAR sInput[256];
    int iRet;

    if (!pdwOption)
    {
        DIAG_ERR("DIAG_GetMenuOption: Error - NULL option pointer\n");
        return DIAG_INPUT_FAIL;
    }

    printf("Enter option: ");

    fgets(sInput, sizeof(sInput), stdin);

    iRet = sscanf(sInput, "%ld", pdwOption);

    if (iRet < 1)
    {
        printf("Invalid option\n");
        return DIAG_INPUT_FAIL;
    }
    
    if (DIAG_EXIT_MENU == *pdwOption)
        return DIAG_INPUT_SUCCESS;

    if (!dwMax)
        return DIAG_INPUT_SUCCESS;
    
    if (*pdwOption > dwMax)
    {
        printf("Invalid option: Option must be %s%ld, or %d to exit\n",
            (1 == dwMax) ? "" : "between 1 - ", dwMax, DIAG_EXIT_MENU);
        return DIAG_INPUT_FAIL;
    }
        
    return DIAG_INPUT_SUCCESS;
}

DIAG_INPUT_RESULT DIAG_InputNum(PVOID pInput, const CHAR *sInputText,
    BOOL fHex, DWORD dwSize, UINT64 min, UINT64 max)
{
    static CHAR sInput[256];
    const CHAR *sFormat;
    int iRet;
    BOOL fCheckRange = (max > min);

    if (!pInput)
    {
        DIAG_ERR("DIAG_InputData: Error - NULL input pointer\n");
        return DIAG_INPUT_FAIL;
    }

    printf("%s (to cancel press '%c'): %s", (!sInputText || !strcmp(sInputText, "")) ?
        "Enter input" : sInputText, DIAG_CANCEL, fHex ? "0x" : "");

    fgets(sInput, sizeof(sInput), stdin);
    if (DIAG_CANCEL == tolower(sInput[0]))
        return DIAG_INPUT_CANCEL;

    switch (dwSize)
    {
    case sizeof(WORD):
        sFormat = fHex ? "%hX" : "%hu";
        break;
    case sizeof(UINT32):
        sFormat = fHex ? "%X" : "%u";
        break;
    case sizeof(UINT64):
        sFormat = fHex ? "%"PRI64"X" : "%"PRI64"d";
        break;
    default:
        DIAG_ERR("DIAG_InputNum: Error - Invalid size (%ld)\n", dwSize);
        return DIAG_INPUT_FAIL;
    }

    iRet = sscanf(sInput, sFormat, pInput);

    if (iRet < 1)
    {
        printf("Invalid input\n");
        return DIAG_INPUT_FAIL;
    }
 
    if (fCheckRange)
    {
        UINT64 tmp = sizeof(WORD) == dwSize ? *(WORD *)pInput :
            sizeof(UINT32) == dwSize ? *(UINT32 *)pInput :
            *(UINT64 *)pInput;

        if (tmp < min || tmp > max)
        {
            printf("Invalid input: Input must be between ");
            if (fHex)
                printf("0x%"PRI64"X and 0x%"PRI64"X\n", min, max);
            else
                printf("0x%"PRI64"d and 0x%"PRI64"d\n", min, max);
            return DIAG_INPUT_FAIL;
        }
    }

    return DIAG_INPUT_SUCCESS;
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久一区二区蜜臀| 亚洲一区二区三区美女| 亚洲欧洲av色图| 免费成人在线视频观看| 91麻豆国产香蕉久久精品| 日韩欧美国产麻豆| 亚洲自拍偷拍欧美| 成人av网在线| 精品久久久久99| 亚洲福利视频一区| 91蜜桃视频在线| 国产日产欧产精品推荐色| 日韩电影免费一区| 欧美片在线播放| 一区二区三区免费| 91偷拍与自偷拍精品| 久久久久青草大香线综合精品| 午夜精品福利在线| 色欧美片视频在线观看 | 亚洲免费三区一区二区| 国产精品一二三在| 日韩免费观看高清完整版| 午夜精品福利一区二区三区av| 91香蕉国产在线观看软件| 中文字幕精品—区二区四季| 国产成人精品www牛牛影视| 久久婷婷国产综合国色天香| 免费欧美在线视频| 精品入口麻豆88视频| 麻豆精品视频在线| 亚洲摸摸操操av| 91官网在线观看| 亚洲欧美视频在线观看视频| 91蜜桃婷婷狠狠久久综合9色| 亚洲三级理论片| 91久久一区二区| 偷拍日韩校园综合在线| 91精品国模一区二区三区| 日韩1区2区3区| 日韩欧美久久久| 国产一区二区精品久久99| 日本一区二区免费在线| 成人久久18免费网站麻豆| 国产精品国产三级国产| 色婷婷精品久久二区二区蜜臀av | 99久久久久久| 一区二区三区鲁丝不卡| 欧美精品三级日韩久久| 麻豆一区二区三| 国产拍揄自揄精品视频麻豆| 99综合影院在线| 亚洲成人综合在线| 欧美一区二区三区视频在线 | 97精品国产97久久久久久久久久久久| 日韩毛片高清在线播放| 欧美三级电影网| 精品一区二区三区在线观看国产 | 精品久久国产老人久久综合| 国产精品一区一区| 一区二区三区欧美在线观看| 91精品国产丝袜白色高跟鞋| 国产在线精品国自产拍免费| 18涩涩午夜精品.www| 91精品免费在线| 不卡视频一二三| 五月天中文字幕一区二区| 国产丝袜美腿一区二区三区| 色婷婷综合久色| 国产永久精品大片wwwapp| 一区二区三区在线免费播放| 精品国产一区二区三区av性色| 99久久婷婷国产综合精品电影| 午夜视频久久久久久| 国产欧美一区二区精品婷婷| 欧美日本在线一区| 99在线精品视频| 精品一区二区三区在线播放| 一区二区三区在线视频免费| 久久综合色综合88| 欧美精选午夜久久久乱码6080| 国产成人av一区| 美女视频一区在线观看| 亚洲精品国产第一综合99久久| www一区二区| 3d动漫精品啪啪1区2区免费| 久久精品无码一区二区三区| 欧美色爱综合网| 99视频有精品| 国产福利一区二区三区视频 | 欧美日韩精品一区二区在线播放| 成人中文字幕在线| 加勒比av一区二区| 三级成人在线视频| 亚洲一二三四区| 亚洲欧美日韩国产一区二区三区| 欧美精品一区二区三区很污很色的 | 麻豆一区二区在线| 视频一区欧美精品| 亚洲成在线观看| 亚洲精品五月天| 亚洲欧美一区二区久久| 中文字幕久久午夜不卡| 国产日产欧美精品一区二区三区| 日韩免费高清av| 日韩一区二区三区电影在线观看| 欧美日韩免费观看一区三区| 在线精品视频一区二区三四| 91蝌蚪porny成人天涯| 91丨九色丨黑人外教| av资源站一区| 91免费看视频| 91啦中文在线观看| 在线视频你懂得一区| 在线视频国内一区二区| 在线欧美日韩精品| 欧美日韩午夜在线视频| 欧美色图在线观看| 欧美日韩综合色| 欧美精品v国产精品v日韩精品 | 欧洲一区二区三区在线| 在线免费一区三区| 欧美电影一区二区| 日韩一区二区在线观看视频| 欧美变态凌虐bdsm| 国产日韩欧美高清在线| 国产精品久久影院| 一区二区成人在线| 日韩精彩视频在线观看| 久久99精品久久久久久| 国产成人在线视频网址| 99视频精品全部免费在线| 在线观看视频欧美| 欧美一级夜夜爽| 国产欧美日韩不卡免费| 亚洲日本韩国一区| 亚洲电影视频在线| 精品一区二区三区蜜桃| 岛国一区二区在线观看| 欧美伊人精品成人久久综合97| 欧美精品乱码久久久久久 | 1区2区3区欧美| 亚洲电影一级片| 九九精品一区二区| 99久久精品国产观看| 欧美日韩国产成人在线91| 日韩精品在线网站| 中文字幕日本不卡| 日日摸夜夜添夜夜添精品视频| 国产精品一区二区免费不卡| 91久久精品一区二区| 精品国精品自拍自在线| 亚洲激情男女视频| 久久爱www久久做| 色8久久人人97超碰香蕉987| 欧美大片日本大片免费观看| 中文字幕在线观看一区二区| 日韩国产欧美三级| 97久久精品人人做人人爽| 精品久久久久久综合日本欧美| 亚洲精品老司机| 国产剧情一区二区三区| 欧美日韩第一区日日骚| 国产精品久久久久影院色老大| 日韩av高清在线观看| 波多野结衣在线一区| 日韩视频在线你懂得| 一区二区三区蜜桃网| 国产精品一区二区久激情瑜伽 | 日韩黄色免费网站| 成人免费不卡视频| 日韩精品一区二区三区视频播放| 亚洲美女少妇撒尿| 国产精品性做久久久久久| 在线综合+亚洲+欧美中文字幕| 国产精品国产三级国产a| 狠狠色丁香婷综合久久| 欧美另类高清zo欧美| 亚洲色图欧美在线| 粉嫩蜜臀av国产精品网站| 日韩女优视频免费观看| 首页亚洲欧美制服丝腿| 欧美性大战久久久| 一区二区三区**美女毛片| 盗摄精品av一区二区三区| 久久九九99视频| 国产在线播放一区| 精品国产电影一区二区| 日本不卡视频一二三区| 911精品国产一区二区在线| 亚洲一区在线观看网站| 欧美在线一二三| 亚洲一区二区三区中文字幕| 日本道免费精品一区二区三区| 日韩毛片一二三区| 99久久精品国产一区| 亚洲天天做日日做天天谢日日欢| 不卡电影一区二区三区| 亚洲欧洲av在线| 色又黄又爽网站www久久| 一级日本不卡的影视|