- initial import
git-svn-id: http://moon:8086/svn/mips@1 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
// -------------------------------------------------------------------------
|
||||
// ethernet.h
|
||||
//
|
||||
// 21.12.2003, J. Ahrensfeld
|
||||
//
|
||||
// -------------------------------------------------------------------------
|
||||
#ifndef ETHERNET_H
|
||||
#define ETHERNET_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include "libsys.h"
|
||||
|
||||
#define ETH_PACKET_MIN_SIZE 64
|
||||
#define ETH_PACKET_MAX_SIZE 1500
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
#define ARP_REQUEST 0x0001
|
||||
#define ARP_REPLY 0x0002
|
||||
|
||||
#define TYPE_HW_ETH10 0x0001
|
||||
#define TYPE_HW_ETH3 0x0002
|
||||
#define TYPE_HW_AX25 0x0003
|
||||
#define TYPE_HW_TKRNG 0x0004
|
||||
#define TYPE_HW_CHAOS 0x0005
|
||||
#define TYPE_HW_IEEE 0x0006
|
||||
#define TYPE_HW_ARCNET 0x0007
|
||||
|
||||
#define TYPE_PROTO_IP 0x0800
|
||||
#define TYPE_PROTO_X75 0x0801
|
||||
#define TYPE_PROTO_NBS 0x0802
|
||||
#define TYPE_PROTO_ECMA 0x0803
|
||||
#define TYPE_PROTO_CHAOS 0x0804
|
||||
#define TYPE_PROTO_X25 0x0805
|
||||
#define TYPE_PROTO_ARP 0x0806
|
||||
#define TYPE_PROTO_XNS 0x0807
|
||||
#define TYPE_PROTO_LOOP 0x9000
|
||||
|
||||
#define HTONS(n) ((((uint16_t)((n) & 0xff)) << 8) | (((n) & 0xff00) >> 8))
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
typedef struct _seth_hdr_t
|
||||
{
|
||||
uint8_t eth_addr_dst[6], eth_addr_src[6];
|
||||
uint16_t proto;
|
||||
|
||||
} __attribute__ ((__packed__)) eth_hdr_t;
|
||||
|
||||
typedef struct _spacket_t
|
||||
{
|
||||
uint8_t pkt_buf[1516];
|
||||
uint16_t size;
|
||||
uint8_t *pData;
|
||||
|
||||
} packet_t;
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
void EthInit(void);
|
||||
uint8_t *Eth_pkt_create(packet_t *pPacket, uint16_t proto, uint8_t *pHwAddr_src, uint8_t *pHwAddr_dst);
|
||||
uint8_t *Eth_pkt_append(packet_t *pPacket, uint32_t size);
|
||||
uint8_t *Eth_pkt_buffer_get(packet_t *pPacket);
|
||||
|
||||
uint32_t Eth_pkt_send(packet_t *pPacket);
|
||||
uint32_t Eth_pkt_recv(uint8_t *pData);
|
||||
|
||||
uint16_t htons(uint16_t a);
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
#endif // ETHERNET_H
|
||||
Reference in New Issue
Block a user