⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmd9118.c

📁 SMSC NET controller 9218 driver software
💻 C
📖 第 1 页 / 共 5 页
字号:
	if(bestParams.PacketCost>20) {


		tempLow=bestParams.PacketCost-20;


	} else {


		tempLow=0;


	}


	tempHigh=bestParams.PacketCost+20;


	for(currentSetting=tempLow;currentSetting<tempHigh;currentSetting++) {


		flowParams.PacketCost=currentSetting;


		if(!SendFlowParams(controlSocket, &flowParams)) {


			printf("Failed to send new setting: PacketCost=%ld\n",currentSetting);


			goto FAILED;


		}


		if(system(command)==0) {


			currentMeasurement=ReadThroughput(outputFile);


			if(currentMeasurement>bestMeasurement) {


				bestMeasurement=currentMeasurement;


				bestParams.PacketCost=currentSetting;


			}


		} else {


			printf("Failed system command: \"%s\"\n",command);


			goto FAILED;


		}


		printf("PacketCost = %ld, Throughput = %ld\n",


			currentSetting,currentMeasurement);


	}


	printf("Best: PacketCost = %ld, Throughput = %ld\n",


		bestParams.PacketCost,bestMeasurement);


	printf("Best ");DisplayFlowParams(&bestParams);


	if(!SendFlowParams(controlSocket, &origParams)) {


		printf("Failed to restore original setting\n");


		goto FAILED;


	}





DONE:


	close(controlSocket);


	return;


FAILED:


	close(controlSocket);


	printf("Something went wrong\n");


}





int main(ac,av)


int ac;


char * av[];


{


	int oc=0;


	bool eSet=false;


	char ethName[IFNAMSIZ];


	COMMAND_DATA commandData;


	bool cSet=false;


	bool aSet=false;


	unsigned long address=0;


	bool dSet=false;


	unsigned long data=0;


	unsigned long commandCode=0;


	char hostName[128];


	bool hSet=false;


	unsigned long portNum=0;


	bool pSet=false;








	iam=av[0];


	ethName[0]=0;


	hostName[0]=0;





	while((oc=getopt(ac,av,"hH:p:e:c:a:d:"))!=-1) {


		switch(oc) {


		case 'h'://help


			goto BAD_USAGE;


		case 'H'://Host address


			if(hSet) goto BAD_USAGE;


			strcpy(hostName,optarg);


			hSet=true;


			break;


		case 'p':


			if(pSet) goto BAD_USAGE;


			if(!ParseNumber(optarg,&portNum)) {


				goto BAD_USAGE;


			}


			if(portNum>0xFFFFUL) goto BAD_USAGE;


			pSet=true;


			break;            


		case 'e':


			if(eSet) goto BAD_USAGE;


			eSet=true;


			strncpy(ethName,optarg,IFNAMSIZ);


			ethName[IFNAMSIZ-1]=0;


			break;


		case 'c':


			if(cSet) goto BAD_USAGE;


			if(strcmp(optarg,"GET_CONFIG")==0) {


				commandCode=COMMAND_GET_CONFIGURATION;


			} else if(strcmp(optarg,"DUMP_REGS")==0) {


				commandCode=COMMAND_DUMP_LAN_REGS;


			} else if(strcmp(optarg,"DUMP_MAC")==0) {


				commandCode=COMMAND_DUMP_MAC_REGS;


			} else if(strcmp(optarg,"DUMP_PHY")==0) {


				commandCode=COMMAND_DUMP_PHY_REGS;


			} else if(strcmp(optarg,"DUMP_EEPROM")==0) {


				commandCode=COMMAND_DUMP_EEPROM;


			} else if(strcmp(optarg,"DUMP_TEMP")==0) {


				commandCode=COMMAND_DUMP_TEMP;


			} else if(strcmp(optarg,"GET_MAC")==0) {


				commandCode=COMMAND_GET_MAC_ADDRESS;


			} else if(strcmp(optarg,"SET_MAC")==0) {


				commandCode=COMMAND_SET_MAC_ADDRESS;


			} else if(strcmp(optarg,"LOAD_MAC")==0) {


				commandCode=COMMAND_LOAD_MAC_ADDRESS;


			} else if(strcmp(optarg,"SAVE_MAC")==0) {


				commandCode=COMMAND_SAVE_MAC_ADDRESS;


			} else if(strcmp(optarg,"SET_DEBUG")==0) {


				commandCode=COMMAND_SET_DEBUG_MODE;


			} else if(strcmp(optarg,"SET_POWER")==0) {


				commandCode=COMMAND_SET_POWER_MODE;


			} else if(strcmp(optarg,"GET_POWER")==0) {


				commandCode=COMMAND_GET_POWER_MODE;


			} else if(strcmp(optarg,"SET_LINK")==0) {


				commandCode=COMMAND_SET_LINK_MODE;


			} else if(strcmp(optarg,"GET_LINK")==0) {


				commandCode=COMMAND_GET_LINK_MODE;
			
			} else if(strcmp(optarg,"SET_AMDIX")==0) {


				commandCode=COMMAND_SET_AMDIX_STS;


			} else if(strcmp(optarg,"GET_AMDIX")==0) {


				commandCode=COMMAND_GET_AMDIX_STS;


			} else if(strcmp(optarg,"CHECK_LINK")==0) {


				commandCode=COMMAND_CHECK_LINK;


			} else if(strcmp(optarg,"READ_REG")==0) {


				commandCode=COMMAND_LAN_GET_REG;


			} else if(strcmp(optarg,"WRITE_REG")==0) {


				commandCode=COMMAND_LAN_SET_REG;


			} else if(strcmp(optarg,"READ_MAC")==0) {


				commandCode=COMMAND_MAC_GET_REG;


			} else if(strcmp(optarg,"WRITE_MAC")==0) {


				commandCode=COMMAND_MAC_SET_REG;


			} else if(strcmp(optarg,"READ_PHY")==0) {


				commandCode=COMMAND_PHY_GET_REG;


			} else if(strcmp(optarg,"WRITE_PHY")==0) {


				commandCode=COMMAND_PHY_SET_REG;


			} else if(strcmp(optarg,"READ_BYTE")==0) {


				commandCode=COMMAND_READ_BYTE;


			} else if(strcmp(optarg,"READ_WORD")==0) {


				commandCode=COMMAND_READ_WORD;


			} else if(strcmp(optarg,"READ_DWORD")==0) {


				commandCode=COMMAND_READ_DWORD;


			} else if(strcmp(optarg,"WRITE_BYTE")==0) {


				commandCode=COMMAND_WRITE_BYTE;


			} else if(strcmp(optarg,"WRITE_WORD")==0) {


				commandCode=COMMAND_WRITE_WORD;


			} else if(strcmp(optarg,"WRITE_DWORD")==0) {


				commandCode=COMMAND_WRITE_DWORD;


			} else if(strcmp(optarg,"SERVER")==0) {


				commandCode=COMMAND_RUN_SERVER;


			} else if(strcmp(optarg,"TUNER")==0) {


				commandCode=COMMAND_RUN_TUNER;


			} else if(strcmp(optarg,"GET_FLOW")==0) {


				commandCode=COMMAND_GET_FLOW_PARAMS;


			} else {


				goto BAD_USAGE;


			}


			cSet=true;


			break;


		case 'a':


			if(aSet) goto BAD_USAGE;


			if(!ParseNumber(optarg,&address)) {


				goto BAD_USAGE;


			}


			aSet=true;


			break;


		case 'd':


			if(dSet) goto BAD_USAGE;


			if(!ParseNumber(optarg,&data)) {


				goto BAD_USAGE;


			}





			dSet=true;


			break;


		default:


			goto BAD_USAGE;


		}


	}





	if(commandCode==COMMAND_RUN_TUNER) {


		//This command must be run before initialize because


		//  it will typically be run on machines that do not


		//  have the smsc9118 driver installed.


		RunTuner(hostName,(unsigned short)portNum);


		return 1;


	}





	if(!Initialize(&commandData,ethName)) {


		return 1;


	}





	switch(commandCode) {


	case COMMAND_RUN_SERVER:


		RunServer(&commandData,(unsigned short)portNum);


		break;


	case COMMAND_GET_FLOW_PARAMS:


		GetFlowParams(&commandData);


		break;


	case COMMAND_GET_CONFIGURATION:


		GetConfiguration(&commandData);


		break;


	case COMMAND_DUMP_LAN_REGS:


		LanDumpRegs(&commandData);


		break;


	case COMMAND_DUMP_MAC_REGS:


		MacDumpRegs(&commandData);


		break;


	case COMMAND_DUMP_PHY_REGS:


		PhyDumpRegs(&commandData);


		break;


	case COMMAND_DUMP_EEPROM:


		DumpEEPROM(&commandData);


		break;


	case COMMAND_DUMP_TEMP:


		DumpTemp(&commandData);


		break;


	case COMMAND_GET_MAC_ADDRESS:


		GetMacAddress(&commandData);


		break;


	case COMMAND_SET_MAC_ADDRESS:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		SetMacAddress(&commandData,address,data);


		break;


	case COMMAND_LOAD_MAC_ADDRESS:


		LoadMacAddress(&commandData);


		break;


	case COMMAND_SAVE_MAC_ADDRESS:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		SaveMacAddress(&commandData,address,data);


		break;


	case COMMAND_SET_DEBUG_MODE:


		if(!dSet) goto BAD_USAGE;


		SetDebugMode(&commandData,data);


		break;


	case COMMAND_SET_LINK_MODE:


		if(!dSet) goto BAD_USAGE;


		SetLinkMode(&commandData,data);


		break;


	case COMMAND_GET_LINK_MODE:


		GetLinkMode(&commandData);


		break;

	case COMMAND_SET_AMDIX_STS:


		if(!dSet) goto BAD_USAGE;


		SetAutoMdixSts(&commandData,data);


		break;


	case COMMAND_GET_AMDIX_STS:


		GetAutoMdixSts(&commandData);


		break;


	case COMMAND_CHECK_LINK:


		CheckLink(&commandData);


		break;


	case COMMAND_SET_POWER_MODE:


		if(!dSet) goto BAD_USAGE;


		SetPowerMode(&commandData,data);


		break;


	case COMMAND_GET_POWER_MODE:


		GetPowerMode(&commandData);


		break;


	case COMMAND_LAN_GET_REG:


		if(!aSet) goto BAD_USAGE;


		LanGetReg(&commandData,address);


		break;


	case COMMAND_LAN_SET_REG:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		LanSetReg(&commandData,address,data);


		break;


	case COMMAND_MAC_GET_REG:


		if(!aSet) goto BAD_USAGE;


		MacGetReg(&commandData,address);


		break;


	case COMMAND_MAC_SET_REG:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		MacSetReg(&commandData,address,data);


		break;


	case COMMAND_PHY_GET_REG:


		if(!aSet) goto BAD_USAGE;


		PhyGetReg(&commandData,address);


		break;


	case COMMAND_PHY_SET_REG:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		PhySetReg(&commandData,address,data);


		break;


	case COMMAND_READ_BYTE:


		if(!aSet) goto BAD_USAGE;


		ReadByte(&commandData,address);


		break;


	case COMMAND_READ_WORD:


		if(!aSet) goto BAD_USAGE;


		ReadWord(&commandData,address);


		break;


	case COMMAND_READ_DWORD:


		if(!aSet) goto BAD_USAGE;


		ReadDWord(&commandData,address);


		break;


	case COMMAND_WRITE_BYTE:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		WriteByte(&commandData,address,data);


		break;


	case COMMAND_WRITE_WORD:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		WriteWord(&commandData,address,data);


		break;


	case COMMAND_WRITE_DWORD:


		if(!aSet) goto BAD_USAGE;


		if(!dSet) goto BAD_USAGE;


		WriteDWord(&commandData,address,data);


		break;


	default:


		goto BAD_USAGE;


	}





	return 1;


BAD_USAGE:


	DisplayUsage();


	return 1;


}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -