/* 
 * $RCSfile: arp.h,v $
 *
 * x-kernel v3.3
 *
 * Copyright (c) 1993,1991,1990,1996  Arizona Board of Regents
 *
 * $Log: arp.h,v $
 * Revision 1.2  1996/01/29 20:09:26  slm
 * Updated copyright and version.
 *
 * Revision 1.1  1995/07/28  21:32:09  slm
 * Initial revision
 *
 * Revision 1.12.1.1.1.1  1994/10/27  20:49:36  hkaram
 * New branch
 *
 * Revision 1.12.1.1  1994/03/14  19:07:20  umass
 * Uses MAC48bithost instead of ETHhost for hardware addresses
 */

#ifndef arp_h
#define arp_h

#ifndef upi_h
#include "upi.h"
#endif
#ifndef mac_h
#include "mac.h"
#endif
#ifndef eth_h
#include "eth.h"
#endif
#ifndef ip_h
#include "ip.h"
#endif

#ifdef __STDC__

void		arp_init(Protl);

#endif

#define ARP_INSTALL 		( ARP_CTL * MAXOPS + 0 )
#define ARP_GETMYBINDING	( ARP_CTL * MAXOPS + 1 )

typedef struct {
    MAC48bithost   hw;
    IPhost	   ip;
} ArpBinding;


/* 
 * kludge to let the sunos simulator's ethernet driver simulate broadcast
 */

#ifdef __STDC__
typedef int	(ArpForEachFunc)( ArpBinding *, VOID * );
#else
typedef int	(ArpForEachFunc)();
#endif /* __STDC__ */

typedef struct {
    VOID		*v;
    ArpForEachFunc	*f;
} ArpForEach;

#define ARP_FOR_EACH		( ARP_CTL * MAXOPS + 2 )


#endif
