mirror of
https://github.com/ipxe/ipxe
synced 2026-02-09 07:10:39 +03:00
Initial revision
This commit is contained in:
49
src/include/nic.h
Normal file
49
src/include/nic.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* 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 */
|
||||
Reference in New Issue
Block a user