int frag_count);
int mac_drv_rx_init(struct s_smc *smc, int len, int fc, char *look_ahead,
int la_len);
-void smt_timer_poll(struct s_smc *smc);
-void ring_status_indication(struct s_smc *smc, u_long status);
-unsigned long smt_get_time(void);
-void smt_stat_counter(struct s_smc *smc, int stat);
-void cfm_state_change(struct s_smc *smc, int c_state);
-void ecm_state_change(struct s_smc *smc, int e_state);
-void pcm_state_change(struct s_smc *smc, int plc, int p_state);
-void rmt_state_change(struct s_smc *smc, int r_state);
-void drv_reset_indication(struct s_smc *smc);
void dump_data(unsigned char *Data, int length);
-
// External functions from the hardware module
-extern u_int mac_drv_check_space();
+extern u_int mac_drv_check_space(void);
extern void read_address(struct s_smc *smc, u_char * mac_addr);
extern void card_stop(struct s_smc *smc);
extern int mac_drv_init(struct s_smc *smc);
extern void hwm_rx_frag(struct s_smc *smc, char far * virt, u_long phys,
int len, int frame_status);
extern void mac_drv_rx_mode(struct s_smc *smc, int mode);
-extern void mac_drv_clear_tx_queue(struct s_smc *smc);
extern void mac_drv_clear_rx_queue(struct s_smc *smc);
-extern void mac_clear_multicast(struct s_smc *smc);
extern void enable_tx_irq(struct s_smc *smc, u_short queue);
extern void mac_drv_clear_txd(struct s_smc *smc);
dmi = dev->mc_list;
for (i = 0; i < dev->mc_count; i++) {
- mac_add_multicast(smc,
- dmi->dmi_addr, 1);
+ mac_add_multicast(smc,
+ (struct fddi_addr *)dmi->dmi_addr,
+ 1);
+
PRINTK(KERN_INFO "ENABLE MC ADDRESS:");
PRINTK(" %02x %02x %02x ",
dmi->dmi_addr[0],
*/
if (!(skb->len >= FDDI_K_LLC_ZLEN && skb->len <= FDDI_K_LLC_LEN)) {
- bp->MacStat.tx_errors++; /* bump error counter */
+ bp->MacStat.gen.tx_errors++; /* bump error counter */
// dequeue packets from xmt queue and send them
netif_start_queue(dev);
dev_kfree_skb(skb);
skb->len, PCI_DMA_TODEVICE);
txd->txd_os.dma_addr = 0;
- smc->os.MacStat.tx_packets++; // Count transmitted packets.
- smc->os.MacStat.tx_bytes+=skb->len; // Count bytes
+ smc->os.MacStat.gen.tx_packets++; // Count transmitted packets.
+ smc->os.MacStat.gen.tx_bytes+=skb->len; // Count bytes
// free the skb
dev_kfree_skb_irq(skb);
skb = rxd->rxd_os.skb;
if (!skb) {
PRINTK(KERN_INFO "No skb in rxd\n");
- smc->os.MacStat.rx_errors++;
+ smc->os.MacStat.gen.rx_errors++;
goto RequeueRxd;
}
virt = skb->data;
}
// Count statistics.
- smc->os.MacStat.rx_packets++; // Count indicated receive packets.
- smc->os.MacStat.rx_bytes+=len; // Count bytes
+ smc->os.MacStat.gen.rx_packets++; // Count indicated receive
+ // packets.
+ smc->os.MacStat.gen.rx_bytes+=len; // Count bytes.
// virt points to header again
if (virt[1] & 0x01) { // Check group (multicast) bit.
- smc->os.MacStat.multicast++;
+ smc->os.MacStat.gen.multicast++;
}
// deliver frame to system
RequeueRxd:
PRINTK(KERN_INFO "Rx: re-queue RXD.\n");
mac_drv_requeue_rxd(smc, rxd, frag_count);
- smc->os.MacStat.rx_errors++; // Count receive packets not indicated.
+ smc->os.MacStat.gen.rx_errors++; // Count receive packets
+ // not indicated.
} // mac_drv_rx_complete
break;
case 1:
PRINTK(KERN_INFO "Receive fifo overflow.\n");
- smc->os.MacStat.rx_errors++;
+ smc->os.MacStat.gen.rx_errors++;
break;
default:
PRINTK(KERN_INFO "Unknown status (%d).\n", stat);