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

📄 macfunc.c

📁 mini-PCI driver for LHWT chipsets
💻 C
字号:
#include "wtprecomp.h"void mkWlanMgmtFrameHdr( PWTWLAN_TXBUF pWtTxBuf, TypeSubtype ft, MacAddr da, MacAddr sa, MacAddr bssa){	  unsigned short i;	  p80211_hdr_t *hdr;	  //valide check	  if ( !pWtTxBuf )		  return;	  hdr = (p80211_hdr_t *)(&pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head);	  hdr->a3.fc =  host2ieee16(WLAN_SET_FC_FSTYPE(ft));	  	  *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 2)=0;	  *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 3)=0;	  for( i=0; i<6; i++ )	  {	    *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 4+i)=da[i];	    *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 10+i)=sa[i]; 	    *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 16+i)=bssa[i];	    *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 24+i)= 0;	  }	  *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 22)=0;	  *( pWtTxBuf->TXHwBuf.pHwTxBuf->dot11Head + 23)=0;	  pWtTxBuf->TXHwBuf.pHwTxBuf->TxAUXBuf.HeadLen = MacHeaderLng(ft);}void mkFrame( PWTWLAN_TXBUF fp, TypeSubtype ft, MacAddr da, MacAddr sa, MacAddr bssa, char *Body, USHORT BodyLen ){	  unsigned short i;	  UCHAR HeadLen;	  p80211_hdr_t *hdr;	  if ( !fp )		  return;	  hdr = (p80211_hdr_t *)(&fp->TXHwBuf.pHwTxBuf->dot11Head);	  HeadLen = MacHeaderLng(ft);	  	  if( Body &&( BodyLen != 0) )	  {		memcpy(fp->TXHwBuf.pHwTxBuf->Buffer, Body ,BodyLen);		fp->TXHwBuf.pHwTxBuf->TxAUXBuf.DataLen = host2ieee16( BodyLen );	  }	  	  hdr->a3.fc =  host2ieee16(WLAN_SET_FC_FSTYPE(ft));	  	  *( fp->TXHwBuf.pHwTxBuf->dot11Head + 2)=0;	  *( fp->TXHwBuf.pHwTxBuf->dot11Head + 3)=0;	  for( i=0; i<6; i++ )	  {	    *( fp->TXHwBuf.pHwTxBuf->dot11Head + 4+i)=da[i];	    *( fp->TXHwBuf.pHwTxBuf->dot11Head + 10+i)=sa[i]; 	    *( fp->TXHwBuf.pHwTxBuf->dot11Head + 16+i)=bssa[i];	    *( fp->TXHwBuf.pHwTxBuf->dot11Head + 24+i)= 0;	  }	  *( fp->TXHwBuf.pHwTxBuf->dot11Head + 22)=0;	  *( fp->TXHwBuf.pHwTxBuf->dot11Head + 23)=0;	  fp->TXHwBuf.pHwTxBuf->TxAUXBuf.HeadLen = HeadLen;}/*write for each plateform*/unsigned long int random_data( int i){         return 500;}  Time dKusec( Time dusec){      return dusec*1000;}Time kUsec( Time kusec){     return div64(kusec,1000);}char isGroup( MacAddr Addr ){	  if(( Addr[0] & 0x01 )== 0x01)	    return 1;	  else	    return 0;}void addr2( UCHAR *dot11Head, MacAddr a2 ){	  int i;	  	  for( i=0; i<6; i++ )	  {	    a2[i]=*(dot11Head + 10 +i);	  }  }int authSeqNum( UCHAR *FrameBody ){	return *(FrameBody+2) + (*(FrameBody+3)) * 256;}void authStat(  UCHAR *FrameBody , StatusCode *sc ){	*sc = *(FrameBody+4);	*sc = (*sc) + ((*(FrameBody+5)) << 8);}void setWepBit(	PWTWLAN_TXBUF PTxBuffer, char wb){	  UCHAR tmp;	  if( wb )	    tmp=0x40;	  else	    tmp=0x00;	  PTxBuffer->TXHwBuf.pHwTxBuf->dot11Head[1]=( (PTxBuffer->TXHwBuf.pHwTxBuf->dot11Head[1]) & 0xBF ) | tmp;	  tmp = PTxBuffer->TXHwBuf.pHwTxBuf->dot11Head[1];//just for test}void status(  UCHAR *FrameBody , StatusCode *sc ){	*sc = *(FrameBody+2);	*sc = (*sc) + ((*(FrameBody+3))<<8);}char capA( UCHAR *FrameBody, Capability c ){	Capability tmp;	tmp = FrameBody[0];	tmp=tmp +((FrameBody[1])<<8);	if(( tmp & c )==c )		return 1;    else		return 0;}void AId( UCHAR *FrameBody, AsocId *ad ){	  *ad=FrameBody[4];	  *ad=*ad+(( FrameBody[5] ) << 8 );}void reason( UCHAR *FrameBody, ReasonCode *rc ){	  *rc=FrameBody[0];	  *rc=( *rc )+(( FrameBody[1] ) << 8 );}char bufFrame( TIM *el, AsocId a ){	  int8 offset;	  int8 index;	  char tmp;	  if( a < (( el->mapControl & 0xFE ) * 8 ))	    return 0;	  else if( a>=(( el->mapControl & 0xFE ) *8) + ( el->Length *8 ))	    return 0;	  else	  {	    offset=a%8;	    index=a/8;	    tmp=el->pvMap[index-( el->mapControl & 0xFE )];	    tmp=tmp << ( 7-offset );	    tmp=tmp >> 7;	    if( tmp )	      return 1;	    else	      return 0;	  }}char bufBcst( TIM *el ){	  if( el->mapControl & 0x01 )	    return 1;	  else	    return 0;}int8 dtCount( TIM *el ){	  return el->Count;}Time now(){	return 0x0ull;}int CfpCount(CfParms CfParms){	return CfParms.Count;}char CfpPeriod(CfParms CfParms){    return CfParms.Period;}int CfpMaxDur(CfParms CfParms){    return CfParms.MaxDur;}CfParms SetCfpPeriod(CfParms CfParms, UCHAR CfpPeriod){    CfParms.Period= CfpPeriod;	return CfParms;}CfParms SetCfpCount(CfParms CfParms,char CfpCount){    CfParms.Count= CfpCount;	return CfParms;}char *int16ToS(int16 Value, char *str){     str[0] = Value % 256;     str[1] = Value / 256;     str[2] = 0;          return str;}void Doze(){}void TBTT(){}void Cancel(){}char* mkElem(ElementID eid, char * dst, char *src, int len){	  int i;	  for( i=len-1; i>=0; i-- )	  {	    dst[i+2]=src[i];	  }	  dst[0]=eid;	  dst[1]=(UCHAR)len;	  return dst;}void SelectChannel(){    }TypeSubtype ftype( char *fp){	  return  (*fp&0xFC);}char  MacHeaderLng(TypeSubtype i){   	return sMacHdrLng;}void InitializeRateTable(  IN PWT_ADAPTER Adapter ){	   // rate table	   #ifdef WIN_PLATFORM	   NdisZeroMemory( Adapter->MacParameter.Mask2Rate, MAX_SUPPORT_RATE_TYPE );	   NdisZeroMemory( Adapter->MacParameter.Rate2Mask, MAX_RATE_VALUE+1 );	   #else	   memset( Adapter->MacParameter.Mask2Rate, 0, MAX_SUPPORT_RATE_TYPE );	   memset( Adapter->MacParameter.Rate2Mask, 0, MAX_RATE_VALUE+1 );	   #endif	   	   Adapter->MacParameter.Mask2Rate[0] = 2;	   Adapter->MacParameter.Mask2Rate[1] = 4;	   Adapter->MacParameter.Mask2Rate[2] = 11;	   Adapter->MacParameter.Mask2Rate[3] = 22;	   Adapter->MacParameter.Mask2Rate[4] = 12;	   Adapter->MacParameter.Mask2Rate[5] = 18;	   Adapter->MacParameter.Mask2Rate[6] = 24;	   Adapter->MacParameter.Mask2Rate[7] = 36;	   Adapter->MacParameter.Mask2Rate[8] = 44;	   Adapter->MacParameter.Mask2Rate[9] = 48;	   Adapter->MacParameter.Mask2Rate[10] = 66;	   Adapter->MacParameter.Mask2Rate[11] = 72;	   Adapter->MacParameter.Mask2Rate[12] = 96;	   Adapter->MacParameter.Mask2Rate[13] = 108;	   Adapter->MacParameter.Rate2Mask[2] = 0; 	   Adapter->MacParameter.Rate2Mask[4] = 1; 	   Adapter->MacParameter.Rate2Mask[11] = 2; 	   Adapter->MacParameter.Rate2Mask[22] = 3; 	   Adapter->MacParameter.Rate2Mask[12] = 4; 	   Adapter->MacParameter.Rate2Mask[18] = 5; 	   Adapter->MacParameter.Rate2Mask[24] = 6; 	   Adapter->MacParameter.Rate2Mask[36] = 7; 	   Adapter->MacParameter.Rate2Mask[44] = 8; 	   Adapter->MacParameter.Rate2Mask[48] = 9; 	   Adapter->MacParameter.Rate2Mask[66] = 10; 	   Adapter->MacParameter.Rate2Mask[72] = 11; 	   Adapter->MacParameter.Rate2Mask[96] = 12; 	   Adapter->MacParameter.Rate2Mask[108] = 13; 	   Adapter->MacParameter.RateTypeLen = CURRENT_RATE_TYPE_LEN;	   }void InitializeGlobalVars(  IN PWT_ADAPTER Adapter ){      	#ifdef WIN_PLATFORM	NdisFillMemory( Adapter->MacParameter.BcstAddr,6,0xFF );	#else	memset( Adapter->MacParameter.BcstAddr,0xFF, 6 );	#endif}void WtWlanStaMacVarsInit(  IN PWT_ADAPTER Adapter ){	#ifdef WIN_PLATFORM	NdisFillMemory( Adapter->MacParameter.BcstAddr,6,0xFF );	#else	memset( Adapter->MacParameter.BcstAddr, 0xFF, 6 );	#endif}

⌨️ 快捷键说明

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