xref: /minix3/minix/net/lwip/ndev.h (revision ef8d499e2d2af900e9b2ab297171d7b088652482)
1*ef8d499eSDavid van Moolenbroek #ifndef MINIX_NET_LWIP_NDEV_H
2*ef8d499eSDavid van Moolenbroek #define MINIX_NET_LWIP_NDEV_H
3*ef8d499eSDavid van Moolenbroek 
4*ef8d499eSDavid van Moolenbroek /* The maximum supported number of network device drivers. */
5*ef8d499eSDavid van Moolenbroek #define NR_NDEV		8
6*ef8d499eSDavid van Moolenbroek 
7*ef8d499eSDavid van Moolenbroek typedef uint32_t ndev_id_t;
8*ef8d499eSDavid van Moolenbroek 
9*ef8d499eSDavid van Moolenbroek struct ndev_hwaddr {
10*ef8d499eSDavid van Moolenbroek 	uint8_t nhwa_addr[NDEV_HWADDR_MAX];
11*ef8d499eSDavid van Moolenbroek };
12*ef8d499eSDavid van Moolenbroek 
13*ef8d499eSDavid van Moolenbroek struct ndev_conf {
14*ef8d499eSDavid van Moolenbroek 	uint32_t nconf_set;			/* fields to set (NDEV_SET_) */
15*ef8d499eSDavid van Moolenbroek 	uint32_t nconf_mode;			/* desired mode (NDEV_MODE_) */
16*ef8d499eSDavid van Moolenbroek 	struct ndev_hwaddr *nconf_mclist;	/* multicast list pointer */
17*ef8d499eSDavid van Moolenbroek 	size_t nconf_mccount;			/* multicast list count */
18*ef8d499eSDavid van Moolenbroek 	uint32_t nconf_caps;			/* capabilities (NDEV_CAP_) */
19*ef8d499eSDavid van Moolenbroek 	uint32_t nconf_flags;			/* flags to set (NDEV_FLAG_) */
20*ef8d499eSDavid van Moolenbroek 	uint32_t nconf_media;			/* media selection (IFM_) */
21*ef8d499eSDavid van Moolenbroek 	struct ndev_hwaddr nconf_hwaddr;	/* desired hardware address */
22*ef8d499eSDavid van Moolenbroek };
23*ef8d499eSDavid van Moolenbroek 
24*ef8d499eSDavid van Moolenbroek void ndev_init(void);
25*ef8d499eSDavid van Moolenbroek void ndev_check(void);
26*ef8d499eSDavid van Moolenbroek void ndev_process(const message * m_ptr, int ipc_status);
27*ef8d499eSDavid van Moolenbroek 
28*ef8d499eSDavid van Moolenbroek int ndev_conf(ndev_id_t id, const struct ndev_conf * nconf);
29*ef8d499eSDavid van Moolenbroek int ndev_send(ndev_id_t id, const struct pbuf * pbuf);
30*ef8d499eSDavid van Moolenbroek int ndev_can_recv(ndev_id_t id);
31*ef8d499eSDavid van Moolenbroek int ndev_recv(ndev_id_t id, struct pbuf * pbuf);
32*ef8d499eSDavid van Moolenbroek 
33*ef8d499eSDavid van Moolenbroek #endif /* !MINIX_NET_LWIP_NDEV_H */
34