12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2, or (at
- * your option) any later version.
- */
-
- #ifndef NIC_H
- #define NIC_H
-
- #include "dev.h"
-
- typedef enum {
- DISABLE = 0,
- ENABLE,
- FORCE
- } irq_action_t;
-
- /*
- * Structure returned from eth_probe and passed to other driver
- * functions.
- */
- struct nic
- {
- struct dev dev; /* This must come first */
- int (*poll)P((struct nic *, int retrieve));
- void (*transmit)P((struct nic *, const char *d,
- unsigned int t, unsigned int s, const char *p));
- void (*irq)P((struct nic *, irq_action_t));
- int flags; /* driver specific flags */
- struct rom_info *rom_info; /* -> rom_info from main */
- unsigned char *node_addr;
- unsigned char *packet;
- unsigned int packetlen;
- unsigned int ioaddr;
- unsigned char irqno;
- void *priv_data; /* driver can hang private data here */
- };
-
-
- extern struct nic nic;
- extern int eth_probe(struct dev *dev);
- extern int eth_poll(int retrieve);
- extern void eth_transmit(const char *d, unsigned int t, unsigned int s, const void *p);
- extern void eth_disable(void);
- extern void eth_irq(irq_action_t action);
- extern int eth_load_configuration(struct dev *dev);
- extern int eth_load(struct dev *dev);;
- #endif /* NIC_H */
|