blob: 2a673b125f008e83f5f8a82b64b176a2f928ea16 [file] [log] [blame]
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07001#ifndef _PROTOTYPES_H_
2#define _PROTOTYPES_H_
3
Kevin McKinney29794602012-05-26 12:05:12 -04004VOID LinkControlResponseMessage(struct bcm_mini_adapter *Adapter, PUCHAR pucBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07005
Kevin McKinney29794602012-05-26 12:05:12 -04006VOID StatisticsResponse(struct bcm_mini_adapter *Adapter,PVOID pvBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07007
Kevin McKinney29794602012-05-26 12:05:12 -04008VOID IdleModeResponse(struct bcm_mini_adapter *Adapter,PUINT puiBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -07009
Kevin McKinney29794602012-05-26 12:05:12 -040010int control_packet_handler (struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070011
Kevin McKinney29794602012-05-26 12:05:12 -040012VOID DeleteAllClassifiersForSF(struct bcm_mini_adapter *Adapter,UINT uiSearchRuleIndex);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070013
Kevin McKinney29794602012-05-26 12:05:12 -040014VOID flush_all_queues(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070015
Kevin McKinney29794602012-05-26 12:05:12 -040016int register_control_device_interface(struct bcm_mini_adapter *ps_adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070017
Kevin McKinney29794602012-05-26 12:05:12 -040018void unregister_control_device_interface(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070019
Kevin McKinney29794602012-05-26 12:05:12 -040020INT CopyBufferToControlPacket(struct bcm_mini_adapter *Adapter,/**<Logical Adapter*/
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070021 PVOID ioBuffer/**<Control Packet Buffer*/
22 );
23
Kevin McKinney29794602012-05-26 12:05:12 -040024VOID SortPackInfo(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070025
Kevin McKinney29794602012-05-26 12:05:12 -040026VOID SortClassifiers(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070027
Kevin McKinney29794602012-05-26 12:05:12 -040028VOID flush_all_queues(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070029
Kevin McKinney29794602012-05-26 12:05:12 -040030VOID PruneQueueAllSF(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070031
Kevin McKinney29794602012-05-26 12:05:12 -040032INT SearchSfid(struct bcm_mini_adapter *Adapter,UINT uiSfid);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070033
Kevin McKinney29794602012-05-26 12:05:12 -040034USHORT ClassifyPacket(struct bcm_mini_adapter *Adapter,struct sk_buff* skb);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070035
Kevin McKinney16806302012-12-10 21:55:02 -050036bool MatchSrcPort(struct bcm_classifier_rule *pstClassifierRule,USHORT ushSrcPort);
37bool MatchDestPort(struct bcm_classifier_rule *pstClassifierRule,USHORT ushSrcPort);
38bool MatchProtocol(struct bcm_classifier_rule *pstClassifierRule,UCHAR ucProtocol);
Stephen Hemminger93711052010-10-31 23:55:21 -040039
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070040
Kevin McKinney29794602012-05-26 12:05:12 -040041INT SetupNextSend(struct bcm_mini_adapter *Adapter, /**<Logical Adapter*/
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070042 struct sk_buff *Packet, /**<data buffer*/
43 USHORT Vcid) ;
44
Kevin McKinney29794602012-05-26 12:05:12 -040045VOID LinkMessage(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070046
Kevin McKinney29794602012-05-26 12:05:12 -040047VOID transmit_packets(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070048
Kevin McKinney29794602012-05-26 12:05:12 -040049INT SendControlPacket(struct bcm_mini_adapter *Adapter, /**<Logical Adapter*/
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070050 char *pControlPacket/**<Control Packet*/
51 );
52
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070053
Kevin McKinney29794602012-05-26 12:05:12 -040054int register_networkdev(struct bcm_mini_adapter *Adapter);
55void unregister_networkdev(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070056
Kevin McKinney29794602012-05-26 12:05:12 -040057INT AllocAdapterDsxBuffer(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070058
Kevin McKinney29794602012-05-26 12:05:12 -040059VOID AdapterFree(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070060
Kevin McKinney29794602012-05-26 12:05:12 -040061INT FreeAdapterDsxBuffer(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070062
Kevin McKinney29794602012-05-26 12:05:12 -040063int tx_pkt_handler(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070064
Kevin McKinney29794602012-05-26 12:05:12 -040065int reset_card_proc(struct bcm_mini_adapter *Adapter );
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070066
Kevin McKinney29794602012-05-26 12:05:12 -040067int run_card_proc(struct bcm_mini_adapter *Adapter );
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070068
Kevin McKinney29794602012-05-26 12:05:12 -040069int InitCardAndDownloadFirmware(struct bcm_mini_adapter *ps_adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070070
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070071
Kevin McKinney29794602012-05-26 12:05:12 -040072INT ReadMacAddressFromNVM(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070073
Kevin McKinney29794602012-05-26 12:05:12 -040074int register_control_device_interface(struct bcm_mini_adapter *ps_adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070075
Kevin McKinney29794602012-05-26 12:05:12 -040076void DumpPackInfo(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070077
Kevin McKinney29794602012-05-26 12:05:12 -040078int rdm(struct bcm_mini_adapter *Adapter, UINT uiAddress, PCHAR pucBuff, size_t size);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070079
Kevin McKinney29794602012-05-26 12:05:12 -040080int wrm(struct bcm_mini_adapter *Adapter, UINT uiAddress, PCHAR pucBuff, size_t size);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070081
Kevin McKinneyb23f7f62012-10-18 22:40:09 -040082int wrmalt (struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070083
Kevin McKinneyb23f7f62012-10-18 22:40:09 -040084int rdmalt (struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070085
Kevin McKinney29794602012-05-26 12:05:12 -040086int get_dsx_sf_data_to_application(struct bcm_mini_adapter *Adapter, UINT uiSFId, void __user * user_buffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070087
Kevin McKinney29794602012-05-26 12:05:12 -040088void SendIdleModeResponse(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070089
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070090
Kevin McKinney954f91d2012-11-25 19:28:56 -050091int ProcessGetHostMibs(struct bcm_mini_adapter *Adapter, struct bcm_host_stats_mibs *buf);
92void GetDroppedAppCntrlPktMibs(struct bcm_host_stats_mibs *ioBuffer, struct bcm_tarang_data *pTarang);
Kevin McKinney29794602012-05-26 12:05:12 -040093void beceem_parse_target_struct(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070094
Kevin McKinney29794602012-05-26 12:05:12 -040095int bcm_ioctl_fw_download(struct bcm_mini_adapter *Adapter, struct bcm_firmware_info *psFwInfo);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070096
Kevin McKinney29794602012-05-26 12:05:12 -040097void CopyMIBSExtendedSFParameters(struct bcm_mini_adapter *Adapter,
Kevin McKinneyb766fb12012-09-23 23:07:14 -040098 struct bcm_connect_mgr_params *psfLocalSet, UINT uiSearchRuleIndex);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -070099
Kevin McKinney29794602012-05-26 12:05:12 -0400100VOID ResetCounters(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700101
Kevin McKinney29794602012-05-26 12:05:12 -0400102int InitLedSettings(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700103
Kevin McKinney29794602012-05-26 12:05:12 -0400104struct bcm_classifier_rule *GetFragIPClsEntry(struct bcm_mini_adapter *Adapter,USHORT usIpIdentification,ULONG SrcIP);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700105
Kevin McKinney29794602012-05-26 12:05:12 -0400106void AddFragIPClsEntry(struct bcm_mini_adapter *Adapter, struct bcm_fragmented_packet_info *psFragPktInfo);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700107
Kevin McKinney29794602012-05-26 12:05:12 -0400108void DelFragIPClsEntry(struct bcm_mini_adapter *Adapter,USHORT usIpIdentification,ULONG SrcIp);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700109
Kevin McKinney29794602012-05-26 12:05:12 -0400110void update_per_cid_rx (struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700111
Kevin McKinney29794602012-05-26 12:05:12 -0400112void update_per_sf_desc_cnts( struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700113
Kevin McKinney29794602012-05-26 12:05:12 -0400114void ClearTargetDSXBuffer(struct bcm_mini_adapter *Adapter,B_UINT16 TID,BOOLEAN bFreeAll);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700115
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700116
Kevin McKinney29794602012-05-26 12:05:12 -0400117void flush_queue(struct bcm_mini_adapter *Adapter, UINT iQIndex);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700118
119
120INT flushAllAppQ(VOID);
121
122
123INT BeceemEEPROMBulkRead(
Kevin McKinney29794602012-05-26 12:05:12 -0400124 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700125 PUINT pBuffer,
126 UINT uiOffset,
127 UINT uiNumBytes);
128
129
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700130
Kevin McKinney29794602012-05-26 12:05:12 -0400131INT WriteBeceemEEPROM(struct bcm_mini_adapter *Adapter,UINT uiEEPROMOffset, UINT uiData);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700132
Kevin McKinney29794602012-05-26 12:05:12 -0400133INT PropagateCalParamsFromFlashToMemory(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700134
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700135
136INT BeceemEEPROMBulkWrite(
Kevin McKinney29794602012-05-26 12:05:12 -0400137 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700138 PUCHAR pBuffer,
139 UINT uiOffset,
140 UINT uiNumBytes,
141 BOOLEAN bVerify);
142
143
Kevin McKinney29794602012-05-26 12:05:12 -0400144INT ReadBeceemEEPROM(struct bcm_mini_adapter *Adapter,UINT dwAddress, UINT *pdwData);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700145
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700146
147INT BeceemNVMRead(
Kevin McKinney29794602012-05-26 12:05:12 -0400148 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700149 PUINT pBuffer,
150 UINT uiOffset,
151 UINT uiNumBytes);
152
153INT BeceemNVMWrite(
Kevin McKinney29794602012-05-26 12:05:12 -0400154 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700155 PUINT pBuffer,
156 UINT uiOffset,
157 UINT uiNumBytes,
158 BOOLEAN bVerify);
159
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700160
Kevin McKinney29794602012-05-26 12:05:12 -0400161INT BcmInitNVM(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700162
Kevin McKinney29794602012-05-26 12:05:12 -0400163INT BcmUpdateSectorSize(struct bcm_mini_adapter *Adapter,UINT uiSectorSize);
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500164BOOLEAN IsSectionExistInFlash(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val section);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700165
Kevin McKinneyd48a4302012-11-22 14:48:42 -0500166INT BcmGetFlash2xSectionalBitMap(struct bcm_mini_adapter *Adapter, struct bcm_flash2x_bitmap *psFlash2xBitMap);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700167
168INT BcmFlash2xBulkWrite(
Kevin McKinney29794602012-05-26 12:05:12 -0400169 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700170 PUINT pBuffer,
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500171 enum bcm_flash2x_section_val eFlashSectionVal,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700172 UINT uiOffset,
173 UINT uiNumBytes,
174 UINT bVerify);
175
176INT BcmFlash2xBulkRead(
Kevin McKinney29794602012-05-26 12:05:12 -0400177 struct bcm_mini_adapter *Adapter,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700178 PUINT pBuffer,
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500179 enum bcm_flash2x_section_val eFlashSectionVal,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700180 UINT uiOffsetWithinSectionVal,
181 UINT uiNumBytes);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700182
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500183INT BcmGetSectionValStartOffset(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlashSectionVal);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700184
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500185INT BcmSetActiveSection(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlash2xSectVal);
Kevin McKinney29794602012-05-26 12:05:12 -0400186INT BcmAllocFlashCSStructure(struct bcm_mini_adapter *psAdapter);
187INT BcmDeAllocFlashCSStructure(struct bcm_mini_adapter *psAdapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700188
Kevin McKinneyb1206c02012-11-22 14:48:44 -0500189INT BcmCopyISO(struct bcm_mini_adapter *Adapter, struct bcm_flash2x_copy_section sCopySectStrut);
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500190INT BcmFlash2xCorruptSig(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlash2xSectionVal);
191INT BcmFlash2xWriteSig(struct bcm_mini_adapter *Adapter, enum bcm_flash2x_section_val eFlashSectionVal);
Kevin McKinneyb4a29e12012-11-22 14:48:47 -0500192INT validateFlash2xReadWrite(struct bcm_mini_adapter *Adapter, struct bcm_flash2x_readwrite *psFlash2xReadWrite);
Kevin McKinney29794602012-05-26 12:05:12 -0400193INT IsFlash2x(struct bcm_mini_adapter *Adapter);
194INT BcmCopySection(struct bcm_mini_adapter *Adapter,
Kevin McKinneyff4e0652012-11-22 14:48:50 -0500195 enum bcm_flash2x_section_val SrcSection,
196 enum bcm_flash2x_section_val DstSection,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700197 UINT offset,
198 UINT numOfBytes);
199
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700200
Kevin McKinney29794602012-05-26 12:05:12 -0400201BOOLEAN IsNonCDLessDevice(struct bcm_mini_adapter *Adapter);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700202
203
Kevin McKinney29794602012-05-26 12:05:12 -0400204VOID OverrideServiceFlowParams(struct bcm_mini_adapter *Adapter,PUINT puiBuffer);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700205
Kevin McKinneyb23f7f62012-10-18 22:40:09 -0400206int wrmaltWithLock (struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
207int rdmaltWithLock (struct bcm_mini_adapter *Adapter, UINT uiAddress, unsigned int *pucBuff, size_t sSize);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700208
Kevin McKinney29794602012-05-26 12:05:12 -0400209int wrmWithLock(struct bcm_mini_adapter *Adapter, UINT uiAddress, PCHAR pucBuff, size_t size);
210INT buffDnldVerify(struct bcm_mini_adapter *Adapter, unsigned char *mappedbuffer, unsigned int u32FirmwareLength,
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700211 unsigned long u32StartingAddress);
212
213
214VOID putUsbSuspend(struct work_struct *work);
Kevin McKinney29794602012-05-26 12:05:12 -0400215BOOLEAN IsReqGpioIsLedInNVM(struct bcm_mini_adapter *Adapter, UINT gpios);
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700216
Stephen Hemmingerf8942e02010-09-08 14:46:36 -0700217
218#endif
219
220
221
222