1*1b8adde7SWilliam Kucharski /* 2*1b8adde7SWilliam Kucharski * This program is free software; you can redistribute it and/or 3*1b8adde7SWilliam Kucharski * modify it under the terms of the GNU General Public License as 4*1b8adde7SWilliam Kucharski * published by the Free Software Foundation; either version 2, or (at 5*1b8adde7SWilliam Kucharski * your option) any later version. 6*1b8adde7SWilliam Kucharski */ 7*1b8adde7SWilliam Kucharski 8*1b8adde7SWilliam Kucharski #ifndef NIC_H 9*1b8adde7SWilliam Kucharski #define NIC_H 10*1b8adde7SWilliam Kucharski 11*1b8adde7SWilliam Kucharski #include "dev.h" 12*1b8adde7SWilliam Kucharski 13*1b8adde7SWilliam Kucharski typedef enum { 14*1b8adde7SWilliam Kucharski DISABLE = 0, 15*1b8adde7SWilliam Kucharski ENABLE, 16*1b8adde7SWilliam Kucharski FORCE 17*1b8adde7SWilliam Kucharski } irq_action_t; 18*1b8adde7SWilliam Kucharski 19*1b8adde7SWilliam Kucharski /* 20*1b8adde7SWilliam Kucharski * Structure returned from eth_probe and passed to other driver 21*1b8adde7SWilliam Kucharski * functions. 22*1b8adde7SWilliam Kucharski */ 23*1b8adde7SWilliam Kucharski struct nic 24*1b8adde7SWilliam Kucharski { 25*1b8adde7SWilliam Kucharski struct dev dev; /* This must come first */ 26*1b8adde7SWilliam Kucharski int (*poll)P((struct nic *, int retrieve)); 27*1b8adde7SWilliam Kucharski void (*transmit)P((struct nic *, const char *d, 28*1b8adde7SWilliam Kucharski unsigned int t, unsigned int s, const char *p)); 29*1b8adde7SWilliam Kucharski void (*irq)P((struct nic *, irq_action_t)); 30*1b8adde7SWilliam Kucharski int flags; /* driver specific flags */ 31*1b8adde7SWilliam Kucharski struct rom_info *rom_info; /* -> rom_info from main */ 32*1b8adde7SWilliam Kucharski unsigned char *node_addr; 33*1b8adde7SWilliam Kucharski unsigned char *packet; 34*1b8adde7SWilliam Kucharski unsigned int packetlen; 35*1b8adde7SWilliam Kucharski unsigned int ioaddr; 36*1b8adde7SWilliam Kucharski unsigned char irqno; 37*1b8adde7SWilliam Kucharski void *priv_data; /* driver can hang private data here */ 38*1b8adde7SWilliam Kucharski }; 39*1b8adde7SWilliam Kucharski 40*1b8adde7SWilliam Kucharski extern int eth_probe(struct dev *dev); 41*1b8adde7SWilliam Kucharski extern int eth_poll(int retrieve); 42*1b8adde7SWilliam Kucharski extern void eth_transmit(const char *d, unsigned int t, unsigned int s, const void *p); 43*1b8adde7SWilliam Kucharski extern void eth_disable(void); 44*1b8adde7SWilliam Kucharski extern void eth_irq(irq_action_t action); 45*1b8adde7SWilliam Kucharski #endif /* NIC_H */ 46