C++程序  |  95行  |  1.9 KB

/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_IF_ARCNET_H
#define _LINUX_IF_ARCNET_H

#include <linux/if_ether.h>

#define ARC_P_IP 212  
#define ARC_P_IPV6 196  
#define ARC_P_ARP 213  
#define ARC_P_RARP 214  
#define ARC_P_IPX 250  
#define ARC_P_NOVELL_EC 236  

#define ARC_P_IP_RFC1051 240  
#define ARC_P_ARP_RFC1051 241  

#define ARC_P_ETHER 232  

#define ARC_P_DATAPOINT_BOOT 0  
#define ARC_P_DATAPOINT_MOUNT 1
#define ARC_P_POWERLAN_BEACON 8  
#define ARC_P_POWERLAN_BEACON2 243  
#define ARC_P_LANSOFT 251  
#define ARC_P_ATALK 0xDD

#define ARCNET_ALEN 1

struct arc_rfc1201
{
 uint8_t proto;
 uint8_t split_flag;
 uint16_t sequence;
 uint8_t payload[0];
};
#define RFC1201_HDR_SIZE 4

struct arc_rfc1051
{
 uint8_t proto;
 uint8_t payload[0];
};
#define RFC1051_HDR_SIZE 1

struct arc_eth_encap
{
 uint8_t proto;
 struct ethhdr eth;
 uint8_t payload[0];
};
#define ETH_ENCAP_HDR_SIZE 14

struct arc_cap
{
 uint8_t proto;
 uint8_t cookie[sizeof(int)];
 union {
 uint8_t ack;
 uint8_t raw[0];
 } mes;
};

struct arc_hardware
{
 uint8_t source,
 dest,
 offset[2];
};
#define ARC_HDR_SIZE 4

struct archdr
{

 struct arc_hardware hard;

 union {
 struct arc_rfc1201 rfc1201;
 struct arc_rfc1051 rfc1051;
 struct arc_eth_encap eth_encap;
 struct arc_cap cap;
 uint8_t raw[0];
 } soft;
};

#endif