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