Files
vxWorks/h/wrn/arp_if.h
2025-08-20 18:25:46 +08:00

35 lines
1.9 KiB
C

/************************************************************************/
/* Copyright (C) 1999 RouterWare, Inc. */
/* Unpublished - rights reserved under the Copyright Laws of the */
/* United States. Use, duplication, or disclosure by the */
/* Government is subject to restrictions as set forth in */
/* subparagraph (c)(1)(ii) of the Rights in Technical Data and */
/* Computer Software clause at 252.227-7013. */
/* RouterWare, Inc., 3961 MacArthur Blvd. Suite 212, Newport Beach, CA */
/************************************************************************/
#if !defined (__ARP_IF_H__)
#define __ARP_IF_H__
/* ************************************************************************************************************************ */
/* ARP Interface */
/* ************************************************************************************************************************ */
typedef void (*FP_ARP_USER_ON_SEND_ARP_PACKET) (ARP_USER_HANDLE, RW_DEVICE_MESSAGE* p_rw_device_message);
typedef void (*FP_ARP_USER_ON_ADDRESS_RESOLUTION) (ARP_USER_HANDLE, ARP_RESULT arp_result, IP_ADDRESS,
BYTE* p_mac_address, UINT length);
typedef struct ARP_IF
{
bool (*fp_arp_if_register) (struct ARP_IF*, ARP_USER_HANDLE, FP_ARP_USER_ON_ADDRESS_RESOLUTION,
FP_ARP_USER_ON_SEND_ARP_PACKET);
enum ARP_RESULT (*fp_arp_if_get_mac_address) (struct ARP_IF*, IP_ADDRESS, BYTE* p_buffer, UINT buffer_size);
bool (*fp_arp_if_receive) (struct ARP_IF*, RW_DEVICE_MESSAGE*);
bool (*fp_arp_if_add_entry) (struct ARP_IF* p_arp_if, IP_ADDRESS sender_ip_address,
BYTE* p_sender_mac_address, UINT mac_address_length);
bool (*fp_arp_if_remove_entry) (struct ARP_IF* p_arp_if, IP_ADDRESS sender_ip_address);
} ARP_IF;
/* ************************************************************************************************************************ */
#endif /* __ARP_IF_H__ */