📄 rtl8019a.h
字号:
typedef unsigned int Uint16;
typedef unsigned long Uint32;
#define Reg00 port2000
#define Reg01 port2001
#define Reg02 port2002
#define Reg03 port2003
#define Reg04 port2004
#define Reg05 port2005
#define Reg06 port2006
#define Reg07 port2007
#define Reg08 port2008
#define Reg09 port2009
#define Reg0a port200a
#define Reg0b port200b
#define Reg0c port200c
#define Reg0d port200d
#define Reg0e port200e
#define Reg0f port200f
#define Reg10 port2010
ioport Uint16 Reg00;
ioport Uint16 Reg01;
ioport Uint16 Reg02;
ioport Uint16 Reg03;
ioport Uint16 Reg04;
ioport Uint16 Reg05;
ioport Uint16 Reg06;
ioport Uint16 Reg07;
ioport Uint16 Reg08;
ioport Uint16 Reg09;
ioport Uint16 Reg0a;
ioport Uint16 Reg0b;
ioport Uint16 Reg0c;
ioport Uint16 Reg0d;
ioport Uint16 Reg0e;
ioport Uint16 Reg0f;
ioport Uint16 Reg10;
#define ARP 1
#define UDP 2
#define IGMP 3
#define LSS 4
#define BROADCAST 1
#define REC_ARP 2
#define NOD 3
#define Frame_ARP 0x0608
#define Frame_IP 0x0008
/*Configuration Register D*/
/*NOTE: */
/* Some registers in page 2 are complementary to the registers in */
/* page 0. */
/* Page0 RD WR */
/* 0X01 CLDA0 PSTART */
/* 0X02 CLDA1 PSTOP */
/* 0X04 TPSR */
/* 0X0C RCR */
/* 0X0D TCR */
/* 0X0E DCR */
/* 0X0F IMR */
struct ipaddr
{
unsigned short addr2_1;
unsigned short addr4_3;
};
struct mac
{
unsigned short addr2_1;
unsigned short addr4_3;
unsigned short addr6_5;
};
struct iphdr
{
unsigned short tos_version;
unsigned short tol_len;
unsigned short id;
unsigned short frag_off;
unsigned short protocal_ttl;
unsigned short chksum;
struct ipaddr saddr;
struct ipaddr daddr;
};
struct udphdr
{
unsigned short sport;
unsigned short dport;
unsigned short length;
unsigned short chksum;
};
struct igmphdr
{
unsigned short type_mrt;
unsigned short chksum;
struct ipaddr groupaddr;
};
struct pre_udphdr
{
struct ipaddr saddr;
struct ipaddr daddr;
unsigned short protocal_value;
unsigned short length;
};
struct arp
{
unsigned short hard_type;
unsigned short proto_type;
unsigned short proto_hard_length;
unsigned short op_code;
struct mac send_macaddr;
struct ipaddr send_ipaddr;
struct mac rec_macaddr;
struct ipaddr rec_ipaddr;
};
void init_protocal();
void load_udp(unsigned short *buf,unsigned short *length);
void load_ip(unsigned short *buf,unsigned short *length);
void send_frame(unsigned short *buf,unsigned short MAC_type,unsigned short PROTO_type,unsigned short length);
void send_arp(struct ipaddr *ip,unsigned short arp_type);
unsigned short checksum(unsigned short *buffer, short size);
unsigned short change_byte(unsigned short value);
void send_igmp(unsigned short type);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -