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

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

?? parseloadear.c

?? Atheros AP Test with Agilent N4010A source code
?? C
?? 第 1 頁 / 共 3 頁
字號:
#ifdef __ATH_DJGPPDOS__
#include <unistd.h>
#ifndef EILSEQ  
    #define EILSEQ EIO
#endif	// EILSEQ

 #define __int64	long long
 #define HANDLE long
 typedef unsigned long DWORD;
 #define Sleep	delay
 #include <bios.h>
 #include <dir.h>
#endif	// #ifdef __ATH_DJGPPDOS__

#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#ifdef LINUX
#include "linuxdrv.h"
#else
#include "ntdrv.h"
#endif
#include "common_hw.h"


#include "wlantype.h"
#include "athreg.h"
#include "ear_defs.h"
#include "ear_externs.h"

static char delimiters[]   = " \t\n:\r\f";
#define RESERVED_MODE_BIT_MASK	0x120

int parseEarCfgFile(char *earcfg_filename, EAR_CFG **ear_cfg) {

	FILE *fileStream;
	char lineBuffer[MAX_FILE_WIDTH];
	char *token;
	int select;
	A_UINT16 iIndex;
	REGISTER_CFG *temp_reg_cfg=NULL;
	REGISTER_WRITE_TYPE0 *temp_reg_write_type0=NULL;
	REGISTER_WRITE_TYPE1 *temp_reg_write_type1=NULL;
	REGISTER_WRITE_TYPE2 *temp_reg_write_type2=NULL;
	REGISTER_WRITE_TYPE3 *temp_reg_write_type3=NULL;
	A_UINT16 temp_value, temp_end_bit, temp_num_bits, temp_type1_value;
	A_UINT16 version_mask;
	A_UINT16 version_mask_given=0;

	fileStream = (FILE *) fopen(earcfg_filename, "r");
	if (fileStream == NULL) {
		printf("Unable to open ear cfg file %s\n", earcfg_filename);
		return -1;
	}

	while( fgets(lineBuffer, MAX_FILE_WIDTH, fileStream) != NULL ) {
		//printf("lineBuffer = %s\n", lineBuffer);
		token = (char *) strtok(lineBuffer, delimiters);
		if (token == NULL) continue;
		if (token[0] == '#') {
			continue;
		}
		select = (int) atoi(token);
		//printf("select = %d\n", select);
		switch(select) {
			case REGISTER_HEADER_TYPE: // register header
				ASSERT(version_mask_given != 0);
				if ((*ear_cfg)->reg_cfg == NULL) {
					(*ear_cfg)->reg_cfg = (REGISTER_CFG *) malloc(sizeof(REGISTER_CFG));
					temp_reg_cfg = (*ear_cfg)->reg_cfg;
				}
				else {
					temp_reg_cfg->next = (REGISTER_CFG *) malloc(sizeof(REGISTER_CFG));
					temp_reg_cfg = temp_reg_cfg->next;
					temp_reg_cfg->write_type.reg_write_type1 = NULL;
				}

				ASSERT(temp_reg_cfg != NULL);
				temp_reg_cfg->next = NULL;
				temp_reg_cfg->write_type.reg_write_type0 = NULL;
				
				temp_reg_cfg->version_mask = version_mask; // copy the version mask, if u have new set
				token = (char *) strtok(NULL, delimiters);
				ASSERT(token != NULL);
				temp_reg_cfg->reg_hdr.field0.pack0.type = atoi(token);	

				token = (char *) strtok(NULL, delimiters);
				ASSERT(token != NULL);
				sscanf(token, "%x", &temp_value);
//    				if ( temp_value & RESERVED_MODE_BIT_MASK) {
//	    				printf("WARNING:*** Reserved mode bits set, thus clearing the reserved bits  *** \n");
//					temp_value = temp_value & ~RESERVED_MODE_BIT_MASK;
//    				}
				temp_reg_cfg->reg_hdr.field0.pack0.reg_modality_mask = temp_value;
		    

				token = (char *) strtok(NULL, delimiters);
				ASSERT(token != NULL);
				temp_reg_cfg->reg_hdr.field0.pack0.stage = atoi(token);	

				token = (char *) strtok(NULL, delimiters);
				ASSERT(token != NULL);
				sscanf(token, "%x", &temp_value);
				temp_reg_cfg->reg_hdr.field1.channel_modifier = temp_value;
				temp_reg_cfg->reg_hdr.field0.pack0.channel_modifier_present = (temp_reg_cfg->reg_hdr.field1.channel_modifier?1:0);

				token = (char *) strtok(NULL, delimiters);
				ASSERT(token != NULL);
				sscanf(token, "%x", &temp_value);
				temp_reg_cfg->reg_hdr.field2.disabler_mask = temp_value;
				temp_reg_cfg->reg_hdr.field0.pack0.disabler_present =  (temp_reg_cfg->reg_hdr.field2.disabler_mask?1:0);

				token = (char *) strtok(NULL, delimiters);
				ASSERT(token != NULL);
				sscanf(token, "%x", &temp_value);
				temp_reg_cfg->reg_hdr.pll_value = temp_value;

				temp_reg_cfg->reg_hdr.field0.pack0.bit15 = 0;

				break;
			case REGISTER_WRITES_TYPE: // register data
				switch(temp_reg_cfg->reg_hdr.field0.pack0.type) {
					case WRITE_TYPE0:
						if (temp_reg_cfg->write_type.reg_write_type0 == NULL) {
							temp_reg_cfg->write_type.reg_write_type0 = (REGISTER_WRITE_TYPE0 *) malloc(sizeof(REGISTER_WRITE_TYPE0));
							temp_reg_write_type0 = temp_reg_cfg->write_type.reg_write_type0;
						}
						else {
							temp_reg_write_type0->next = (REGISTER_WRITE_TYPE0 *) malloc(sizeof(REGISTER_WRITE_TYPE0));
							temp_reg_write_type0 = temp_reg_write_type0->next;
						}
						ASSERT(temp_reg_write_type0 != NULL);
						temp_reg_write_type0->next = NULL;

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type0->field0.pack.tag = atoi(token);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						sscanf(token, "%x", &temp_value);
						temp_reg_write_type0->field0.pack.address = temp_value>>2;
						//printf("TYPE0:Address parsed = %x\n", temp_reg_write_type0->field0.pack.address<<2);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						sscanf(token, "%x", &temp_reg_write_type0->msw);

						if (temp_reg_write_type0->field0.pack.tag == 0 || temp_reg_write_type0->field0.pack.tag == 3) {
						    token = (char *) strtok(NULL, delimiters);
						    ASSERT(token != NULL);
						    sscanf(token, "%x", &temp_reg_write_type0->lsw);
						}
						break;
					case WRITE_TYPE1:
						if (temp_reg_cfg->write_type.reg_write_type1 == NULL) {
							temp_reg_cfg->write_type.reg_write_type1 = (REGISTER_WRITE_TYPE1 *) malloc(sizeof(REGISTER_WRITE_TYPE1));
							temp_reg_write_type1 = temp_reg_cfg->write_type.reg_write_type1;
						}
						else {
							temp_reg_write_type1->next = (REGISTER_WRITE_TYPE1 *) malloc(sizeof(REGISTER_WRITE_TYPE1));
							temp_reg_write_type1 = temp_reg_write_type1->next;
						}

						ASSERT(temp_reg_write_type1 != NULL);
						temp_reg_write_type1->next = NULL;
						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_value = atoi(token);
						ASSERT(temp_value != 0);
						temp_reg_write_type1->field0.pack.num = temp_value - 1;

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						sscanf(token, "%x", &temp_value);
						temp_reg_write_type1->field0.pack.address = temp_value>>2;

						for(iIndex=0; iIndex<=temp_reg_write_type1->field0.pack.num; iIndex++) {

						   token = (char *) strtok(NULL, delimiters);
						   ASSERT(token != NULL);
						   sscanf(token, "%x", &temp_type1_value);
						   temp_reg_write_type1->data_msw[iIndex] = temp_type1_value;

						   token = (char *) strtok(NULL, delimiters);
						   ASSERT(token != NULL);
						   sscanf(token, "%x", &temp_type1_value);
						   temp_reg_write_type1->data_lsw[iIndex] = temp_type1_value;

						}
						break;
					case WRITE_TYPE2:
						if (temp_reg_cfg->write_type.reg_write_type2 == NULL) {
							temp_reg_cfg->write_type.reg_write_type2 = (REGISTER_WRITE_TYPE2 *) malloc(sizeof(REGISTER_WRITE_TYPE2));
							temp_reg_write_type2 = temp_reg_cfg->write_type.reg_write_type2;
						}
						else {
							temp_reg_write_type2->next = (REGISTER_WRITE_TYPE2 *) malloc(sizeof(REGISTER_WRITE_TYPE2));
							temp_reg_write_type2 = temp_reg_write_type2->next;
						}
						ASSERT(temp_reg_write_type2 != NULL);
						temp_reg_write_type2->next = NULL;

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type2->field0.pack0.last = atoi(token);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type2->field0.pack0.analog_bank = atoi(token);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type2->field0.pack0.column = atoi(token);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_end_bit = atoi(token);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type2->field0.pack0.start_bit = atoi(token);

						temp_num_bits = temp_end_bit - temp_reg_write_type2->field0.pack0.start_bit + 1;

						if (temp_num_bits > 12) {
							temp_reg_write_type2->num_bits = temp_num_bits;
							temp_reg_write_type2->field0.pack0.extended = 1;
							temp_reg_write_type2->num_data = A_DIV_UP(temp_num_bits, 16);
							temp_reg_write_type2->data = (A_UINT16 *) malloc(temp_num_bits * sizeof(A_UINT16));
							iIndex=0;
							while(iIndex<temp_reg_write_type2->num_data) {
								token = (char *) strtok(NULL, delimiters);
								ASSERT(token != NULL);
								sscanf(token, "%x", &temp_value);
								temp_reg_write_type2->data[iIndex++] = temp_value;
							}
						}
						else {
							temp_reg_write_type2->field1.pack1.num_bits = temp_num_bits;
							temp_reg_write_type2->field0.pack0.extended = 0;

							token = (char *) strtok(NULL, delimiters);
							ASSERT(token != NULL);
							sscanf(token, "%x", &temp_value);
							temp_reg_write_type2->field1.pack1.data = temp_value;
						}

						break;
					case WRITE_TYPE3:
						if (temp_reg_cfg->write_type.reg_write_type3 == NULL) {
							temp_reg_cfg->write_type.reg_write_type3 = (REGISTER_WRITE_TYPE3 *) malloc(sizeof(REGISTER_WRITE_TYPE3));
							temp_reg_write_type3 = temp_reg_cfg->write_type.reg_write_type3;
						}
						else {
							temp_reg_write_type3->next = (REGISTER_WRITE_TYPE3 *) malloc(sizeof(REGISTER_WRITE_TYPE3));
							temp_reg_write_type3 = temp_reg_write_type3->next;
						}
						ASSERT(temp_reg_write_type3 != NULL);
						temp_reg_write_type3->next = NULL;

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type3->field0.pack.last = atoi(token);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type3->field0.pack.opcode = atoi(token);
						//printf("Opcode read = %x\n", temp_reg_write_type3->field0.pack.opcode);
						//printf("header value = %x\n", temp_reg_write_type3->field0.value);
						temp_reg_write_type3->field0.pack.bit13 = 0;
						temp_reg_write_type3->field0.pack.bit14 = 0;

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_end_bit = atoi(token);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);
						temp_reg_write_type3->field0.pack.start_bit = atoi(token);
						temp_reg_write_type3->field0.pack.num_bits = temp_end_bit - temp_reg_write_type3->field0.pack.start_bit + 1;
//FJC						printf("header value = %x\n", temp_reg_write_type3->field0.value);

						token = (char *) strtok(NULL, delimiters);
						ASSERT(token != NULL);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情一区二区三区四区| 国产喷白浆一区二区三区| 中文字幕亚洲在| 国产精品一区二区x88av| 色菇凉天天综合网| 国产精品久久久久久久久晋中 | 喷水一区二区三区| 欧美日韩久久久| 亚洲在线观看免费视频| 色8久久人人97超碰香蕉987| 国产精品久久一卡二卡| fc2成人免费人成在线观看播放 | 中文字幕国产一区二区| 中文字幕一区二区三区四区不卡 | 国产精品久久久久三级| 国产精品一区二区黑丝| 国产精品色哟哟| 精品一区二区三区影院在线午夜| 欧美一区二区三区公司| 一区二区高清在线| 成人午夜伦理影院| 亚洲欧美激情视频在线观看一区二区三区 | 欧美视频中文字幕| 亚洲高清免费在线| 日韩欧美国产一区二区三区 | 欧美一区二区三区在线观看| 久久精品国产一区二区| 久久噜噜亚洲综合| 菠萝蜜视频在线观看一区| 一区二区免费在线播放| 欧美猛男男办公室激情| 麻豆精品视频在线观看视频| 久久婷婷国产综合精品青草| 久久国产精品露脸对白| 国产偷国产偷精品高清尤物| 99re成人精品视频| 综合电影一区二区三区| 欧美日本国产视频| 国产一区二区三区免费看 | 亚洲精品成人在线| 91精品国产色综合久久久蜜香臀| 午夜不卡av在线| 久久伊人中文字幕| 日本电影欧美片| 欧美国产精品一区| thepron国产精品| 日韩一区二区影院| 成人毛片视频在线观看| 亚洲成人自拍偷拍| 国产亚洲一二三区| 欧美日韩一级黄| 国内国产精品久久| 一区二区三区欧美亚洲| 精品免费一区二区三区| 91成人免费在线| 国产成人综合网站| 亚洲激情中文1区| 26uuu国产电影一区二区| 欧美亚洲一区三区| a亚洲天堂av| 久久69国产一区二区蜜臀| 亚洲精品中文字幕乱码三区 | 精品一区中文字幕| 亚洲综合视频在线| 欧美r级电影在线观看| 色噜噜狠狠色综合欧洲selulu| 免费成人av在线播放| 欧美视频一区二区| 舔着乳尖日韩一区| 亚洲一区二区三区四区在线观看 | 91精品欧美综合在线观看最新| 色综合天天综合狠狠| 成人精品免费视频| 国产一区二区三区免费在线观看| 久久成人羞羞网站| 美女精品一区二区| 久久国产综合精品| 精品在线一区二区| 国产精品综合在线视频| 国产在线国偷精品产拍免费yy | 欧美精品一区二区三区高清aⅴ| 欧美精品xxxxbbbb| 欧美日韩精品欧美日韩精品| 欧美男男青年gay1069videost| 精品制服美女丁香| 亚洲视频每日更新| 久久品道一品道久久精品| 日本黄色一区二区| 91免费看`日韩一区二区| 狠狠色丁香久久婷婷综合_中 | 国产精品人妖ts系列视频| 精品视频一区二区不卡| 韩国欧美国产1区| 亚洲一区二区三区美女| 亚洲国产一区在线观看| 日产欧产美韩系列久久99| 麻豆91免费观看| 国产成人av在线影院| 成人黄色777网| 在线观看视频91| 在线播放亚洲一区| 精品国偷自产国产一区| 国产精品狼人久久影院观看方式| 亚洲欧美国产三级| 五月婷婷久久丁香| 国产中文字幕一区| 99在线精品观看| 777精品伊人久久久久大香线蕉| 欧美成人伊人久久综合网| 久久久精品国产免大香伊| 亚洲激情图片一区| 美腿丝袜亚洲色图| zzijzzij亚洲日本少妇熟睡| 欧美亚洲综合在线| 久久伊99综合婷婷久久伊| 综合欧美亚洲日本| 秋霞午夜鲁丝一区二区老狼| 国产高清不卡二三区| 色噜噜久久综合| 精品国产麻豆免费人成网站| 国产精品卡一卡二卡三| 肉色丝袜一区二区| 三级久久三级久久| 国产成人av影院| 亚洲一区二区黄色| 日韩精品一区二区三区在线观看 | 欧美激情一区不卡| 日韩精品视频网站| 91在线云播放| 精品国产三级电影在线观看| 日韩一区欧美小说| 麻豆精品视频在线| 色婷婷精品大在线视频| 精品欧美黑人一区二区三区| 亚洲男人的天堂一区二区| 麻豆成人免费电影| 欧美色图激情小说| 国产精品久久久久影院老司| 秋霞av亚洲一区二区三| 日本乱人伦aⅴ精品| 国产午夜三级一区二区三| 亚洲成人免费看| 成人黄色网址在线观看| 欧美一二三四区在线| 亚洲精品伦理在线| av不卡一区二区三区| 日韩精品一区二区三区在线播放| 亚洲乱码国产乱码精品精的特点 | 久久国产欧美日韩精品| 91亚洲大成网污www| 欧美国产在线观看| 国产一区二区在线影院| 9191久久久久久久久久久| 亚洲综合一区二区精品导航| 成人免费视频一区二区| 久久久久久日产精品| 精品在线亚洲视频| 日韩久久免费av| 美国十次综合导航| 91精品久久久久久蜜臀| 五月婷婷综合激情| 91精品国产综合久久福利软件| 亚洲v精品v日韩v欧美v专区| 欧美日韩中文另类| 亚洲成a人片在线观看中文| 欧美综合久久久| 亚洲国产综合在线| 欧美视频三区在线播放| 亚洲福中文字幕伊人影院| 欧美午夜精品一区二区三区 | 日韩免费在线观看| 久久精品久久精品| 精品黑人一区二区三区久久| 精品亚洲欧美一区| 久久久亚洲综合| 国产高清无密码一区二区三区| 国产欧美精品一区二区色综合| 激情综合五月天| 久久久国际精品| 波多野结衣在线一区| 亚洲天堂网中文字| 在线观看亚洲精品| 日韩av在线播放中文字幕| 日韩一区二区免费在线电影| 极品美女销魂一区二区三区免费| 久久午夜免费电影| 色综合久久久久| 丝袜美腿亚洲色图| 精品国产乱码久久久久久浪潮| 韩国毛片一区二区三区| 国产亚洲短视频| 91麻豆6部合集magnet| 亚洲国产精品一区二区久久恐怖片| 欧美性做爰猛烈叫床潮| 毛片av中文字幕一区二区| 久久精品一区二区三区不卡| 97精品电影院| 视频在线观看国产精品| 精品国产一二三| 久久免费美女视频|