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