44 lines
921 B
C
44 lines
921 B
C
#ifndef __brloader_protocol_h
|
|
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
#define __brloader_protocol_h
|
|
|
|
typedef BYTE ETHERNET_ADDRESS [6];
|
|
|
|
typedef struct ETHERNET_FRAME {
|
|
ETHERNET_ADDRESS Destination;
|
|
ETHERNET_ADDRESS Source;
|
|
WORD FrameType; // in host-order
|
|
} ETHERNET_FRAME;
|
|
|
|
#define ETHERNET_FRAME_TYPE_IP 0x0800
|
|
|
|
typedef struct IP_HEADER {
|
|
BYTE x;
|
|
BYTE tos;
|
|
WORD length;
|
|
WORD identifier;
|
|
WORD fragment;
|
|
BYTE ttl;
|
|
BYTE protocol;
|
|
WORD cksum;
|
|
DWORD src;
|
|
DWORD dest;
|
|
} IP_HEADER;
|
|
typedef IP_HEADER * LPIPHEADER;
|
|
|
|
#define IP_MF 0x2000
|
|
#define IP_FRAGMENT_OFFSET_MASK 0x1FFF
|
|
|
|
#define IP_HEADER_MINIMUM_LEN 20
|
|
|
|
typedef struct UDP_HEADER {
|
|
WORD src_port;
|
|
WORD dest_port;
|
|
WORD length; // including this header
|
|
WORD checksum;
|
|
} UDP_HEADER;
|
|
|
|
#define UDP_HEADER_LEN 8
|
|
|
|
#pragma option pop /*P_O_Pop*/
|
|
#endif // __brloader__protocol_h
|