1 /* 2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. 3 * All rights reserved. 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * 20 * File: rndis.h 21 * 22 * Purpose: Interface between firmware and driver 23 * 24 * Author: Warren Hsu 25 * 26 * Date: Nov 24, 2004 27 * 28 */ 29 30 31 #ifndef __RNDIS_H__ 32 #define __RNDIS_H__ 33 34 /*--------------------- Export Definitions -------------------------*/ 35 #define MESSAGE_TYPE_READ 0x01 36 #define MESSAGE_TYPE_WRITE 0x00 37 #define MESSAGE_TYPE_LOCK_OR 0x02 38 #define MESSAGE_TYPE_LOCK_AND 0x03 39 #define MESSAGE_TYPE_WRITE_MASK 0x04 40 #define MESSAGE_TYPE_CARDINIT 0x05 41 #define MESSAGE_TYPE_INIT_RSP 0x06 42 #define MESSAGE_TYPE_MACSHUTDOWN 0x07 43 #define MESSAGE_TYPE_SETKEY 0x08 44 #define MESSAGE_TYPE_CLRKEYENTRY 0x09 45 #define MESSAGE_TYPE_WRITE_MISCFF 0x0A 46 #define MESSAGE_TYPE_SET_ANTMD 0x0B 47 #define MESSAGE_TYPE_SELECT_CHANNLE 0x0C 48 #define MESSAGE_TYPE_SET_TSFTBTT 0x0D 49 #define MESSAGE_TYPE_SET_SSTIFS 0x0E 50 #define MESSAGE_TYPE_CHANGE_BBTYPE 0x0F 51 #define MESSAGE_TYPE_DISABLE_PS 0x10 52 #define MESSAGE_TYPE_WRITE_IFRF 0x11 53 54 //used for read/write(index) 55 #define MESSAGE_REQUEST_MEM 0x01 56 #define MESSAGE_REQUEST_BBREG 0x02 57 #define MESSAGE_REQUEST_MACREG 0x03 58 #define MESSAGE_REQUEST_EEPROM 0x04 59 #define MESSAGE_REQUEST_TSF 0x05 60 #define MESSAGE_REQUEST_TBTT 0x06 61 #define MESSAGE_REQUEST_BBAGC 0x07 62 #define MESSAGE_REQUEST_VERSION 0x08 63 #define MESSAGE_REQUEST_RF_INIT 0x09 64 #define MESSAGE_REQUEST_RF_INIT2 0x0A 65 #define MESSAGE_REQUEST_RF_CH0 0x0B 66 #define MESSAGE_REQUEST_RF_CH1 0x0C 67 #define MESSAGE_REQUEST_RF_CH2 0x0D 68 69 70 #define VIAUSB20_PACKET_HEADER 0x04 71 72 #define USB_REG4 0x604 73 74 /*--------------------- Export Classes ----------------------------*/ 75 76 typedef struct _CMD_MESSAGE 77 { 78 BYTE byData[256]; 79 } CMD_MESSAGE, *PCMD_MESSAGE; 80 81 typedef struct _CMD_WRITE_MASK 82 { 83 BYTE byData; 84 BYTE byMask; 85 } CMD_WRITE_MASK, *PCMD_WRITE_MASK; 86 87 typedef struct _CMD_CARD_INIT 88 { 89 BYTE byInitClass; 90 BYTE bExistSWNetAddr; 91 BYTE bySWNetAddr[6]; 92 BYTE byShortRetryLimit; 93 BYTE byLongRetryLimit; 94 } CMD_CARD_INIT, *PCMD_CARD_INIT; 95 96 typedef struct _RSP_CARD_INIT 97 { 98 BYTE byStatus; 99 BYTE byNetAddr[6]; 100 BYTE byRFType; 101 BYTE byMinChannel; 102 BYTE byMaxChannel; 103 } RSP_CARD_INIT, *PRSP_CARD_INIT; 104 105 typedef struct _CMD_SET_KEY 106 { 107 WORD wKCTL; 108 BYTE abyMacAddr[6]; 109 BYTE abyKey[16]; 110 } CMD_SET_KEY, *PCMD_SET_KEY; 111 112 typedef struct _CMD_CLRKEY_ENTRY 113 { 114 BYTE abyKeyEntry[11]; 115 } CMD_CLRKEY_ENTRY, *PCMD_CLRKEY_ENTRY; 116 117 typedef struct _CMD_WRITE_MISCFF 118 { 119 DWORD adwMiscFFData[22][4]; //a key entry has only 22 dwords 120 } CMD_WRITE_MISCFF, *PCMD_WRITE_MISCFF; 121 122 typedef struct _CMD_SET_TSFTBTT 123 { 124 BYTE abyTSF_TBTT[8]; 125 } CMD_SET_TSFTBTT, *PCMD_SET_TSFTBTT; 126 127 typedef struct _CMD_SET_SSTIFS 128 { 129 BYTE bySIFS; 130 BYTE byDIFS; 131 BYTE byEIFS; 132 BYTE bySlotTime; 133 BYTE byCwMax_Min; 134 BYTE byBBCR10; 135 } CMD_SET_SSTIFS, *PCMD_SET_SSTIFS; 136 137 typedef struct _CMD_CHANGE_BBTYPE 138 { 139 BYTE bySIFS; 140 BYTE byDIFS; 141 BYTE byEIFS; 142 BYTE bySlotTime; 143 BYTE byCwMax_Min; 144 BYTE byBBCR10; 145 BYTE byBB_BBType; //CR88 146 BYTE byMAC_BBType; 147 DWORD dwRSPINF_b_1; 148 DWORD dwRSPINF_b_2; 149 DWORD dwRSPINF_b_55; 150 DWORD dwRSPINF_b_11; 151 WORD wRSPINF_a[9]; 152 } CMD_CHANGE_BBTYPE, *PCMD_CHANGE_BBTYPE; 153 154 /*--------------------- Export Macros -------------------------*/ 155 156 #define EXCH_WORD(w) ((WORD)((WORD)(w)<<8) | (WORD)((WORD)(w)>>8)) 157 158 /*--------------------- Export Variables --------------------------*/ 159 160 /*--------------------- Export Functions --------------------------*/ 161 162 #endif /* _RNDIS_H_ */ 163