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

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

?? sysmotvpdshow.c

?? VxWorks下 Mv2100的BSP源碼
?? C
字號:
/* sysMotVpdShow.c - Vital Product Data Show Routines. *//* Copyright 1998,1999 Motorola, Inc., All Rights Reserved *//*modification history--------------------01c,15jun00,dmw  Updated following WRS code review.01b,28may99,dmw  Updated to Wind River coding standards01a,09apr99,dmw  Brought over for mv2100 based on mv2400/vpdShow.c rev b.*//*DESCRIPTIONThis file contains the Vital Product Data Show utility routines. To use theseroutines, define INCLUDE_VPD and INCLUDE_SHOW_ROUTINES in config.h.*/#include "vxWorks.h"#include "config.h"#include "stdio.h"#include "sysMotVpd.h"/* externals */IMPORT STATUS sysVpdInit();IMPORT VPD_PACKET * sysVpdPkts[]; /* board vpd packets *//******************************************************************************** vpdPktPrintType - print the vpd packet type in ascii** This routine prints the vpd packet type in ascii.** RETURNS: N/A**/void vpdPktPrintType    (    UCHAR type	/* VPD packet type to print */    )    {    UCHAR * p;    /* setup the proper ascii string */    switch (type)        {        case VPD_PID_PID:            p = "Product Identifier";            break;        case VPD_PID_FAN:            p = "Factory Assembly Number";            break;        case VPD_PID_SN:            p = "Serial Number";            break;        case VPD_PID_PCO:            p = "Product Configuration Options";            break;        case VPD_PID_ICS:            p = "Internal Clock Speed (in HZ)";            break;        case VPD_PID_ECS:            p = "External Clock Speed (in HZ)";            break;        case VPD_PID_RCS:            p = "Reference Clock Speed (in HZ)";            break;        case VPD_PID_EA:            p = "Ethernet Address";            break;        case VPD_PID_MT:            p = "Microprocessor Type";            break;        case VPD_PID_CRC:            p = "EEPROM CRC";            break;        case VPD_PID_FMC:            p = "FLASH Memory Configuration";            break;        case VPD_PID_VLSI:            p = "VLSI Revisions/Versions";            break;        case VPD_PID_PCS:            p = "PCI  Clock Speed (in HZ)";            break;        case VPD_PID_L2:            p = "L2 Cache Configuration";            break;        case VPD_PID_TERM:            p = "Termination Marker";            break;        default:            p = "Unknown";            break;        }    /* print the string followed by the numeric packet code. */    printf ("%s (packet type = 0x%02x)\n", p, type);    return;    }/******************************************************************************** vpdPktPrintAscii - print the data area of an ascii vpd packet.** This routine prints the data area of an ascii packet. the number of bytes* printed is taken from the packet header.** RETURNS: N/A** SEE ALSO: vpdPktPrintDecimal(), vpdPktPrintHex() */void vpdPktPrintAscii    (    VPD_PACKET * pVpdPkt /* pointer to VPD packet to print */    )    {    UINT32 idx;    /* for each byte in the data area, print the current byte. */    for (idx = 0; idx < pVpdPkt->size; idx++)        printf ("%c", pVpdPkt->data[idx]);    printf ("\n");    return;    }/******************************************************************************** vpdPktPrintDecimal - print the data area of an decimal vpd packet.** This routine prints the data area of an decimal packet. the data width (byte,* half-word, or word) is taken from the packet header.** RETURNS: N/A** SEE ALSO: vpdPktPrintAscii(), vpdPktPrintHex() */void vpdPktPrintDecimal    (    VPD_PACKET * pVpdPkt /* pointer to VPD packet to print */    )    {    /* print the data area in decimal depending on the data size. */    switch (pVpdPkt->size)        {        case sizeof(UCHAR):            printf ("%d", *(UCHAR *)&pVpdPkt->data[0]);            break;        case sizeof(UINT16):            printf ("%d", *(UINT16 *)&pVpdPkt->data[0]);            break;        case sizeof(UINT32):            printf ("%d", *(UINT32 *)&pVpdPkt->data[0]);            break;        /* if the data size is unknown, indicate a field size error. */        default:            printf ("********");            break;        }    printf ("\n");    return;    }/******************************************************************************** vpdPktPrintHex - print the data area of an binary vpd packet in hex.** This routine prints the data area of an binary packet. the number of bytes* printed is taken from the packet header. An input parameter is passed which* controls the formatting of the displayed hex data. If the flag is set, the* data bytes are printed contiguously, (0x01020304...). If the flag is cleared,* the data bytes are printed individually (0x01 0x02 0x03 0x04...). The output* is formatted to limit the number of columns used to display the data. The* maximum number of bytes per line varies depending on the formatting flag* pvreiously mentioned.** RETURNS: N/A** SEE ALSO: vpdPktPrintAscii(), vpdPktPrintDecimal() */void vpdPktPrintHex    (    VPD_PACKET * pVpdPkt,	/* VPD packet pointer */    BOOL         contiguous	/* number of bytes/row to print */    )    {    UINT32 idx;    UINT32 limit;    /* set the number of bytes per row based on display format. */    limit = (contiguous) ? 16 : 8;    for (idx = 0; idx < pVpdPkt->size; ++idx)        {        /*         * if a new line is required, output a carriage return and align         * the data field with the one in the previous line.         */        if ( (idx != 0) && (idx % limit) == 0)            printf ("\n        ");        /*         * print the data byte. if printing contiguous bytes and this is a new         * line or printing individual bytes, print the "0x" prefix sequence.         * if printing individual bytes, print a trailing space character.         */        printf ("%s%02x%c",               ( !contiguous || ((idx % limit) == 0) ) ? "0x" : "",               pVpdPkt->data[idx],               (contiguous) ? '\0' : ' ');         }    /* add a trailing carriage return. */    printf ("\n");    return;    }/******************************************************************************** vpdPktPrint - display the contents of a vpd packet** This routine prints the contents of a vpd packet. ** RETURNS: N/A**/void vpdPktPrint    (    VPD_PACKET * pVpdPkt	/* VPD packet pointer */    )    {    /* print the field name and value for the packet type. */    printf (" Type = ");    vpdPktPrintType(pVpdPkt->type);    /*     * if this isn't a termination or illegal packet, then print the contents     * of the size and data fields based on the packet type.     */    if ( (pVpdPkt->type != VPD_PID_TERM) &&         (pVpdPkt->type != VPD_PID_GI) )        {        printf (" Size = 0x%02x\n", pVpdPkt->size);        printf ("Value = ");                switch (pVpdPkt->type)            {            case VPD_PID_PID:            case VPD_PID_FAN:            case VPD_PID_SN:            case VPD_PID_MT:                vpdPktPrintAscii(pVpdPkt);                break;            case VPD_PID_ICS:            case VPD_PID_ECS:	    case VPD_PID_PCS:            case VPD_PID_RCS:                vpdPktPrintDecimal(pVpdPkt);                break;                case VPD_PID_PCO:            case VPD_PID_EA:            case VPD_PID_CRC:            case VPD_PID_FMC:            case VPD_PID_VLSI:            case VPD_PID_L2:                vpdPktPrintHex(pVpdPkt, TRUE);                break;                default:                vpdPktPrintHex(pVpdPkt, FALSE);                break;            }        }    /* print a trailing carriage return. */    printf ("\n");    return;    }/******************************************************************************** vpdPrint - display the contents of a vpd structure** This routine loops through the vpd packet pointer array and prints the* contents of each packet.** RETURNS: OK, if successful or ERROR if unsuccessful.** SEE ALSO: vpdPktPrint()*/STATUS vpdPrint    (    VPD_PACKET ** pVpdPkts /* VPD packet pointer array */    )    {    UCHAR type;    /*     * if the first entry in the vpd packet pointer array is null, the vpd     * data is invalid. return an error indication.     */    if (*pVpdPkts == NULL)        return (ERROR);    /*     * loop through each pointer in the vpd packet pointer array and print     * the contents of each packet. continue until the termination packet is     * reached.     */    do        {        type = (*pVpdPkts)->type;        vpdPktPrint(*pVpdPkts);        pVpdPkts++;        } while (type != VPD_PID_TERM);    return (OK);    }/******************************************************************************** vpdShow - display the board's vpd data** If required, this routine reads the board-level vital product data from a* serial eeprom and, if valid, displays the vpd contents.** RETURNS: OK, if successful or ERROR if unsuccessful.** SEE ALSO: N/A*/STATUS vpdShow (void)    {    /*     * if the first entry in the vpd packet pointer array is null, then     * the vpd data needs to be read into memory and parsed.     */    if (sysVpdPkts[0] == NULL)        {        printf ("Reading VPD data.\n\n");        if (sysVpdInit () != OK )            {            printf ("VPD structure invalid.\n");            return (ERROR);            }        }    /* print the vpd data. */    return (vpdPrint (&sysVpdPkts[0]));    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本vs亚洲vs韩国一区三区二区 | 91猫先生在线| 91国偷自产一区二区使用方法| 91美女福利视频| 欧美一区二区三区免费| 99国产精品久久久久久久久久| 欧美视频一区二区在线观看| 日韩欧美的一区二区| 精品久久一区二区| 亚洲人妖av一区二区| 一区二区在线看| 国产精品中文欧美| 欧美午夜精品一区二区蜜桃| 日韩视频在线你懂得| 综合久久国产九一剧情麻豆| 美女精品自拍一二三四| 亚洲国产综合91精品麻豆| 日韩中文欧美在线| 99国产精品国产精品毛片| 欧美一级搡bbbb搡bbbb| 亚洲少妇中出一区| 婷婷一区二区三区| 国产真实乱偷精品视频免| 91蜜桃网址入口| 久久精品亚洲麻豆av一区二区 | 一区二区三区在线观看国产| 国内久久婷婷综合| 欧美丰满美乳xxx高潮www| 国产精品国产自产拍高清av| 奇米色一区二区| 国产高清无密码一区二区三区| 欧美色视频在线| 中文字幕av一区二区三区免费看 | 亚洲国产成人一区二区三区| 免费的国产精品| 在线免费观看不卡av| 中国av一区二区三区| 国产一区二区久久| 91精品在线麻豆| 亚洲123区在线观看| 99久久精品国产麻豆演员表| 国产欧美精品在线观看| 国产精品一区二区久激情瑜伽 | www.亚洲在线| 国产亚洲成年网址在线观看| 亚洲一区二区三区视频在线| 色综合欧美在线视频区| 中文字幕在线一区二区三区| 国产成人亚洲综合色影视| 日韩亚洲欧美成人一区| 日韩高清不卡一区二区| 色婷婷精品大在线视频| 亚洲精品日韩一| 欧美亚洲自拍偷拍| 亚洲精品美腿丝袜| 91国偷自产一区二区三区成为亚洲经典| 国产精品天干天干在线综合| 一区二区三区资源| 色婷婷一区二区| 日韩毛片精品高清免费| 日本久久一区二区三区| 亚洲高清三级视频| 91精品国产综合久久久蜜臀粉嫩 | 麻豆精品久久精品色综合| 这里是久久伊人| 国产成人亚洲精品青草天美| 一区二区三区中文字幕| 欧美成人a视频| av不卡免费电影| 首页国产欧美日韩丝袜| 国产欧美精品一区二区色综合| 色av一区二区| 国产一区二区在线看| 一区二区三区资源| 久久先锋资源网| 在线免费观看日本一区| 国产在线看一区| 亚洲夂夂婷婷色拍ww47| 久久免费精品国产久精品久久久久| 91影院在线免费观看| 久久精品99国产精品| 一区二区三区在线视频免费| 精品少妇一区二区三区视频免付费 | 国产成人av自拍| 日本中文字幕不卡| 自拍偷拍亚洲综合| 精品剧情在线观看| 欧美日韩一级视频| 99久久精品国产网站| 国产一区二区三区在线观看免费视频| 洋洋成人永久网站入口| 欧美激情一区在线| 中文一区二区在线观看| 欧美精品日韩综合在线| 一本色道**综合亚洲精品蜜桃冫 | 欧洲一区在线观看| 国产成人精品三级| 精品影院一区二区久久久| 亚洲地区一二三色| 一区二区三区高清| 中文字幕一区二区三区四区 | 精品奇米国产一区二区三区| 欧美久久久一区| 欧美综合欧美视频| 色欧美日韩亚洲| 91丨九色丨尤物| 91麻豆高清视频| 色综合色综合色综合色综合色综合 | 777奇米四色成人影色区| 欧美系列在线观看| 97久久超碰国产精品| av网站免费线看精品| 成人免费电影视频| 成人av影视在线观看| 丰满少妇在线播放bd日韩电影| 国产精品性做久久久久久| 国内成人精品2018免费看| 国产乱码字幕精品高清av| 福利91精品一区二区三区| 国产亚洲欧美色| 亚洲精品乱码久久久久久黑人| 国产91精品一区二区麻豆网站| 欧美主播一区二区三区| av欧美精品.com| 国产成人av一区二区| 国产一区二区免费看| 成人一区二区在线观看| 94-欧美-setu| 欧美性高清videossexo| 制服丝袜中文字幕亚洲| 日韩欧美一区在线观看| 久久一留热品黄| 国产精品免费视频观看| 一区二区三区精密机械公司| 亚洲图片欧美色图| 免费av成人在线| 国产精品羞羞答答xxdd| 一本色道久久综合亚洲91 | 色综合久久综合中文综合网| 色天使色偷偷av一区二区| 欧美日韩国产成人在线91| 91精品国产综合久久婷婷香蕉| 久久久久99精品一区| 一区二区三区在线免费| 免费看精品久久片| 不卡区在线中文字幕| 欧美精品日日鲁夜夜添| 国产人成一区二区三区影院| 亚洲欧美日韩成人高清在线一区| 午夜a成v人精品| 欧美喷潮久久久xxxxx| 久久日韩粉嫩一区二区三区 | 久久在线观看免费| 亚洲一区在线观看视频| 国产一区二区不卡| 欧美伊人精品成人久久综合97 | 6080国产精品一区二区| 欧美国产日本韩| 美女任你摸久久 | 欧美一区二区免费视频| 国产精品天天摸av网| 麻豆91在线看| 色综合天天综合| 久久精品视频网| 日韩国产精品91| 91久久精品一区二区三| 久久伊人蜜桃av一区二区| 丝袜亚洲精品中文字幕一区| 成人av网站免费| 久久色中文字幕| 日韩电影免费一区| 欧美性生活久久| 亚洲视频网在线直播| 国产精品一区二区在线播放| 欧美日韩国产一级片| 国产精品免费av| 国产传媒欧美日韩成人| 欧美一卡2卡三卡4卡5免费| 亚洲五月六月丁香激情| 日本精品一区二区三区四区的功能| 国产亚洲女人久久久久毛片| www.av亚洲| 国产精品欧美一区二区三区| 国产原创一区二区| 日韩视频在线你懂得| 日韩精品电影一区亚洲| 91官网在线观看| 一区二区三区欧美| 97se狠狠狠综合亚洲狠狠| 国产精品亲子乱子伦xxxx裸| 成人做爰69片免费看网站| 久久综合av免费| 国内久久婷婷综合| 精品久久久三级丝袜| 黑人精品欧美一区二区蜜桃 | 欧美日韩国产一级| 亚洲成人在线网站| 欧美高清视频不卡网| 琪琪久久久久日韩精品| 欧美刺激脚交jootjob|