--- /dev/null
+/*\r
+ *\r
+ * ipg.h\r
+ *\r
+ * Include file with structures for Gigabit Ethernet\r
+ * device driver for Network Interface Cards (NICs) utilizing the\r
+ * Tamarack Microelectronics Inc. IPG Gigabit or Triple Speed\r
+ * Ethernet Media Access Controller.\r
+ *\r
+ * Craig Rich\r
+ * Sundance Technology, Inc.\r
+ * 1485 Saratoga Avenue\r
+ * Suite 200\r
+ * San Jose, CA 95129\r
+ * 408 873 4117\r
+ * www.sundanceti.com\r
+ * craig_rich@sundanceti.com\r
+ *\r
+ * Rev Date Description\r
+ * --------------------------------------------------------------\r
+ * 0.1 3/30/01 New file created from original ipg.h\r
+ *\r
+ * 0.2 5/22/01 Added PCI_DEVICE_ID_TAMARACK_TC9020_9021_ALT\r
+ * to nics_supported[] array.\r
+ */\r
+\r
+/* IPG Ethernet device structure, used for removing module. */\r
+IPG_DEVICE_TYPE *root_ipg_ethernet_device = NULL;\r
+\r
+/* Transmit Frame Descriptor. The IPG supports 15 fragments,\r
+ * however Linux requires only a single fragment. Note, each\r
+ * TFD field is 64 bits wide.\r
+ */\r
+struct TFD\r
+{\r
+ u64 TFDNextPtr;\r
+ u64 TFC;\r
+ u64 FragInfo;\r
+};\r
+\r
+/* Receive Frame Descriptor. Note, each RFD field is 64 bits wide.\r
+ */\r
+struct RFD\r
+{\r
+ u64 RFDNextPtr;\r
+ u64 RFS;\r
+ u64 FragInfo;\r
+};\r
+\r
+#ifdef IPG_LINUX2_4\r
+struct ipg_dmabuff\r
+{\r
+ dma_addr_t dmahandle;\r
+ unsigned long len;\r
+};\r
+\r
+#endif\r
+struct SJumbo\r
+{\r
+ int FoundStart;\r
+ int CurrentSize;\r
+ struct sk_buff *skb;\r
+};\r
+/* Structure of IPG NIC specific data. */\r
+struct ipg_nic_private\r
+{\r
+ struct TFD *TFDList;\r
+ struct RFD *RFDList;\r
+#ifdef IPG_LINUX2_4\r
+ dma_addr_t TFDListDMAhandle;\r
+ dma_addr_t RFDListDMAhandle;\r
+ struct ipg_dmabuff TxBuffDMAhandle[IPG_TFDLIST_LENGTH];\r
+ struct ipg_dmabuff RxBuffDMAhandle[IPG_RFDLIST_LENGTH];\r
+#endif\r
+ struct sk_buff *TxBuff[IPG_TFDLIST_LENGTH];\r
+ struct sk_buff *RxBuff[IPG_RFDLIST_LENGTH];\r
+ u16 CurrentTxFrameID;\r
+ int CurrentTFD;\r
+ int LastFreedTxBuff;\r
+ int CurrentRFD;\r
+// Add by Grace 2005/05/19\r
+#ifdef JUMBO_FRAME\r
+ struct SJumbo Jumbo;\r
+#endif\r
+ int LastRestoredRxBuff;\r
+ int RxBuffNotReady;\r
+ struct pci_dev *ipg_pci_device;\r
+ IPG_STATS_TYPE stats;\r
+ IPG_DEVICE_TYPE *next_ipg_ethernet_device;\r
+ spinlock_t lock;\r
+ int tenmbpsmode;\r
+ \r
+ /*Jesse20040128EEPROM_VALUE */\r
+ u16 LED_Mode;\r
+ u16 StationAddr0; /* Station Address in EEPROM Reg 0x10 */\r
+ u16 StationAddr1; /* Station Address in EEPROM Reg 0x11 */ \r
+ u16 StationAddr2; /* Station Address in EEPROM Reg 0x12 */ \r
+\r
+#ifdef IPG_DEBUG\r
+ int TFDunavailCount;\r
+ int RFDlistendCount;\r
+ int RFDListCheckedCount;\r
+ int EmptyRFDListCount;\r
+#endif\r
+};\r
+\r
+struct nic_id\r
+{\r
+ char* NICname;\r
+ int vendorid;\r
+ int deviceid;\r
+};\r
+\r
+struct nic_id nics_supported[] =\r
+{\r
+ {"IC PLUS IP1000 1000/100/10 based NIC",\r
+ PCI_VENDOR_ID_ICPLUS,\r
+ PCI_DEVICE_ID_IP1000},\r
+ {"Sundance Technology ST2021 based NIC",\r
+ PCI_VENDOR_ID_SUNDANCE,\r
+ PCI_DEVICE_ID_SUNDANCE_ST2021},\r
+ {"Tamarack Microelectronics TC9020/9021 based NIC",\r
+ PCI_VENDOR_ID_SUNDANCE,\r
+ PCI_DEVICE_ID_TAMARACK_TC9020_9021},\r
+ {"Tamarack Microelectronics TC9020/9021 based NIC",\r
+ PCI_VENDOR_ID_SUNDANCE,\r
+ PCI_DEVICE_ID_TAMARACK_TC9020_9021_ALT},\r
+ {"D-Link NIC",\r
+ PCI_VENDOR_ID_DLINK,\r
+ PCI_DEVICE_ID_DLINK_1002},\r
+ {"D-Link NIC IP1000A",\r
+ PCI_VENDOR_ID_DLINK,\r
+ PCI_DEVICE_ID_DLINK_IP1000A},\r
+ \r
+ {"N/A", 0xFFFF, 0}\r
+};\r
+\r
+#ifdef IPG_LINUX2_4\r
+struct pci_device_id pci_devices_supported[] =\r
+{\r
+ {PCI_VENDOR_ID_ICPLUS,\r
+ PCI_DEVICE_ID_IP1000,\r
+ PCI_ANY_ID,\r
+ PCI_ANY_ID,\r
+ 0x020000,\r
+ 0xFFFFFF,\r
+ 0},\r
+\r
+ {PCI_VENDOR_ID_SUNDANCE,\r
+ PCI_DEVICE_ID_SUNDANCE_ST2021,\r
+ PCI_ANY_ID,\r
+ PCI_ANY_ID,\r
+ 0x020000,\r
+ 0xFFFFFF,\r
+ 1},\r
+\r
+ {PCI_VENDOR_ID_SUNDANCE,\r
+ PCI_DEVICE_ID_TAMARACK_TC9020_9021,\r
+ PCI_ANY_ID,\r
+ PCI_ANY_ID,\r
+ 0x020000,\r
+ 0xFFFFFF,\r
+ 2},\r
+\r
+ {PCI_VENDOR_ID_DLINK,\r
+ PCI_DEVICE_ID_DLINK_1002,\r
+ PCI_ANY_ID,\r
+ PCI_ANY_ID,\r
+ 0x020000,\r
+ 0xFFFFFF,\r
+ 3},\r
+\r
+ {0,}\r
+};\r
+#endif\r
+/* end ipg_structs.h */\r