Wifi: some cleanup/code refactoring. Nothing exciting.
This commit is contained in:
parent
95163ca09a
commit
27a730b365
|
@ -291,8 +291,8 @@ SFORMAT SF_WIFI[]={
|
|||
{ "W020", 2, 1, &wifiMac.rfStatus},
|
||||
{ "W030", 2, 1, &wifiMac.rfPins},
|
||||
|
||||
{ "W040", 2, 1, &wifiMac.IE.val},
|
||||
{ "W050", 2, 1, &wifiMac.IF.val},
|
||||
{ "W040", 2, 1, &wifiMac.IE},
|
||||
{ "W050", 2, 1, &wifiMac.IF},
|
||||
|
||||
{ "W060", 2, 1, &wifiMac.macMode},
|
||||
{ "W070", 2, 1, &wifiMac.wepMode},
|
||||
|
@ -349,14 +349,10 @@ SFORMAT SF_WIFI[]={
|
|||
{ "W370", 4, 1, &wifiMac.rfIOData.val},
|
||||
{ "W380", 2, 1, &wifiMac.bbIOCnt.val},
|
||||
|
||||
{ "W390", 1, 1, &wifiMac.bbDataToWrite},
|
||||
|
||||
{ "W400", 2, 0x1000, &wifiMac.circularBuffer[0]},
|
||||
{ "W400", 2, 0x1000, &wifiMac.RAM[0]},
|
||||
{ "W410", 2, 1, &wifiMac.RXRangeBegin},
|
||||
{ "W420", 2, 1, &wifiMac.RXRangeEnd},
|
||||
{ "W430", 2, 1, &wifiMac.RXHWWriteCursor},
|
||||
{ "W440", 2, 1, &wifiMac.RXHWWriteCursorReg},
|
||||
{ "W450", 2, 1, &wifiMac.RXHWWriteCursorLatched},
|
||||
{ "W430", 2, 1, &wifiMac.RXWriteCursor},
|
||||
{ "W460", 2, 1, &wifiMac.RXReadCursor},
|
||||
{ "W470", 2, 1, &wifiMac.RXUnits},
|
||||
{ "W480", 2, 1, &wifiMac.RXBufCount},
|
||||
|
@ -371,14 +367,14 @@ SFORMAT SF_WIFI[]={
|
|||
{ "W560", 4, 1, &wifiMac.curPacketPos[0]},
|
||||
{ "W570", 4, 1, &wifiMac.curPacketSending[0]},
|
||||
|
||||
{ "W580", 2, 0x800, &wifiMac.ioMem[0]},
|
||||
{ "W580", 2, 0x800, &wifiMac.IOPorts[0]},
|
||||
{ "W590", 2, 1, &wifiMac.randomSeed},
|
||||
|
||||
{ "WX00", 8, 1, &wifiMac.SoftAP.usecCounter},
|
||||
{ "WX10", 1, 4096, &wifiMac.SoftAP.curPacket[0]},
|
||||
{ "WX20", 4, 1, &wifiMac.SoftAP.curPacketSize},
|
||||
{ "WX30", 4, 1, &wifiMac.SoftAP.curPacketPos},
|
||||
{ "WX40", 4, 1, &wifiMac.SoftAP.curPacketSending},
|
||||
{ "WX00", 8, 1, &SoftAP.usecCounter},
|
||||
{ "WX10", 1, 4096, &SoftAP.curPacket[0]},
|
||||
{ "WX20", 4, 1, &SoftAP.curPacketSize},
|
||||
{ "WX30", 4, 1, &SoftAP.curPacketPos},
|
||||
{ "WX40", 4, 1, &SoftAP.curPacketSending},
|
||||
|
||||
{ 0 }
|
||||
};
|
||||
|
|
1048
desmume/src/wifi.cpp
1048
desmume/src/wifi.cpp
File diff suppressed because it is too large
Load Diff
|
@ -32,10 +32,12 @@
|
|||
|
||||
#endif
|
||||
|
||||
|
||||
#define REG_WIFI_ID 0x000
|
||||
#define REG_WIFI_MODE 0x004
|
||||
#define REG_WIFI_WEP 0x006
|
||||
#define REG_WIFI_TXSTATCNT 0x008
|
||||
#define REG_WIFI_0A 0x00A
|
||||
#define REG_WIFI_IF 0x010
|
||||
#define REG_WIFI_IE 0x012
|
||||
#define REG_WIFI_MAC0 0x018
|
||||
|
@ -47,13 +49,18 @@
|
|||
#define REG_WIFI_AID_LOW 0x028
|
||||
#define REG_WIFI_AID_HIGH 0x02A
|
||||
#define REG_WIFI_RETRYLIMIT 0x02C
|
||||
// 02E - internal
|
||||
#define REG_WIFI_RXCNT 0x030
|
||||
#define REG_WIFI_WEPCNT 0x032
|
||||
// 034 - internal
|
||||
|
||||
#define REG_WIFI_POWER_US 0x036
|
||||
#define REG_WIFI_POWER_TX 0x038
|
||||
#define REG_WIFI_POWERSTATE 0x03C
|
||||
#define REG_WIFI_FORCEPS 0x040
|
||||
#define REG_WIFI_POWERFORCE 0x040
|
||||
#define REG_WIFI_RANDOM 0x044
|
||||
#define REG_WIFI_POWER_UNK 0x048
|
||||
|
||||
#define REG_WIFI_RXRANGEBEGIN 0x050
|
||||
#define REG_WIFI_RXRANGEEND 0x052
|
||||
#define REG_WIFI_RXHWWRITECSR 0x054
|
||||
|
@ -65,26 +72,43 @@
|
|||
#define REG_WIFI_CIRCBUFRD_END 0x062
|
||||
#define REG_WIFI_CIRCBUFRD_SKIP 0x064
|
||||
#define REG_WIFI_CIRCBUFWADR 0x068
|
||||
#define REG_WIFI_TXBUFCOUNT 0x06C
|
||||
#define REG_WIFI_CIRCBUFWRITE 0x070
|
||||
#define REG_WIFI_CIRCBUFWR_END 0x074
|
||||
#define REG_WIFI_CIRCBUFWR_SKIP 0x076
|
||||
|
||||
// 078 - internal
|
||||
#define REG_WIFI_TXLOCBEACON 0x080
|
||||
#define REG_WIFI_LISTENCOUNT 0x088
|
||||
#define REG_WIFI_BEACONPERIOD 0x08C
|
||||
#define REG_WIFI_LISTENINT 0x08E
|
||||
#define REG_WIFI_TXLOCEXTRA 0x090
|
||||
// 094 - ?
|
||||
// 098 - ?
|
||||
// 09C - internal
|
||||
#define REG_WIFI_TXLOC1 0x0A0
|
||||
#define REG_WIFI_TXLOC2 0x0A4
|
||||
#define REG_WIFI_TXLOC3 0x0A8
|
||||
#define REG_WIFI_TXOPT 0x0AC
|
||||
#define REG_WIFI_TXCNT 0x0AE
|
||||
#define REG_WIFI_TXREQ_RESET 0x0AC
|
||||
#define REG_WIFI_TXREQ_SET 0x0AE
|
||||
#define REG_WIFI_TXREQ_READ 0x0B0
|
||||
#define REG_WIFI_TXRESET 0x0B4
|
||||
#define REG_WIFI_TXBUSY 0x0B6
|
||||
#define REG_WIFI_TXSTAT 0x0B8
|
||||
// 0BA - internal
|
||||
#define REG_WIFI_PREAMBLE 0x0BC
|
||||
// 0C0 - ?
|
||||
// 0C4 - ?
|
||||
// 0C8 - internal
|
||||
#define REG_WIFI_RXFILTER 0x0D0
|
||||
// 0D4 - config
|
||||
// 0D8 - config
|
||||
// 0DA - config
|
||||
#define REG_WIFI_RXFILTER2 0x0E0
|
||||
|
||||
#define REG_WIFI_USCOUNTERCNT 0x0E8
|
||||
#define REG_WIFI_USCOMPARECNT 0x0EA
|
||||
// 0EC - config
|
||||
#define REG_WIFI_EXTRACOUNTCNT 0x0EE
|
||||
#define REG_WIFI_USCOMPARE0 0x0F0
|
||||
#define REG_WIFI_USCOMPARE1 0x0F2
|
||||
|
@ -94,26 +118,60 @@
|
|||
#define REG_WIFI_USCOUNTER1 0x0FA
|
||||
#define REG_WIFI_USCOUNTER2 0x0FC
|
||||
#define REG_WIFI_USCOUNTER3 0x0FE
|
||||
// 100 - internal
|
||||
// 102 - internal
|
||||
// 104 - internal
|
||||
// 106 - internal
|
||||
#define REG_WIFI_CONTENTFREE 0x10C
|
||||
#define REG_WIFI_PREBEACONCOUNT 0x110
|
||||
#define REG_WIFI_EXTRACOUNT 0x118
|
||||
#define REG_WIFI_BEACONCOUNT1 0x11C
|
||||
|
||||
// 120 to 132 - config/internal ports
|
||||
#define REG_WIFI_BEACONCOUNT2 0x134
|
||||
#define REG_WIFI_BBSIOCNT 0x158
|
||||
#define REG_WIFI_BBSIOWRITE 0x15A
|
||||
#define REG_WIFI_BBSIOREAD 0x15C
|
||||
#define REG_WIFI_BBSIOBUSY 0x15E
|
||||
#define REG_WIFI_RFIODATA2 0x17C
|
||||
#define REG_WIFI_RFIODATA1 0x17E
|
||||
#define REG_WIFI_RFIOBSY 0x180
|
||||
#define REG_WIFI_RFIOCNT 0x184
|
||||
// 140 to 154 - config ports
|
||||
|
||||
#define REG_WIFI_BBCNT 0x158
|
||||
#define REG_WIFI_BBWRITE 0x15A
|
||||
#define REG_WIFI_BBREAD 0x15C
|
||||
#define REG_WIFI_BBBUSY 0x15E
|
||||
#define REG_WIFI_BBMODE 0x160
|
||||
#define REG_WIFI_BBPOWER 0x168
|
||||
|
||||
// 16A to 178 - internal
|
||||
|
||||
#define REG_WIFI_RFDATA2 0x17C
|
||||
#define REG_WIFI_RFDATA1 0x17E
|
||||
#define REG_WIFI_RFBUSY 0x180
|
||||
#define REG_WIFI_RFCNT 0x184
|
||||
|
||||
// 190 - internal
|
||||
// 194 - ?
|
||||
// 198 - internal
|
||||
#define REG_WIFI_RFPINS 0x19C
|
||||
// 1A0 - internal
|
||||
// 1A2 - internal
|
||||
#define REG_WIFI_MAYBE_RATE 0x1A4
|
||||
|
||||
#define REG_WIFI_RXSTAT_INC_IF 0x1A8
|
||||
#define REG_WIFI_RXSTAT_INC_IE 0x1AA
|
||||
#define REG_WIFI_RXSTAT_OVF_IF 0x1AC
|
||||
#define REG_WIFI_RXSTAT_OVF_IE 0x1AE
|
||||
#define REG_WIFI_TXERR_COUNT 0x1C0
|
||||
#define REG_WIFI_RX_COUNT 0x1C4
|
||||
|
||||
// 1D0 to 1DE - related to multiplayer. argh.
|
||||
|
||||
#define REG_WIFI_RFSTATUS 0x214
|
||||
#define REG_WIFI_IF_SET 0x21C
|
||||
#define REG_WIFI_TXSEQNO 0x210
|
||||
#define REG_WIFI_POWERACK 0x2D0
|
||||
|
||||
|
||||
#define WIFI_IOREG(reg) wifiMac.IOPorts[(reg) >> 1]
|
||||
|
||||
/* WIFI misc constants */
|
||||
#define WIFI_CHIPID 0x1440 /* emulates "old" wifi chip, new is 0xC340 */
|
||||
#define REG_PWRCNT 0x04000304
|
||||
|
||||
/* Referenced as RF_ in dswifi: rffilter_t */
|
||||
/* based on the documentation for the RF2958 chip of RF Micro Devices */
|
||||
|
@ -131,10 +189,10 @@ typedef struct rffilter_t
|
|||
/* 3*/ unsigned HYBERNATE:1;
|
||||
/* 4*/ unsigned :10;
|
||||
/*14*/ unsigned REF_SEL:2;
|
||||
/*16*/ unsigned :2 ;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} CFG1 ;
|
||||
/*16*/ unsigned :2;
|
||||
} bits;
|
||||
u32 val;
|
||||
} CFG1;
|
||||
union IFPLL1
|
||||
{
|
||||
struct
|
||||
|
@ -150,18 +208,18 @@ typedef struct rffilter_t
|
|||
/*15*/ unsigned VTC_EN1:1;
|
||||
/*16*/ unsigned KV_EN1:1;
|
||||
/*17*/ unsigned PLL_EN1:1;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} IFPLL1 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} IFPLL1;
|
||||
union IFPLL2
|
||||
{
|
||||
struct
|
||||
{
|
||||
/* 0*/ unsigned IF_N:16;
|
||||
/*16*/ unsigned :2;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} IFPLL2 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} IFPLL2;
|
||||
union IFPLL3
|
||||
{
|
||||
struct
|
||||
|
@ -170,9 +228,9 @@ typedef struct rffilter_t
|
|||
/* 4*/ unsigned CT_DEF1:4;
|
||||
/* 8*/ unsigned DN1:9;
|
||||
/*17*/ unsigned :1;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} IFPLL3 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} IFPLL3;
|
||||
union RFPLL1
|
||||
{
|
||||
struct
|
||||
|
@ -188,26 +246,26 @@ typedef struct rffilter_t
|
|||
/*15*/ unsigned VTC_EN:1;
|
||||
/*16*/ unsigned KV_EN:1;
|
||||
/*17*/ unsigned PLL_EN:1;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} RFPLL1 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} RFPLL1;
|
||||
union RFPLL2
|
||||
{
|
||||
struct
|
||||
{
|
||||
/* 0*/ unsigned NUM2:6;
|
||||
/* 6*/ unsigned N2:12;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} RFPLL2 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} RFPLL2;
|
||||
union RFPLL3
|
||||
{
|
||||
struct
|
||||
{
|
||||
/* 0*/ unsigned NUM2:18;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} RFPLL3 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} RFPLL3;
|
||||
union RFPLL4
|
||||
{
|
||||
struct
|
||||
|
@ -216,9 +274,9 @@ typedef struct rffilter_t
|
|||
/* 4*/ unsigned CT_DEF:4;
|
||||
/* 8*/ unsigned DN:9;
|
||||
/*17*/ unsigned :1;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} RFPLL4 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} RFPLL4;
|
||||
union CAL1
|
||||
{
|
||||
struct
|
||||
|
@ -227,9 +285,9 @@ typedef struct rffilter_t
|
|||
/* 3*/ unsigned M_CT_VALUE:5;
|
||||
/* 8*/ unsigned TLOCK:5;
|
||||
/*13*/ unsigned TVCO:5;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} CAL1 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} CAL1;
|
||||
union TXRX1
|
||||
{
|
||||
struct
|
||||
|
@ -243,9 +301,9 @@ typedef struct rffilter_t
|
|||
/*10*/ unsigned TXVGC:5;
|
||||
/*15*/ unsigned PCONTROL:2;
|
||||
/*17*/ unsigned RXDCFBBYPS:1;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} TXRX1 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} TXRX1;
|
||||
union PCNT1
|
||||
{
|
||||
struct
|
||||
|
@ -254,9 +312,9 @@ typedef struct rffilter_t
|
|||
/* 3*/ unsigned PC_OFFSET:6;
|
||||
/* 9*/ unsigned P_DESIRED:6;
|
||||
/*15*/ unsigned MID_BIAS:3;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} PCNT1 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} PCNT1;
|
||||
union PCNT2
|
||||
{
|
||||
struct
|
||||
|
@ -264,9 +322,9 @@ typedef struct rffilter_t
|
|||
/* 0*/ unsigned MIN_POWER:6;
|
||||
/* 6*/ unsigned MID_POWER:6;
|
||||
/*12*/ unsigned MAX_POWER:6;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} PCNT2 ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} PCNT2;
|
||||
union VCOT1
|
||||
{
|
||||
struct
|
||||
|
@ -274,17 +332,17 @@ typedef struct rffilter_t
|
|||
/* 0*/ unsigned :16;
|
||||
/*16*/ unsigned AUX1:1;
|
||||
/*17*/ unsigned AUX:1;
|
||||
} bits ;
|
||||
u32 val ;
|
||||
} VCOT1 ;
|
||||
} rffilter_t ;
|
||||
} bits;
|
||||
u32 val;
|
||||
} VCOT1;
|
||||
} rffilter_t;
|
||||
|
||||
/* baseband chip refered as BB_, dataformat is unknown yet */
|
||||
/* it has at least 105 bytes of functional data */
|
||||
typedef struct
|
||||
{
|
||||
u8 data[105] ;
|
||||
} bb_t ;
|
||||
u8 data[105];
|
||||
} bb_t;
|
||||
|
||||
/* communication interface between RF,BB and the mac */
|
||||
typedef union
|
||||
|
@ -294,33 +352,33 @@ typedef union
|
|||
/* 5*/ unsigned :2;
|
||||
/* 7*/ unsigned readOperation:1;
|
||||
/* 8*/ unsigned :8;
|
||||
} bits ;
|
||||
u16 val ;
|
||||
} rfIOCnt_t ;
|
||||
} bits;
|
||||
u16 val;
|
||||
} rfIOCnt_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
struct {
|
||||
/* 0*/ unsigned busy:1;
|
||||
/* 1*/ unsigned :15;
|
||||
} bits ;
|
||||
u16 val ;
|
||||
} rfIOStat_t ;
|
||||
} bits;
|
||||
u16 val;
|
||||
} rfIOStat_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
struct {
|
||||
/* 0*/ unsigned content:18 ;
|
||||
/* 0*/ unsigned content:18;
|
||||
/*18*/ unsigned address:5;
|
||||
/*23*/ unsigned :9;
|
||||
} bits ;
|
||||
} bits;
|
||||
struct {
|
||||
/* 0*/ unsigned low:16 ;
|
||||
/*16*/ unsigned high:16 ;
|
||||
} val16 ;
|
||||
u16 array16[2] ;
|
||||
u32 val ;
|
||||
} rfIOData_t ;
|
||||
/* 0*/ unsigned low:16;
|
||||
/*16*/ unsigned high:16;
|
||||
} val16;
|
||||
u16 array16[2];
|
||||
u32 val;
|
||||
} rfIOData_t;
|
||||
|
||||
typedef union
|
||||
{
|
||||
|
@ -330,9 +388,9 @@ typedef union
|
|||
/*12*/ unsigned mode:2;
|
||||
/*14*/ unsigned enable:1;
|
||||
/*15*/ unsigned :1;
|
||||
} bits ;
|
||||
u16 val ;
|
||||
} bbIOCnt_t ;
|
||||
} bits;
|
||||
u16 val;
|
||||
} bbIOCnt_t;
|
||||
|
||||
#define WIFI_IRQ_RXEND 0
|
||||
#define WIFI_IRQ_TXEND 1
|
||||
|
@ -350,28 +408,6 @@ typedef union
|
|||
#define WIFI_IRQ_TIMEBEACON 14
|
||||
#define WIFI_IRQ_TIMEPREBEACON 15
|
||||
|
||||
/* definition of the irq bitfields for wifi irq's (cascaded at arm7 irq #24) */
|
||||
typedef union
|
||||
{
|
||||
struct
|
||||
{
|
||||
/* 0*/ unsigned recv_complete:1;
|
||||
/* 1*/ unsigned send_complete:1;
|
||||
/* 2*/ unsigned recv_countup:1;
|
||||
/* 3*/ unsigned send_error:1;
|
||||
/* 4*/ unsigned stat_countup:1;
|
||||
/* 5*/ unsigned stat_ackup:1;
|
||||
/* 6*/ unsigned recv_start:1;
|
||||
/* 7*/ unsigned send_start:1;
|
||||
/* 8*/ unsigned :3;
|
||||
/*11*/ unsigned rf_wakeup:1;
|
||||
/*12*/ unsigned :2;
|
||||
/*14*/ unsigned time_beacon:1;
|
||||
/*15*/ unsigned time_prebeacon:1;
|
||||
} bits ;
|
||||
u16 val ;
|
||||
} wifiirq_t ;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool enabled;
|
||||
|
@ -381,6 +417,13 @@ typedef struct
|
|||
u16 remtime;
|
||||
} Wifi_TXLoc;
|
||||
|
||||
enum EAPStatus
|
||||
{
|
||||
APStatus_Disconnected = 0,
|
||||
APStatus_Authenticated,
|
||||
APStatus_Associated,
|
||||
};
|
||||
|
||||
/* wifimac_t: the buildin mac (arm7 addressrange: 0x04800000-0x04FFFFFF )*/
|
||||
/* http://www.akkit.org/info/dswifi.htm#WifiIOMap */
|
||||
|
||||
|
@ -395,20 +438,20 @@ typedef struct
|
|||
u16 rfPins;
|
||||
|
||||
/* wifi interrupt handling */
|
||||
wifiirq_t IE ;
|
||||
wifiirq_t IF ;
|
||||
u16 IE;
|
||||
u16 IF;
|
||||
|
||||
/* modes */
|
||||
u16 macMode ;
|
||||
u16 wepMode ;
|
||||
BOOL WEP_enable ;
|
||||
u16 macMode;
|
||||
u16 wepMode;
|
||||
BOOL WEP_enable;
|
||||
|
||||
/* sending */
|
||||
u16 TXStatCnt;
|
||||
u16 TXPower;
|
||||
u16 TXSlot[3] ;
|
||||
u16 TXCnt ;
|
||||
u16 TXOpt ;
|
||||
u16 TXSlot[3];
|
||||
u16 TXCnt;
|
||||
u16 TXOpt;
|
||||
u16 TXStat;
|
||||
u16 BeaconAddr;
|
||||
BOOL BeaconEnable;
|
||||
|
@ -425,8 +468,8 @@ typedef struct
|
|||
u16 ExtraSlotRemBytes;
|
||||
|
||||
/* receiving */
|
||||
u16 RXCnt ;
|
||||
u16 RXCheckCounter ;
|
||||
u16 RXCnt;
|
||||
u16 RXCheckCounter;
|
||||
u8 RXNum;
|
||||
|
||||
u16 RXTXAddr;
|
||||
|
@ -435,26 +478,26 @@ typedef struct
|
|||
union
|
||||
{
|
||||
//TODO - is this endian safe? don't think so
|
||||
u16 words[3] ;
|
||||
u8 bytes[6] ;
|
||||
} mac ;
|
||||
u16 words[3];
|
||||
u8 bytes[6];
|
||||
} mac;
|
||||
union
|
||||
{
|
||||
u16 words[3] ;
|
||||
u8 bytes[6] ;
|
||||
} bss ;
|
||||
u16 aid ;
|
||||
u16 pid ; /* player ID or aid_low */
|
||||
u16 retryLimit ;
|
||||
u16 words[3];
|
||||
u8 bytes[6];
|
||||
} bss;
|
||||
u16 aid;
|
||||
u16 pid; /* player ID or aid_low */
|
||||
u16 retryLimit;
|
||||
|
||||
/* timing */
|
||||
BOOL crystalEnabled ;
|
||||
u64 usec ;
|
||||
BOOL usecEnable ;
|
||||
u64 ucmp ;
|
||||
BOOL ucmpEnable ;
|
||||
u32 eCount ;
|
||||
BOOL eCountEnable ;
|
||||
BOOL crystalEnabled;
|
||||
u64 usec;
|
||||
BOOL usecEnable;
|
||||
u64 ucmp;
|
||||
BOOL ucmpEnable;
|
||||
u32 eCount;
|
||||
BOOL eCountEnable;
|
||||
u16 BeaconInterval;
|
||||
u16 BeaconCount1;
|
||||
u16 BeaconCount2;
|
||||
|
@ -462,64 +505,63 @@ typedef struct
|
|||
u16 ListenCount;
|
||||
|
||||
/* subchips */
|
||||
rffilter_t RF ;
|
||||
bb_t BB ;
|
||||
rffilter_t RF;
|
||||
bb_t BB;
|
||||
|
||||
/* subchip communications */
|
||||
rfIOCnt_t rfIOCnt ;
|
||||
rfIOStat_t rfIOStatus ;
|
||||
rfIOData_t rfIOData ;
|
||||
bbIOCnt_t bbIOCnt ;
|
||||
|
||||
u8 bbDataToWrite;
|
||||
rfIOCnt_t rfIOCnt;
|
||||
rfIOStat_t rfIOStatus;
|
||||
rfIOData_t rfIOData;
|
||||
bbIOCnt_t bbIOCnt;
|
||||
|
||||
/* buffers */
|
||||
u16 circularBuffer[0x1000] ;
|
||||
u16 RXRangeBegin ;
|
||||
u16 RXRangeEnd ;
|
||||
u16 RXHWWriteCursor ;
|
||||
u16 RXHWWriteCursorReg;
|
||||
u16 RXHWWriteCursorLatched;
|
||||
u16 RXReadCursor ;
|
||||
u16 RXUnits ;
|
||||
u16 RXBufCount ;
|
||||
u16 CircBufReadAddress ;
|
||||
u16 CircBufWriteAddress ;
|
||||
u16 CircBufRdEnd ;
|
||||
u16 CircBufRdSkip ;
|
||||
u16 CircBufWrEnd ;
|
||||
u16 CircBufWrSkip ;
|
||||
u16 RAM[0x1000];
|
||||
u16 RXRangeBegin;
|
||||
u16 RXRangeEnd;
|
||||
u16 RXWriteCursor;
|
||||
u16 RXReadCursor;
|
||||
u16 RXUnits;
|
||||
u16 RXBufCount;
|
||||
u16 CircBufReadAddress;
|
||||
u16 CircBufWriteAddress;
|
||||
u16 CircBufRdEnd;
|
||||
u16 CircBufRdSkip;
|
||||
u16 CircBufWrEnd;
|
||||
u16 CircBufWrSkip;
|
||||
|
||||
/* tx packets */
|
||||
s32 curPacketSize[3];
|
||||
s32 curPacketPos[3];
|
||||
BOOL curPacketSending[3];
|
||||
|
||||
/* i/o mem */
|
||||
u16 ioMem[0x800];
|
||||
/* I/O ports */
|
||||
u16 IOPorts[0x800];
|
||||
|
||||
/* others */
|
||||
u16 randomSeed ;
|
||||
u16 randomSeed;
|
||||
|
||||
struct _Adhoc
|
||||
{
|
||||
u64 usecCounter;
|
||||
} wifimac_t;
|
||||
|
||||
} Adhoc;
|
||||
|
||||
/* SoftAP */
|
||||
struct _SoftAP
|
||||
{
|
||||
u64 usecCounter;
|
||||
typedef struct
|
||||
{
|
||||
u64 usecCounter;
|
||||
|
||||
u8 curPacket[4096];
|
||||
s32 curPacketSize;
|
||||
s32 curPacketPos;
|
||||
BOOL curPacketSending;
|
||||
} Adhoc_t;
|
||||
|
||||
} SoftAP;
|
||||
typedef struct
|
||||
{
|
||||
u64 usecCounter;
|
||||
|
||||
} wifimac_t ;
|
||||
u8 curPacket[4096];
|
||||
s32 curPacketSize;
|
||||
s32 curPacketPos;
|
||||
BOOL curPacketSending;
|
||||
|
||||
EAPStatus status;
|
||||
u16 seqNum;
|
||||
|
||||
} SoftAP_t;
|
||||
|
||||
// desmume host communication
|
||||
#ifdef EXPERIMENTAL_WIFI_COMM
|
||||
|
@ -528,27 +570,29 @@ extern pcap_t *wifi_bridge;
|
|||
#endif
|
||||
|
||||
extern wifimac_t wifiMac;
|
||||
extern Adhoc_t Adhoc;
|
||||
extern SoftAP_t SoftAP;
|
||||
|
||||
bool WIFI_Init();
|
||||
void WIFI_DeInit();
|
||||
void WIFI_Reset();
|
||||
|
||||
/* subchip communication IO functions */
|
||||
void WIFI_setRF_CNT(u16 val) ;
|
||||
void WIFI_setRF_DATA(u16 val, u8 part) ;
|
||||
u16 WIFI_getRF_DATA(u8 part) ;
|
||||
u16 WIFI_getRF_STATUS() ;
|
||||
void WIFI_setRF_CNT(u16 val);
|
||||
void WIFI_setRF_DATA(u16 val, u8 part);
|
||||
u16 WIFI_getRF_DATA(u8 part);
|
||||
u16 WIFI_getRF_STATUS();
|
||||
|
||||
void WIFI_setBB_CNT(u16 val) ;
|
||||
u8 WIFI_getBB_DATA() ;
|
||||
void WIFI_setBB_DATA(u8 val) ;
|
||||
void WIFI_setBB_CNT(u16 val);
|
||||
u8 WIFI_getBB_DATA();
|
||||
void WIFI_setBB_DATA(u8 val);
|
||||
|
||||
/* wifimac io */
|
||||
void WIFI_write16(u32 address, u16 val) ;
|
||||
u16 WIFI_read16(u32 address) ;
|
||||
void WIFI_write16(u32 address, u16 val);
|
||||
u16 WIFI_read16(u32 address);
|
||||
|
||||
/* wifimac timing */
|
||||
void WIFI_usTrigger() ;
|
||||
void WIFI_usTrigger();
|
||||
|
||||
|
||||
/* DS WFC profile data documented here : */
|
||||
|
@ -580,11 +624,11 @@ typedef struct _FW_WFCProfile
|
|||
|
||||
/* wifi data to be stored in firmware, when no firmware image was loaded */
|
||||
extern u8 FW_Mac[6];
|
||||
extern const u8 FW_WIFIInit[32] ;
|
||||
extern const u8 FW_BBInit[105] ;
|
||||
extern const u8 FW_RFInit[36] ;
|
||||
extern const u8 FW_RFChannel[6*14] ;
|
||||
extern const u8 FW_BBChannel[14] ;
|
||||
extern const u8 FW_WIFIInit[32];
|
||||
extern const u8 FW_BBInit[105];
|
||||
extern const u8 FW_RFInit[36];
|
||||
extern const u8 FW_RFChannel[6*14];
|
||||
extern const u8 FW_BBChannel[14];
|
||||
extern FW_WFCProfile FW_WFCProfile1;
|
||||
extern FW_WFCProfile FW_WFCProfile2;
|
||||
extern FW_WFCProfile FW_WFCProfile3;
|
||||
|
|
Loading…
Reference in New Issue