1148531efSWolfram Schneider /* 2148531efSWolfram Schneider * hwaddr.h 3148531efSWolfram Schneider * 4148531efSWolfram Schneider * $Id$ 5148531efSWolfram Schneider */ 6148531efSWolfram Schneider 744099b7bSPaul Traina #ifndef HWADDR_H 844099b7bSPaul Traina #define HWADDR_H 944099b7bSPaul Traina 1044099b7bSPaul Traina #define MAXHADDRLEN 8 /* Max hw address length in bytes */ 1144099b7bSPaul Traina 1244099b7bSPaul Traina /* 1344099b7bSPaul Traina * This structure holds information about a specific network type. The 1444099b7bSPaul Traina * length of the network hardware address is stored in "hlen". 1544099b7bSPaul Traina * The string pointed to by "name" is the cononical name of the network. 1644099b7bSPaul Traina */ 1744099b7bSPaul Traina struct hwinfo { 1844099b7bSPaul Traina unsigned int hlen; 1944099b7bSPaul Traina char *name; 2044099b7bSPaul Traina }; 2144099b7bSPaul Traina 2244099b7bSPaul Traina extern struct hwinfo hwinfolist[]; 2344099b7bSPaul Traina extern int hwinfocnt; 2444099b7bSPaul Traina 2544099b7bSPaul Traina #ifdef __STDC__ 2644099b7bSPaul Traina #define P(args) args 2744099b7bSPaul Traina #else 2844099b7bSPaul Traina #define P(args) () 2944099b7bSPaul Traina #endif 3044099b7bSPaul Traina 31e08ac58bSPaul Traina extern void setarp P((int, struct in_addr *, int, u_char *, int)); 3244099b7bSPaul Traina extern char *haddrtoa P((u_char *, int)); 3344099b7bSPaul Traina extern void haddr_conv802 P((u_char *, u_char *, int)); 3444099b7bSPaul Traina 3544099b7bSPaul Traina #undef P 3644099b7bSPaul Traina 3744099b7bSPaul Traina /* 3844099b7bSPaul Traina * Return the length in bytes of a hardware address of the given type. 3944099b7bSPaul Traina * Return the canonical name of the network of the given type. 4044099b7bSPaul Traina */ 4144099b7bSPaul Traina #define haddrlength(type) ((hwinfolist[(int) (type)]).hlen) 4244099b7bSPaul Traina #define netname(type) ((hwinfolist[(int) (type)]).name) 4344099b7bSPaul Traina 4444099b7bSPaul Traina #endif /* HWADDR_H */ 45