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

📄 main.c

📁 Atheros wifi driver source code
💻 C
📖 第 1 页 / 共 4 页
字号:
/* * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting * Copyright (c) 2002-2005 Atheros Communications, Inc. * All rights reserved. * * $Id: main.c,v 1.1.1.1 2006/09/12 03:45:25 steven Exp $ */#include "opt_ah.h"#include "ah.h"#include "ah_internal.h"#include "ah_eeprom.h"#include <stdio.h>#include <stdlib.h>#include <stdarg.h>#include <string.h>#include <unistd.h>#define	IEEE80211_CHAN_MAX	255#define IEEE80211_REGCLASSIDS_MAX	10int		ath_hal_debug = 0;HAL_CTRY_CODE	cc = CTRY_DEFAULT;HAL_BOOL	outdoor = AH_TRUE;HAL_BOOL	Amode = 1;HAL_BOOL	Bmode = 1;HAL_BOOL	Gmode = 1;HAL_BOOL	turbo5Disable = AH_FALSE;HAL_BOOL	turbo2Disable = AH_FALSE;u_int16_t	_numCtls = 8;u_int16_t	_ctl[32] =	{ 0x10, 0x13, 0x40, 0x30, 0x11, 0x31, 0x12, 0x32 };RD_EDGES_POWER	_rdEdgesPower[NUM_EDGES*NUM_CTLS] = {	{ 5180, 28, 0 },	/* 0x10 */	{ 5240, 60, 0 },	{ 5260, 36, 0 },	{ 5320, 27, 0 },	{ 5745, 36, 0 },	{ 5765, 36, 0 },	{ 5805, 36, 0 },	{ 5825, 36, 0 },	{ 5210, 28, 0 },	/* 0x13 */	{ 5250, 28, 0 },	{ 5290, 30, 0 },	{ 5760, 36, 0 },	{ 5800, 36, 0 },	{ 0, 0, 0 },	{ 0, 0, 0 },	{ 0, 0, 0 },	{ 5170, 60, 0 },	/* 0x40 */	{ 5230, 60, 0 },	{ 0, 0, 0 },	{ 0, 0, 0 },	{ 0, 0, 0 },	{ 0, 0, 0 },	{ 0, 0, 0 },	{ 0, 0, 0 },	{ 5180, 33, 0 },	/* 0x30 */	{ 5320, 33, 0 },	{ 5500, 34, 0 },	{ 5700, 34, 0 },	{ 5745, 35, 0 },	{ 5765, 35, 0 },	{ 5785, 35, 0 },	{ 5825, 35, 0 },	{ 2412, 36, 0 },	/* 0x11 */	{ 2417, 36, 0 },	{ 2422, 36, 0 },	{ 2432, 36, 0 },	{ 2442, 36, 0 },	{ 2457, 36, 0 },	{ 2467, 36, 0 },	{ 2472, 36, 0 },	{ 2412, 36, 0 },	/* 0x31 */	{ 2417, 36, 0 },	{ 2422, 36, 0 },	{ 2432, 36, 0 },	{ 2442, 36, 0 },	{ 2457, 36, 0 },	{ 2467, 36, 0 },	{ 2472, 36, 0 },	{ 2412, 36, 0 },	/* 0x12 */	{ 2417, 36, 0 },	{ 2422, 36, 0 },	{ 2432, 36, 0 },	{ 2442, 36, 0 },	{ 2457, 36, 0 },	{ 2467, 36, 0 },	{ 2472, 36, 0 },	{ 2412, 28, 0 },	/* 0x32 */	{ 2417, 28, 0 },	{ 2422, 28, 0 },	{ 2432, 28, 0 },	{ 2442, 28, 0 },	{ 2457, 28, 0 },	{ 2467, 28, 0 },	{ 2472, 28, 0 },};u_int16_t	turbo2WMaxPower5 = 32;u_int16_t	turbo2WMaxPower2;int8_t		antennaGainMax[2] = { 0, 0 };	/* XXX */int		eeversion = AR_EEPROM_VER3_1;TRGT_POWER_ALL_MODES tpow = {	8, {	    { 22, 24, 28, 32, 5180 },	    { 22, 24, 28, 32, 5200 },	    { 22, 24, 28, 32, 5320 },	    { 26, 30, 34, 34, 5500 },	    { 26, 30, 34, 34, 5700 },	    { 20, 30, 34, 36, 5745 },	    { 20, 30, 34, 36, 5825 },	    { 20, 30, 34, 36, 5850 },	},	2, {	    { 23, 27, 31, 34, 2412 },	    { 23, 27, 31, 34, 2447 },	},	2, {	    { 36, 36, 36, 36, 2412 },	    { 36, 36, 36, 36, 2484 },	}};#define	numTargetPwr_11a	tpow.numTargetPwr_11a#define	trgtPwr_11a		tpow.trgtPwr_11a#define	numTargetPwr_11g	tpow.numTargetPwr_11g#define	trgtPwr_11g		tpow.trgtPwr_11g#define	numTargetPwr_11b	tpow.numTargetPwr_11b#define	trgtPwr_11b		tpow.trgtPwr_11bstatic HAL_BOOLgetChannelEdges(struct ath_hal *ah, u_int16_t flags, u_int16_t *low, u_int16_t *high){	if (flags & CHANNEL_5GHZ) {		*low = 4920;		*high = 6100;		return AH_TRUE;	}	if (flags & CHANNEL_2GHZ) {		*low = 2312;		*high = 2732;		return AH_TRUE;	}	return AH_FALSE;}static u_intgetWirelessModes(struct ath_hal *ah){	u_int mode = 0;	if (Amode) {		mode = HAL_MODE_11A;		if (!turbo5Disable)			mode |= HAL_MODE_TURBO;	}	if (Bmode)		mode |= HAL_MODE_11B;	if (Gmode) {		mode |= HAL_MODE_11G;		if (!turbo2Disable) 			mode |= HAL_MODE_108G;	}	return mode;}static HAL_BOOLgetCapability(struct ath_hal *ah, HAL_CAPABILITY_TYPE type,        u_int32_t capability, u_int32_t *result){	switch(type) {	case HAL_CAP_CHAN_HALFRATE:	case HAL_CAP_CHAN_QUARTERRATE:		return HAL_OK;	default:		return HAL_ENXIO;	}}/* * Convert IEEE channel number to GHz frequency. */u_intath_hal_ieee2mhz(u_int chan, u_int flags){	if (flags & CHANNEL_2GHZ) {	/* 2GHz band */		if (chan == 14)			return 2484;		if (chan < 14)			return 2407 + chan*5;		else			return 2512 + ((chan-15)*20);	} else if (flags & CHANNEL_5GHZ) {/* 5Ghz band */		return 5000 + (chan*5);	} else {			/* either, guess */		if (chan == 14)			return 2484;		if (chan < 14)		/* 0-13 */			return 2407 + chan*5;		if (chan < 27)		/* 15-26 */			return 2512 + ((chan-15)*20);		return 5000 + (chan*5);	}}/* * Country/Region Codes from MS WINNLS.H * Numbering from ISO 3166 */enum CountryCode {    CTRY_ALBANIA              = 8,       /* Albania */    CTRY_ALGERIA              = 12,      /* Algeria */    CTRY_ARGENTINA            = 32,      /* Argentina */    CTRY_ARMENIA              = 51,      /* Armenia */    CTRY_AUSTRALIA            = 36,      /* Australia */    CTRY_AUSTRIA              = 40,      /* Austria */    CTRY_AZERBAIJAN           = 31,      /* Azerbaijan */    CTRY_BAHRAIN              = 48,      /* Bahrain */    CTRY_BELARUS              = 112,     /* Belarus */    CTRY_BELGIUM              = 56,      /* Belgium */    CTRY_BELIZE               = 84,      /* Belize */    CTRY_BOLIVIA              = 68,      /* Bolivia */    CTRY_BRAZIL               = 76,      /* Brazil */    CTRY_BRUNEI_DARUSSALAM    = 96,      /* Brunei Darussalam */    CTRY_BULGARIA             = 100,     /* Bulgaria */    CTRY_CANADA               = 124,     /* Canada */    CTRY_CHILE                = 152,     /* Chile */    CTRY_CHINA                = 156,     /* People's Republic of China */    CTRY_COLOMBIA             = 170,     /* Colombia */    CTRY_COSTA_RICA           = 188,     /* Costa Rica */    CTRY_CROATIA              = 191,     /* Croatia */    CTRY_CYPRUS               = 196,    CTRY_CZECH                = 203,     /* Czech Republic */    CTRY_DENMARK              = 208,     /* Denmark */    CTRY_DOMINICAN_REPUBLIC   = 214,     /* Dominican Republic */    CTRY_ECUADOR              = 218,     /* Ecuador */    CTRY_EGYPT                = 818,     /* Egypt */    CTRY_EL_SALVADOR          = 222,     /* El Salvador */    CTRY_ESTONIA              = 233,     /* Estonia */    CTRY_FAEROE_ISLANDS       = 234,     /* Faeroe Islands */    CTRY_FINLAND              = 246,     /* Finland */    CTRY_FRANCE               = 250,     /* France */    CTRY_FRANCE2              = 255,     /* France2 */    CTRY_GEORGIA              = 268,     /* Georgia */    CTRY_GERMANY              = 276,     /* Germany */    CTRY_GREECE               = 300,     /* Greece */    CTRY_GUATEMALA            = 320,     /* Guatemala */    CTRY_HONDURAS             = 340,     /* Honduras */    CTRY_HONG_KONG            = 344,     /* Hong Kong S.A.R., P.R.C. */    CTRY_HUNGARY              = 348,     /* Hungary */    CTRY_ICELAND              = 352,     /* Iceland */    CTRY_INDIA                = 356,     /* India */    CTRY_INDONESIA            = 360,     /* Indonesia */    CTRY_IRAN                 = 364,     /* Iran */    CTRY_IRAQ                 = 368,     /* Iraq */    CTRY_IRELAND              = 372,     /* Ireland */    CTRY_ISRAEL               = 376,     /* Israel */    CTRY_ITALY                = 380,     /* Italy */    CTRY_JAMAICA              = 388,     /* Jamaica */    CTRY_JAPAN                = 392,     /* Japan */    CTRY_JAPAN1               = 393,     /* Japan (JP1) */    CTRY_JAPAN2               = 394,     /* Japan (JP0) */    CTRY_JAPAN3               = 395,     /* Japan (JP1-1) */    CTRY_JAPAN4               = 396,     /* Japan (JE1) */    CTRY_JAPAN5               = 397,     /* Japan (JE2) */    CTRY_JAPAN6		      = 399,	 /* Japan (JP6) */    CTRY_JAPAN7		      = 900,	 /* Japan */    CTRY_JAPAN8		      = 901,	 /* Japan */    CTRY_JAPAN9		      = 902,	 /* Japan */    CTRY_JAPAN10	      = 903,	 /* Japan */    CTRY_JAPAN11	      = 904,	 /* Japan */    CTRY_JAPAN12	      = 905,	 /* Japan */    CTRY_JAPAN13	      = 906,	 /* Japan */    CTRY_JAPAN14	      = 907,	 /* Japan */    CTRY_JAPAN15	      = 908,	 /* Japan */    CTRY_JAPAN16	      = 909,	 /* Japan */    CTRY_JAPAN17	      = 910,	 /* Japan */    CTRY_JAPAN18	      = 911,	 /* Japan */    CTRY_JAPAN19	      = 912,	 /* Japan */    CTRY_JAPAN20	      = 913,	 /* Japan */    CTRY_JAPAN21	      = 914,	 /* Japan */    CTRY_JAPAN22	      = 915,	 /* Japan */    CTRY_JAPAN23	      = 916,	 /* Japan */    CTRY_JAPAN24	      = 917,	 /* Japan */    CTRY_JAPAN25	      = 918,	 /* Japan */    CTRY_JAPAN26	      = 919,	 /* Japan */    CTRY_JAPAN27	      = 920,	 /* Japan */    CTRY_JAPAN28	      = 921,	 /* Japan */    CTRY_JAPAN29	      = 922,	 /* Japan */    CTRY_JAPAN30	      = 923,	 /* Japan */    CTRY_JAPAN31	      = 924,	 /* Japan */    CTRY_JAPAN32	      = 925,	 /* Japan */    CTRY_JAPAN33	      = 926,	 /* Japan */    CTRY_JAPAN34	      = 927,	 /* Japan */    CTRY_JAPAN35	      = 928,	 /* Japan */    CTRY_JAPAN36	      = 929,	 /* Japan */    CTRY_JAPAN37	      = 930,	 /* Japan */    CTRY_JAPAN38	      = 931,	 /* Japan */    CTRY_JAPAN39	      = 932,	 /* Japan */    CTRY_JAPAN40	      = 933,	 /* Japan */    CTRY_JAPAN41	      = 934,	 /* Japan */    CTRY_JAPAN42	      = 935,	 /* Japan */    CTRY_JAPAN43	      = 936,	 /* Japan */    CTRY_JAPAN44	      = 937,	 /* Japan */    CTRY_JAPAN45	      = 938,	 /* Japan */    CTRY_JAPAN46	      = 939,	 /* Japan */    CTRY_JAPAN47	      = 940,	 /* Japan */    CTRY_JAPAN48	      = 941,	 /* Japan */    CTRY_JORDAN               = 400,     /* Jordan */    CTRY_KAZAKHSTAN           = 398,     /* Kazakhstan */    CTRY_KENYA                = 404,     /* Kenya */    CTRY_KOREA_NORTH          = 408,     /* North Korea */    CTRY_KOREA_ROC            = 410,     /* South Korea */    CTRY_KOREA_ROC2           = 411,     /* South Korea */    CTRY_KUWAIT               = 414,     /* Kuwait */    CTRY_LATVIA               = 428,     /* Latvia */    CTRY_LEBANON              = 422,     /* Lebanon */    CTRY_LIBYA                = 434,     /* Libya */    CTRY_LIECHTENSTEIN        = 438,     /* Liechtenstein */    CTRY_LITHUANIA            = 440,     /* Lithuania */    CTRY_LUXEMBOURG           = 442,     /* Luxembourg */    CTRY_MACAU                = 446,     /* Macau */    CTRY_MACEDONIA            = 807,     /* the Former Yugoslav Republic of Macedonia */    CTRY_MALAYSIA             = 458,     /* Malaysia */    CTRY_MEXICO               = 484,     /* Mexico */    CTRY_MONACO               = 492,     /* Principality of Monaco */    CTRY_MOROCCO              = 504,     /* Morocco */    CTRY_NETHERLANDS          = 528,     /* Netherlands */    CTRY_NEW_ZEALAND          = 554,     /* New Zealand */    CTRY_NICARAGUA            = 558,     /* Nicaragua */    CTRY_NORWAY               = 578,     /* Norway */    CTRY_OMAN                 = 512,     /* Oman */    CTRY_PAKISTAN             = 586,     /* Islamic Republic of Pakistan */    CTRY_PANAMA               = 591,     /* Panama */    CTRY_PARAGUAY             = 600,     /* Paraguay */    CTRY_PERU                 = 604,     /* Peru */    CTRY_PHILIPPINES          = 608,     /* Republic of the Philippines */    CTRY_POLAND               = 616,     /* Poland */    CTRY_PORTUGAL             = 620,     /* Portugal */    CTRY_PUERTO_RICO          = 630,     /* Puerto Rico */    CTRY_QATAR                = 634,     /* Qatar */    CTRY_ROMANIA              = 642,     /* Romania */    CTRY_RUSSIA               = 643,     /* Russia */    CTRY_SAUDI_ARABIA         = 682,     /* Saudi Arabia */    CTRY_SINGAPORE            = 702,     /* Singapore */    CTRY_SLOVAKIA             = 703,     /* Slovak Republic */    CTRY_SLOVENIA             = 705,     /* Slovenia */    CTRY_SOUTH_AFRICA         = 710,     /* South Africa */    CTRY_SPAIN                = 724,     /* Spain */    CTRY_SWEDEN               = 752,     /* Sweden */    CTRY_SWITZERLAND          = 756,     /* Switzerland */    CTRY_SYRIA                = 760,     /* Syria */    CTRY_TAIWAN               = 158,     /* Taiwan */    CTRY_THAILAND             = 764,     /* Thailand */    CTRY_TRINIDAD_Y_TOBAGO    = 780,     /* Trinidad y Tobago */    CTRY_TUNISIA              = 788,     /* Tunisia */    CTRY_TURKEY               = 792,     /* Turkey */    CTRY_UAE                  = 784,     /* U.A.E. */    CTRY_UKRAINE              = 804,     /* Ukraine */    CTRY_UNITED_KINGDOM       = 826,     /* United Kingdom */    CTRY_UNITED_STATES        = 840,     /* United States */    CTRY_UNITED_STATES_FCC49  = 842,     /* United States (Public Safety)*/    CTRY_URUGUAY              = 858,     /* Uruguay */    CTRY_UZBEKISTAN           = 860,     /* Uzbekistan */    CTRY_VENEZUELA            = 862,     /* Venezuela */    CTRY_VIET_NAM             = 704,     /* Viet Nam */    CTRY_YEMEN                = 887,     /* Yemen */    CTRY_ZIMBABWE             = 716      /* Zimbabwe */};/* Enumerated Regulatory Domain Information */enum EnumRd {	/*	 * The following regulatory domain definitions are	 * found in the EEPROM. Each regulatory domain	 * can operate in either a 5GHz or 2.4GHz wireless mode or	 * both 5GHz and 2.4GHz wireless modes.	 * In general, the value holds no special	 * meaning and is used to decode into either specific	 * 2.4GHz or 5GHz wireless mode for that particular	 * regulatory domain.	 */	NO_ENUMRD	= 0x00,	NULL1_WORLD	= 0x03,		/* For 11b-only countries (no 11a allowed) */	NULL1_ETSIB	= 0x07,		/* Israel */	NULL1_ETSIC	= 0x08,	FCC1_FCCA	= 0x10,		/* USA */	FCC1_WORLD	= 0x11,		/* Hong Kong */	FCC4_FCCA	= 0x12,		/* USA - Public Safety */	FCC2_FCCA	= 0x20,		/* Canada */	FCC2_WORLD	= 0x21,		/* Australia & HK */	FCC2_ETSIC	= 0x22,	FRANCE_RES	= 0x31,		/* Legacy France for OEM */	FCC3_FCCA	= 0x3A,		/* USA & Canada w/5470 band, 11h, DFS enabled */	ETSI1_WORLD	= 0x37,	ETSI3_ETSIA	= 0x32,		/* France (optional) */	ETSI2_WORLD	= 0x35,		/* Hungary & others */	ETSI3_WORLD	= 0x36,		/* France & others */	ETSI4_WORLD	= 0x30,	ETSI4_ETSIC	= 0x38,	ETSI5_WORLD	= 0x39,	ETSI6_WORLD	= 0x34,		/* Bulgaria */	ETSI_RESERVED	= 0x33,		/* Reserved (Do not used) */	MKK1_MKKA	= 0x40,		/* Japan (JP1) */	MKK1_MKKB	= 0x41,		/* Japan (JP0) */	APL4_WORLD	= 0x42,		/* Singapore */	MKK2_MKKA	= 0x43,		/* Japan with 4.9G channels */	APL_RESERVED	= 0x44,		/* Reserved (Do not used)  */	APL2_WORLD	= 0x45,		/* Korea */	APL2_APLC	= 0x46,	APL3_WORLD	= 0x47,	MKK1_FCCA	= 0x48,		/* Japan (JP1-1) */	APL2_APLD	= 0x49,		/* Korea with 2.3G channels */	MKK1_MKKA1	= 0x4A,		/* Japan (JE1) */	MKK1_MKKA2	= 0x4B,		/* Japan (JE2) */	MKK1_MKKC	= 0x4C,		/* Japan */	APL1_WORLD	= 0x52,		/* Latin America */	APL1_FCCA	= 0x53,	APL1_APLA	= 0x54,	APL1_ETSIC	= 0x55,	APL2_ETSIC	= 0x56,		/* Venezuela */	APL5_WORLD	= 0x58,		/* Chile */	APL6_WORLD	= 0x5B,		/* Singapore */

⌨️ 快捷键说明

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