/* Generic ARCnet constants and templates */

#ifndef	_ARCNET_H
#define	_ARCNET_H

#ifndef	_GLOBAL_H
#include "global.h"
#endif

#ifndef	_MBUF_H
#include "mbuf.h"
#endif

#ifndef	_IFACE_H
#include "iface.h"
#endif

#define	AADDR_LEN	1
/* Format of an ARCnet header */
struct arc {
	char source[AADDR_LEN];
	char dest[AADDR_LEN];
	char type;
};
#define	ARCLEN	3

/* ARCnet broadcast address */
extern char ARC_bdcst[];

/* ARCnet type fields */
#define	ARC_IP		0xf0	/* Type field for IP */
#define	ARC_ARP		0xf1	/* Type field for ARP */

/* In file arcnet.c: */
struct mbuf *htonarc __ARGS((struct arc *arc,struct mbuf *data));
int ntoharc __ARGS((struct arc *arc,struct mbuf **bpp));
char *parc __ARGS((char *out,char *addr));
int garc __ARGS((char *out,char *cp));
int anet_send __ARGS((struct mbuf *bp,struct iface *iface,int32 gateway,int prec,
	int del,int tput,int rel));
int anet_output __ARGS((struct iface *iface,char dest[],char source[],int16 type,
	struct mbuf *data));
void aproc __ARGS((struct iface *iface,struct mbuf *bp));

#endif	/* _ARCNET_H */
