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

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

?? bootline.c.bak

?? miceteck_MPC860_BSP源碼,基于VXWORK
?? BAK
字號:
#include "vxworks.h"
#include "bootLib.h"
#include "flashMem.h"
#include "arpa\inet.h"

const UINT8 DEFAULT_10M_MAC_ADRS[6] = {0x08,0x00,0x3e,0x03,0x02,0x09};

#ifdef INCLUDE_MOT_FEC
  const DEFAULT_100M_MAC_ADRS[6] = {0x08,0x00,0x3e,0x03,0x02,0x0a};
#endif /* INCLUDE_MOT_FEC */

/******************************************************************************
*
* sysNvRamGet - get the contents of non-volatile RAM
*
* This routine copies the contents of non-volatile memory into a specified
* string.  The string is terminated with an EOS.
*
* RETURNS: OK, or ERROR if access is outside the non-volatile RAM range.
*
* SEE ALSO: sysNvRamSet()
*/

STATUS sysNvRamGet
    (
    char *string,    /* where to copy non-volatile RAM    */
    int strLen,      /* maximum number of bytes to copy   */
    int offset       /* byte offset into non-volatile RAM */
    )
    {
    	
    offset += NV_BOOT_OFFSET;   /* boot line begins at <offset> = 0 */

     if ((offset < 0)
     || (strLen < 0)
     || ((offset + strLen) > NV_RAM_SIZE))
        return (ERROR);
    
    sysFlashGet(string,(int)strLen,offset);

    /*
    printf("\n\nstring: %s\n", string);
    
    printf("end of sysNvRamGet()\n");
    */
    return (OK);
    }

/*******************************************************************************
*
* sysNvRamSet - write to non-volatile RAM
*
* This routine copies a specified string into non-volatile RAM.
*
* RETURNS: OK, or ERROR if access is outside the non-volatile RAM range.
*
* SEE ALSO: sysNvRamGet()
*/

STATUS sysNvRamSet
    (
    char *string,     /* string to be copied into non-volatile RAM */
    int strLen,       /* maximum number of bytes to copy           */
    int offset        /* byte offset into non-volatile RAM         */
    )

    {
    STATUS result = OK;
/*    
    printf("start of sysNvRamSet()\n");
*/    

    offset += NV_BOOT_OFFSET;   /* boot line begins at <offset> = 0 */
    
    if ((offset < 0)
     || (strLen < 0)
     || ((offset + strLen) > 65536)) /*NV_RAM_SIZE))*/
        return ERROR; 

    sysFlashErase(SECTOR_ERASE,(UINT8 *)FLASH_ADRS,NV_RAM_SIZE);
    sysFlashWrite(NVRAM_INITIALIZED,NV_INIT_SIZE+1,0);
    sysFlashWrite(string,(int)strLen,offset);

    return result;
    }

/******************************************************************************
*
* checkInetAddr - check for valid inet address in boot field
*/

LOCAL STATUS checkInetAddr 
    (
    char *pInetAddr,
    BOOL subnetMaskOK
    )
    {
    char inetAddr [30];
    int netmask;

    /* 
     * The bzero() call corrects SPR 6326. The calls to bootNetmaskExtract()
     * and inet_addr() did not delimit the input string with a '\0'. When
     * inet_addr attempted to print the invalid address, the system would
     * crash or hang.
     */

    bzero (inetAddr, sizeof(inetAddr));

    if (*pInetAddr == EOS)
	return (OK);

    strncpy (inetAddr, pInetAddr, sizeof (inetAddr) - 1);

    if (subnetMaskOK)
	{
	if (bootNetmaskExtract (inetAddr, &netmask) < 0)
	    {
	    printf ("Error: invalid netmask in boot field \"%s\".\n", inetAddr);
	    return (ERROR);
	    }
	}

    if (inet_addr (inetAddr) == (ULONG) ERROR)
	{
	printf ("Error: invalid inet address in boot field \"%s\".\n",inetAddr);
	return (ERROR);
	}

    return (OK);
    }
/******************************************************************************
*
* bootLineSet - change the boot line contents in NVRAM
* RETURNS: OK or ERROR
*/
STATUS bootLineSet
  (
   char* bootLine
  )
  {
  BOOT_PARAMS Params;
  char*       pS;
   
    pS = (char *)malloc(255);
    if (pS == NULL)
       return(ERROR);
/*    printf("\nBoot line is:%s",bootLine); */
    pS = bootStringToStruct (bootLine, &Params);
    if (*pS != EOS)
	{
        printf("\nBoot string failed to struct"); 
	bootParamsErrorPrint (bootLine, pS);
        return (ERROR);
	}

    /* check inet addresses */

    if ((checkInetAddr(Params.ead, TRUE) != OK) ||
	(checkInetAddr(Params.bad, TRUE) != OK) ||
	(checkInetAddr(Params.had, FALSE) != OK) ||
	(checkInetAddr(Params.gad, FALSE) != OK))
	{
        printf("\nThe Inet Address is invalid!");
        return (ERROR);
	}
    sysNvRamSet(bootLine,strlen(bootLine)+1,0);
    strcpy (BOOT_LINE_ADRS, bootLine);
    return (OK);
} 

/*******************************************************************************
*
* bootLineGet - get the boot line contents in NVRAM
* RETURNS: OK or ERROR
*/

STATUS bootLineGet
   (
    char* bootLine
   )
   {

   if(sysNvRamGet(bootLine,BOOT_LINE_SIZE,0) == ERROR)
      return (ERROR);
/*   printf("\n The boot line exist is: %s",bootLine);*/
   
   return (OK);
}

/*******************************************************************************
*
* macAdrsGet - get 10M_MAC/100M_MAC/10M_IP address from NVRAM
* adrs - adrs[0]~adrs[5] 10M_MAC address,ads[6]~adrs[11] 100M_MAC address
*        adrs[12]~adrs[15] 10M_IP
* RETURNS: OK or ERROR
*/
STATUS macAdrsGet
   (
    UINT8* adrs
   )
   {
   
   return (sysFlashGet(adrs,28,MAC_ADRS+5-FLASH_ADRS));
    
   }

/*******************************************************************************
*
* macAdrsSet - set 10M_MAC/100M_MAC/10M_IP address from NVRAM
* adrs - adrs[0]~adrs[5] 10M_MAC address,ads[6]~adrs[11] 100M_MAC address
*        adrs[12]~adrs[15] 10M_IP
* RETURNS: OK or ERROR
*/
STATUS macAdrsSet
    (
     UINT8* adrs
    )
    {
    printErr("\nThe mac_adrs is:0x%8x",MAC_ADRS);	
    if (sysFlashErase(SECTOR_ERASE,(UINT8*)MAC_ADRS,65536) == ERROR)
        return ERROR;
    printErr("\nErase ok!");    
    if (sysFlashWrite(NVRAM_INITIALIZED,NV_INIT_SIZE+1,MAC_ADRS-FLASH_ADRS) == ERROR)
        return ERROR;
    printErr("\nWrite INIT ok!");   
    
    if (sysFlashWrite(adrs,6,MAC_ADRS-FLASH_ADRS+5) == ERROR)
        return ERROR;
    printErr("\nWrite ADRS ok!");
   
    
    return (OK);
    }    


/************************************************************************************
*
* testNVRam - this routine test NVRam related routines
*/

void testNVRam(void){
        char  initValue[NV_INIT_SIZE+1];

	if ((sysNvRamGet(&initValue[0],NV_INIT_SIZE+1,-NV_BOOT_OFFSET)) != ERROR)
	{
	  
	  if ( strcmp( initValue, NVRAM_INITIALIZED) != 0 ) 
	  {
	    printf("\nNVRam not initiated!");	
	    (void)sysNvRamSet(DEFAULT_BOOT_LINE, strlen(DEFAULT_BOOT_LINE)+1,0);
			
	  }
	  printf("\nNVRam initiated!");
	}
	if ((sysNvRamGet (BOOT_LINE_ADRS, BOOT_LINE_SIZE, 0) == ERROR) ||
	    (*BOOT_LINE_ADRS == EOS))
	    {
	    /* either no non-volatile RAM or empty boot line */
            printf("\nGet bootline Error!");
	    strcpy (BOOT_LINE_ADRS, DEFAULT_BOOT_LINE);
	    }
	printf("\nThe bootline is:%s",(char*)BOOT_LINE_ADRS);
}

/*************************************************************************************
*
*testMac - this routine test Mac address and 10M IP set/get related routines
*/
void testMac(void){
    char  initValue[NV_INIT_SIZE+1];
    UINT8 macAdrs[6];
    	
    if ((sysFlashGet(&initValue[0],NV_INIT_SIZE+1,MAC_ADRS-FLASH_ADRS)) != ERROR)
	{
	  printf("\nMac address read ok!");
	  if ( strcmp( initValue, NVRAM_INITIALIZED) != 0 ) 
	    {
	     printf("\nMac address not set");	
             /* printf("\nThe 10M_MAC address is 0x%8x",DEFAULT_10M_MAC_ADRS); */
	     bcopy((UINT8*)DEFAULT_10M_MAC_ADRS,(UINT8*)macAdrs,6);
	     
             #ifdef INCLUDE_MOT_FEC
	       bcopy((UINT8*)DEFAULT_100M_MAC_ADRS,(UINT8*)(macAdrs+6),6);
               bcopy((UINT8*)DEFAULT_10M_IP,(UINT8*)(macAdrs+12),16);
               printf("The 10M_IP is %s",macAdrs+12);
             #endif /* INCLUDE_MOT_FEC */
             
	     macAdrsSet(macAdrs);
	   }
          else
             macAdrsGet(macAdrs);
        }
     printf("\nMac address set ok");   
     bcopy((UINT8*)macAdrs,sysCpmEnetAddr,6);

#ifdef INCLUDE_MOT_FEC
     bcopy((UINT8*)(macAdrs+6),sysFecEnetAddr,6);
     bcopy((UINT8*)(macAdrs+12),sysCpmEnetIp,16); 
#endif
     printf("\nThe mac address is:%s",macAdrs);
}


STATUS flashParamSet (UINT8 *parameter, int length){
	
    if (sysFlashErase (SECTOR_ERASE, (UINT8 *)FLASH_PARAM, 0x10000) == ERROR)
       return (ERROR);
       
    if (sysFlashWrite (parameter, length, FLASH_PARAM-FLASH_ADRS) == ERROR)
       return (ERROR);
       
    return (OK);
}       
       
STATUS flashParamGet (UINT8 *parameter, int length){
    
    bcopyBytes ((char *)FLASH_PARAM, parameter, length);
    parameter[length] = EOS;
    
    return (OK);
} 

STATUS destiNetworkGet(UINT8 *adrs){

return (sysFlashGet(adrs,16,DESTINATION_NETWORK_ADRS-FLASH_ADRS));
}

STATUS destiNetworkSet(UINT8 *adrs){

    printErr("\nThe destination network is:0x%8x",DESTINATION_NETWORK_ADRS);	
    if (sysFlashErase(SECTOR_ERASE,(UINT8*)DESTINATION_NETWORK_ADRS,65536) == ERROR)
        return ERROR;
    printErr("\nErase ok!");    
    if (sysFlashWrite(adrs,16,DESTINATION_NETWORK_ADRS-FLASH_ADRS) == ERROR)
        return ERROR;
    printErr("\nWrite ok!");   

    return (OK);
}

void printBootLogo(){
    printErr("\n\n\n\rShanghai Optical Networking Technology Co.,Ltd.");
    printErr("\n");
    printErr("\n\rEmail:marketing@alloptic.com.cn");
    printErr("\n\rWeb:www.alloptic.com.cn");
    printErr("\n\rTel:86-21-64838770");
    printErr("\n");
    printErr("\n\rCopyright (C) 2005");
    printErr("\n\n\n");
}

void printShellLogo(){
    printErr("\n\rEntering Ca6004 Config Shell...done");
    printErr("\n\r->");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美极品少妇xxxxⅹ高跟鞋| 欧美v日韩v国产v| 国产伦精品一区二区三区免费| 亚洲男人的天堂网| 久久综合九色综合97婷婷| 欧美影视一区在线| 国产91丝袜在线播放| 日本美女一区二区三区视频| 亚洲精品免费在线观看| 国产婷婷色一区二区三区四区| 欧美男生操女生| 色哟哟国产精品| 国产精品一区二区久激情瑜伽| 亚洲成人在线观看视频| 亚洲日本欧美天堂| 国产视频一区二区三区在线观看 | 日韩中文字幕av电影| 中文字幕亚洲一区二区va在线| 精品美女一区二区三区| 91精品免费观看| 欧美日韩一区二区三区视频 | 欧美tk丨vk视频| 欧美日韩日本视频| 色婷婷久久久久swag精品| 高清在线成人网| 国产成人精品一区二| 黑人精品欧美一区二区蜜桃| 无码av免费一区二区三区试看| 一区二区高清免费观看影视大全| 国产精品久久夜| 国产精品欧美一区二区三区| 日本一区二区三区在线观看| 久久久亚洲欧洲日产国码αv| 日韩欧美激情一区| 欧美一区二区在线免费观看| 制服视频三区第一页精品| 欧美日韩一区二区欧美激情| 在线免费观看不卡av| 欧美自拍偷拍一区| 在线观看av不卡| 欧美色图在线观看| 欧美亚洲综合另类| 欧美日韩黄色影视| 欧美精品一二三| 91精品国产免费| 精品欧美久久久| 国产欧美精品日韩区二区麻豆天美| www成人在线观看| 国产精品―色哟哟| 亚洲私人影院在线观看| 国产精品久久久久久妇女6080| 国产精品黄色在线观看| 亚洲黄色免费电影| 亚洲成人一二三| 久久99久国产精品黄毛片色诱| 经典一区二区三区| 成人动漫一区二区三区| 色美美综合视频| 欧美一级午夜免费电影| 久久久久久9999| 亚洲天堂中文字幕| 亚洲国产成人av| 激情成人综合网| av亚洲精华国产精华| 欧美亚洲禁片免费| 91麻豆精品久久久久蜜臀| 久久夜色精品一区| 国产精品每日更新| 亚洲成人精品在线观看| 激情综合色播激情啊| 99久久精品费精品国产一区二区| 欧美午夜片在线观看| 欧美成人猛片aaaaaaa| 欧美国产97人人爽人人喊| 亚洲综合区在线| 国产一区二区三区国产| 91麻豆精品一区二区三区| 欧美区在线观看| 国产人久久人人人人爽| 亚洲国产日韩av| 国产乱人伦偷精品视频免下载| 91在线精品一区二区三区| 欧美一区二区不卡视频| 国产精品久久久久aaaa| 免费在线视频一区| 成人av动漫在线| 欧美一区二区视频观看视频| 国产精品国产自产拍高清av王其 | 国产精品久久毛片av大全日韩| 午夜在线电影亚洲一区| 国产成人av一区二区三区在线观看| 欧美做爰猛烈大尺度电影无法无天| 欧美一二三区在线观看| 中文字幕一区二区不卡| 久久99国产精品免费网站| 色爱区综合激月婷婷| 亚洲精品在线观看网站| 亚洲h在线观看| 播五月开心婷婷综合| 欧美大胆人体bbbb| 亚洲一区二区在线免费观看视频| 国产成人亚洲综合a∨婷婷| 91精品国产色综合久久不卡电影| 亚洲日本韩国一区| 国产**成人网毛片九色| 欧美mv日韩mv国产网站app| 亚洲成人动漫在线观看| 91视频在线看| 国产精品高清亚洲| 国产成人免费在线观看不卡| 制服.丝袜.亚洲.另类.中文| 亚洲综合一区二区三区| 99riav一区二区三区| 久久久久久久久久久久久女国产乱| 天天综合天天综合色| 色老汉一区二区三区| 综合久久给合久久狠狠狠97色| 国产在线精品国自产拍免费| 日韩精品一区二| 免费在线观看精品| 欧美精品欧美精品系列| 亚洲综合丁香婷婷六月香| 99热在这里有精品免费| 国产精品少妇自拍| 懂色av一区二区三区免费看| 欧美精品一区二区精品网| 青青草国产精品亚洲专区无| 91精品国产综合久久国产大片| 亚洲成va人在线观看| 欧洲亚洲国产日韩| 亚洲午夜激情网页| 欧美性生活一区| 亚洲二区在线观看| 欧美电影影音先锋| 亚洲第一二三四区| 51精品视频一区二区三区| 亚洲va欧美va人人爽午夜| 欧美日本在线一区| 秋霞av亚洲一区二区三| 日韩午夜三级在线| 狠狠久久亚洲欧美| 久久精品一区蜜桃臀影院| 国产suv一区二区三区88区| 欧美国产日韩a欧美在线观看| 成人一道本在线| 综合久久一区二区三区| 在线中文字幕一区| 五月婷婷久久丁香| 欧美电视剧免费观看| 国产不卡一区视频| 亚洲日本va午夜在线影院| 欧美亚洲动漫精品| 蜜臀国产一区二区三区在线播放| 欧美成人女星排名| 成人黄色在线网站| 樱桃国产成人精品视频| 欧美日韩国产乱码电影| 激情综合色综合久久综合| 中文字幕欧美日韩一区| 在线免费不卡视频| 久久99久国产精品黄毛片色诱| 欧美国产欧美综合| 精品视频资源站| 国产在线精品一区二区夜色| 国产精品成人一区二区艾草 | 国产精品久久久久影院老司| 一道本成人在线| 久久国产综合精品| 亚洲三级小视频| 欧美一区二区三区免费观看视频| 国产精品影视网| 伊人婷婷欧美激情| 欧美成人精品3d动漫h| jlzzjlzz欧美大全| 欧美a级理论片| 国产精品美女久久久久久2018| 欧美日韩美少妇| 成人一区二区三区| 日韩国产成人精品| 中文字幕日本不卡| 欧美mv和日韩mv国产网站| 91亚洲男人天堂| 国产又黄又大久久| 亚洲国产一区二区三区| 国产无一区二区| 欧美一级一区二区| 色婷婷综合久久久中文字幕| 久久99国产精品尤物| 亚洲一区二区精品视频| 久久一区二区三区四区| 欧美日韩在线播| av午夜一区麻豆| 狠狠网亚洲精品| 午夜精品成人在线视频| 国产精品嫩草99a| 久久综合久久久久88| 欧美伦理电影网| 91麻豆国产福利在线观看| 激情图区综合网| 免费看欧美美女黄的网站|