60 DBGC ( skel,
"SKELETON %p does not yet support reset\n", skel );
79 DBGC ( skel,
"SKELETON %p does not yet support link state\n", skel );
99 DBGC ( skel,
"SKELETON %p does not yet support open\n", skel );
111 DBGC ( skel,
"SKELETON %p does not yet support close\n", skel );
125 DBGC ( skel,
"SKELETON %p does not yet support transmit\n", skel );
151 DBGC ( skel,
"SKELETON %p does not yet support interrupts\n", skel );
192 memset ( skel, 0,
sizeof ( *skel ) );
199 if ( ! skel->
regs ) {
210 goto err_register_netdev;
252 PCI_ROM ( 0x5ce1, 0x5ce1,
"skel",
"Skeleton", 0 ),
static void skeleton_poll(struct net_device *netdev)
Poll for completed and received packets.
unsigned long membase
Memory base.
struct arbelprm_rc_send_wqe rc
static void skeleton_remove(struct pci_device *pci)
Remove PCI device.
static struct pci_device_id skeleton_nics[]
Skeleton PCI device IDs.
int(* open)(struct net_device *netdev)
Open network device.
struct pci_device_id * ids
PCI ID table.
void adjust_pci_device(struct pci_device *pci)
Enable PCI device.
#define SKELETON_BAR_SIZE
Skeleton BAR size.
struct device dev
Generic device.
#define ENOTSUP
Operation not supported.
Dynamic memory allocation.
static void netdev_init(struct net_device *netdev, struct net_device_operations *op)
Initialise a network device.
static int skeleton_probe(struct pci_device *pci)
Probe PCI device.
static void pci_set_drvdata(struct pci_device *pci, void *priv)
Set PCI driver-private data.
#define ENOMEM
Not enough space.
static void netdev_put(struct net_device *netdev)
Drop reference to network device.
void * priv
Driver private data.
static void skeleton_check_link(struct net_device *netdev)
Check link state.
static struct net_device * netdev
static int skeleton_open(struct net_device *netdev)
Open network device.
void unregister_netdev(struct net_device *netdev)
Unregister network device.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
int register_netdev(struct net_device *netdev)
Register network device.
void netdev_link_err(struct net_device *netdev, int rc)
Mark network device as having a specific link state.
#define ENODEV
No such device.
static void netdev_nullify(struct net_device *netdev)
Stop using a network device.
static struct net_device_operations skeleton_operations
Skeleton network device operations.
static void skeleton_close(struct net_device *netdev)
Close network device.
static void skeleton_irq(struct net_device *netdev, int enable)
Enable or disable interrupts.
A PCI device ID list entry.
static struct xen_remove_from_physmap * remove
Network device operations.
struct device * dev
Underlying hardware device.
Network device management.
static void * pci_get_drvdata(struct pci_device *pci)
Get PCI driver-private data.
static int skeleton_reset(struct skeleton_nic *skel)
Reset hardware.
int(* probe)(struct pci_device *pci)
Probe device.
struct net_device * alloc_etherdev(size_t priv_size)
Allocate Ethernet device.
void iounmap(volatile const void *io_addr)
Unmap I/O address.
struct pci_driver skeleton_driver __pci_driver
Skeleton PCI driver.
void * pci_ioremap(struct pci_device *pci, unsigned long bus_addr, size_t len)
Map PCI bus address as an I/O address.
#define PCI_ROM(_vendor, _device, _name, _description, _data)
static int skeleton_transmit(struct net_device *netdev, struct io_buffer *iobuf)
Transmit packet.
void * memset(void *dest, int character, size_t len) __nonnull