CS350 COS
COS
Loading...
Searching...
No Matches
nic.h
Go to the documentation of this file.
1
2#ifndef __SYS_NIC_H__
3#define __SYS_NIC_H__
4
5#include <sys/queue.h>
6#include <sys/mbuf.h>
7
8typedef void (*NICCB)(int, void *);
9
10typedef struct NIC NIC;
11typedef struct NIC {
12 void *handle; // Driver handle
13 uint64_t nicNo; // NIC number
15 int (*tx)(NIC *, MBuf *, NICCB, void *); // TX
16 int (*rx)(NIC *, MBuf *, NICCB, void *); // RX
17 int (*poll)();
18 LIST_ENTRY(NIC) entries;
19} NIC;
20
21void NIC_AddNIC(NIC *nic);
22void NIC_RemoveNIC(NIC *nic);
24int NIC_GetMAC(NIC *nic, void *mac);
25int NIC_TX(NIC *nic, MBuf *mbuf, NICCB cb, void *arg);
26int NIC_RX(NIC *nic, MBuf *mbuf, NICCB cb, void *arg);
28
29#endif /* __SYS_NIC_H__ */
30
static int nicNo
Definition: ethdump.c:9
static MBuf mbuf
Definition: ethdump.c:11
Definition: mbuf.h:14
NIC * NIC_GetByID(uint64_t nicNo)
Definition: nic.c:33
int NIC_Poll()
void NIC_AddNIC(NIC *nic)
int NIC_TX(NIC *nic, MBuf *mbuf, NICCB cb, void *arg)
int NIC_GetMAC(NIC *nic, void *mac)
void(* NICCB)(int, void *)
Definition: nic.h:8
void NIC_RemoveNIC(NIC *nic)
Definition: nic.c:27
int NIC_RX(NIC *nic, MBuf *mbuf, NICCB cb, void *arg)
Definition: nic.h:11
void * handle
Definition: nic.h:12
LIST_ENTRY(NIC) entries
int(* tx)(NIC *, MBuf *, NICCB, void *)
Definition: nic.h:15
uint64_t nicNo
Definition: nic.h:13
int(* poll)()
Definition: nic.h:17
int(* rx)(NIC *, MBuf *, NICCB, void *)
Definition: nic.h:16
uint8_t mac[6]
Definition: nic.h:14
unsigned long uint64_t
Definition: types.h:13
unsigned char uint8_t
Definition: types.h:10