xref: /freebsd/libexec/bootpd/hwaddr.h (revision 44099b7b1ec9c9295687eba077be6ad2931d292d)
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