mirror of
https://github.com/xcat2/xNBA.git
synced 2024-12-15 07:41:45 +00:00
50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
|
/*
|
||
|
* 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 */
|