X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FNetwork%2FE1000%2Fe1000.h;h=2a0eb8e391fc8aade104591c5b2768aff5ab6ddd;hb=802762ae7efd39786c0e134ed0bdfe8100d97230;hp=d8b864ff1957ac8e54c0538d5a3980e9bb5f421c;hpb=e02f66c7125bf18f77c6c53587238cbd49da2c89;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Network/E1000/e1000.h b/KernelLand/Modules/Network/E1000/e1000.h index d8b864ff..2a0eb8e3 100644 --- a/KernelLand/Modules/Network/E1000/e1000.h +++ b/KernelLand/Modules/Network/E1000/e1000.h @@ -8,6 +8,45 @@ #ifndef _E1000_H_ #define _E1000_H_ +#include "e1000_hw.h" + +#include +#include +#include + +#define NUM_TX_DESC (PAGE_SIZE/sizeof(struct sTXDesc)) +#define NUM_RX_DESC (PAGE_SIZE/sizeof(struct sRXDesc)) + +#define RX_DESC_BSIZE 4096 +#define RX_DESC_BSIZEHW RCTL_BSIZE_4096 + +typedef struct sCard +{ + tPAddr MMIOBasePhys; + int IRQ; + Uint16 IOBase; + volatile void *MMIOBase; + + tMutex lRXDescs; + int FirstUnseenRXD; + int LastUnseenRXD; + void *RXBuffers[NUM_RX_DESC]; + volatile tRXDesc *RXDescs; + tSemaphore AvailPackets; + struct sCard *RXBackHandles[NUM_RX_DESC]; // Pointers to this struct, offset used to select desc + + tMutex lTXDescs; + int FirstFreeTXD; + int LastFreeTXD; + volatile tTXDesc *TXDescs; + tSemaphore FreeTxDescs; + + tIPStackBuffer *TXSrcBuffers[NUM_TX_DESC]; + + Uint8 MacAddr[6]; + + void *IPStackHandle; +} tCard; #endif