📄 webserver.i
字号:
# 715 "uip.h"
u16 htons(u16 val);
extern volatile u8 *uip_appdata;
extern volatile unsigned int uip_appdata_length;
extern volatile u8 *uip_sappdata;
extern volatile u8 *uip_urgdata;
extern volatile u16 uip_len, uip_slen;
extern volatile u8 uip_urglen, uip_surglen;
struct uip_conn {
u16 ripaddr[2];
u16 lport;
u16 rport;
u8 rcv_nxt[4];
u8 snd_nxt[4];
u16 len;
u16 mss;
u16 initialmss;
u8 sa;
u8 sv;
u8 rto;
u8 tcpstateflags;
u8 timer;
u8 nrtx;
u8 appstate[(sizeof(struct httpd_state))];
};
extern struct uip_conn *uip_conn;
extern struct uip_conn uip_conns[10];
extern volatile u8 uip_acc32[4];
# 842 "uip.h"
struct uip_stats {
struct {
uip_stats_t drop;
uip_stats_t recv;
uip_stats_t sent;
uip_stats_t vhlerr;
uip_stats_t hblenerr;
uip_stats_t lblenerr;
uip_stats_t fragerr;
uip_stats_t chkerr;
uip_stats_t protoerr;
} ip;
struct {
uip_stats_t drop;
uip_stats_t recv;
uip_stats_t sent;
uip_stats_t typeerr;
} icmp;
struct {
uip_stats_t drop;
uip_stats_t recv;
uip_stats_t sent;
uip_stats_t chkerr;
uip_stats_t ackerr;
uip_stats_t rst;
uip_stats_t rexmit;
uip_stats_t syndrop;
uip_stats_t synrst;
} tcp;
};
extern struct uip_stats uip_stat;
extern volatile u8 uip_flags;
# 945 "uip.h"
void uip_process(u8 flag);
# 971 "uip.h"
# 983 "uip.h"
typedef struct {
u8 vhl,
tos,
len[2],
ipid[2],
ipoffset[2],
ttl,
proto;
u16 ipchksum;
u16 srcipaddr[2],
destipaddr[2];
u16 srcport,
destport;
u8 seqno[4],
ackno[4],
tcpoffset,
flags,
wnd[2];
u16 tcpchksum;
u8 urgp[2];
u8 optdata[4];
} uip_tcpip_hdr;
typedef struct {
u8 vhl,
tos,
len[2],
ipid[2],
ipoffset[2],
ttl,
proto;
u16 ipchksum;
u16 srcipaddr[2],
destipaddr[2];
u8 type, icode;
u16 icmpchksum;
u16 id, seqno;
} uip_icmpip_hdr;
typedef struct {
u8 vhl,
tos,
len[2],
ipid[2],
ipoffset[2],
ttl,
proto;
u16 ipchksum;
u16 srcipaddr[2],
destipaddr[2];
u16 srcport,
destport;
u16 udplen;
u16 udpchksum;
} uip_udpip_hdr;
extern const u16 uip_hostaddr[2];
# 56 "uip_arp.h"
struct uip_eth_addr {
u8 addr[6];
};
extern struct uip_eth_addr uip_ethaddr;
struct uip_eth_hdr {
struct uip_eth_addr dest;
struct uip_eth_addr src;
u16_t type;
};
void uip_arp_init(void);
void uip_arp_ipin(void);
void uip_arp_arpin(void);
void uip_arp_out(void);
void uip_arp_timer(void);
# 193 "uip_arp.h"
extern const u16_t uip_arp_draddr[2], uip_arp_netmask[2];
# 9 "webserver.c"
# 1 "MAC_Definition.h"
# 1 "D:\\Program Files\\Analog Devices\\VisualDSP 4.5\\Blackfin\\include\\ccblkfn.h"
#pragma once
#pragma system_header /* ccblkfn.h */
short __builtin_ones(int _x);
short __builtin_lvitmax1x16res1(int _x, int _y);
short __builtin_rvitmax1x16res1(int _x, int _y);
int __builtin_lvitmax2x16res1(int _x, int _y, int _z);
int __builtin_rvitmax2x16res1(int _x, int _y, int _z);
int __builtin_vitmaxres1x16(short _x);
int __builtin_vitmaxres2x16(int _x);
short __builtin_expadj1x32(int _x, short _y);
short __builtin_expadj2x16(int _x, short _y);
short __builtin_expadj1x16(short _x, short _y);
int __builtin_divs(int _x, int _y);
int __builtin_divq(int _x, int _y);
long long __builtin_mult64_32x32(int _x, int _y);
unsigned long long __builtin_multu64_32x32(unsigned int _x, unsigned int _y);
void __builtin_idle();
void __builtin_halt();
void __builtin_abort();
void __builtin_ssync();
void __builtin_ssync_int();
void __builtin_csync(void );
void __builtin_csync_int(void );
unsigned __builtin_cli();
void __builtin_sti(unsigned);
void __builtin_raise(int);
void __builtin_excpt(int);
unsigned int __builtin_sysreg_read(int);
void __builtin_sysreg_write(int,unsigned int);
unsigned long long __builtin_sysreg_read64(int);
void __builtin_sysreg_write64(int,unsigned long long);
void *__builtin_alloca(int);
long __builtin_circindex(long, long, unsigned long);
void *__builtin_circptr(const void *, long, const void *, unsigned long);
long long __builtin_bitmux_shr_res1(long long, int, int);
int __builtin_bitmux_shr_res2(long long);
int __builtin_bitmux_shr_res3(long long);
long long __builtin_bitmux_shl_res1(long long, int, int);
int __builtin_bitmux_shl_res2(long long);
int __builtin_bitmux_shl_res3(long long);
int __builtin_byteswap4(int);
short __builtin_byteswap2(short);
short __builtin_misaligned_load16(void *);
short __builtin_misaligned_load16_vol(volatile void *);
void __builtin_misaligned_store16(void *, short);
void __builtin_misaligned_store16_vol(volatile void *, short);
int __builtin_misaligned_load32(void *);
int __builtin_misaligned_load32_vol(volatile void *);
void __builtin_misaligned_store32(void *, int);
void __builtin_misaligned_store32_vol(volatile void *, int);
long long __builtin_misaligned_load64(void *);
long long __builtin_misaligned_load64_vol(volatile void *);
void __builtin_misaligned_store64(void *, long long);
void __builtin_misaligned_store64_vol(volatile void *, long long);
unsigned short __builtin_mmr_read16(volatile void *);
unsigned int __builtin_mmr_read32(volatile void *);
void __builtin_mmr_write16(volatile void *, unsigned short);
void __builtin_mmr_write32(volatile void *, unsigned int);
# 115 "D:\\Program Files\\Analog Devices\\VisualDSP 4.5\\Blackfin\\include\\ccblkfn.h"
# 135 "D:\\Program Files\\Analog Devices\\VisualDSP 4.5\\Blackfin\\include\\ccblkfn.h"
# 193 "D:\\Program Files\\Analog Devices\\VisualDSP 4.5\\Blackfin\\include\\ccblkfn.h"
void *_l1_memcpy(void *datap, const void *instrp, size_t n);
void *_memcpy_l1(void *instrp, const void *datap, size_t n);
# 233 "D:\\Program Files\\Analog Devices\\VisualDSP 4.5\\Blackfin\\include\\ccblkfn.h"
extern int __builtin_testset(char *);
extern void __builtin_untestset(char *);
#pragma always_inline
static __inline void adi_acquire_lock(volatile unsigned short *t)
{
int tVal;
__builtin_csync();
tVal = __builtin_testset((char *)t);
while ( tVal == 0 )
{
__builtin_csync();
tVal = __builtin_testset((char *)t);
}
}
#pragma always_inline
static __inline int adi_try_lock(volatile unsigned short *t)
{
__builtin_csync();
return __builtin_testset((char *)t);
}
#pragma always_inline
static __inline void adi_release_lock(volatile unsigned short *t)
{
__builtin_untestset((char *)t);
__builtin_ssync();
}
#pragma always_inline
static __inline void claim_atomic_access(volatile unsigned short *t)
{
adi_acquire_lock(t);
}
#pragma always_inline
static __inline void release_atomic_access(volatile unsigned short *t)
{
adi_release_lock(t);
}
# 297 "D:\\Program Files\\Analog Devices\\VisualDSP 4.5\\Blackfin\\include\\ccblkfn.h"
# 10 "MAC_Definition.h"
# 1 "D:\\Program Files\\Analog Devices\\VisualDSP 4.5\\Blackfin\\include\\sysreg.h"
#pragma once
#pragma system_header /* sysreg.h */
enum Regno {
reg_NONE=(-1),
reg_R0, reg_R1, reg_R2, reg_R3, reg_R4, reg_R5, reg_R6, reg_R7,
reg_xR0, reg_xR1, reg_xR2, reg_xR3, reg_xR4, reg_xR5, reg_xR6, reg_xR7,
reg_xR8, reg_xR9, reg_xR10, reg_xR11, reg_xR12, reg_xR13, reg_xR14, reg_xR15,
reg_HR0,reg_HR1,reg_HR2,reg_HR3,reg_HR4,reg_HR5,reg_HR6,reg_HR7,
reg_xHR0,reg_xHR1,reg_xHR2,reg_xHR3,reg_xHR4,reg_xHR5,reg_xHR6,reg_xHR7,
reg_xHR8,reg_xHR9,reg_xHR10,reg_xHR11,reg_xHR12,reg_xHR13,reg_xHR14,reg_xHR15,
reg_P0, reg_P1, reg_P2, reg_P3, reg_P4, reg_P5,
reg_xP0, reg_xP1, reg_xP2, reg_xP3, reg_xP4, reg_xP5,
reg_xP6, reg_xP7, reg_xP8, reg_xP9, reg_xP10, reg_xP11, reg_SP, reg_FP,
reg_I0, reg_I1, reg_I2, reg_I3,
reg_B0, reg_B1, reg_B2, reg_B3,
reg_L0, reg_L1, reg_L2, reg_L3,
reg_Q0, reg_Q1, reg_Q2, reg_Q3,
reg_M0, reg_M1, reg_M2, reg_M3,
reg_ASTAT,
reg_SEQSTAT,reg_RETS,reg_CC,
reg_A0,reg_A1,reg_LC0,reg_LC1,
reg_RETI,reg_RETX,reg_RETN,
reg_LT0, reg_LT1, reg_LB0, reg_LB1,
reg_SYSCFG, reg_CYCLES, reg_CYCLES2,
num_Regs,
STACKPOINTER=reg_SP,
FRAMEPOINTER=reg_FP,
PARAMREG0=reg_R0,
PARAMREG1=reg_R1,
PARAMREG2=reg_R2,
RESULTREG=reg_R0,
FRESULTREG=reg_R0
};
# 11 "MAC_Definition.h"
_Bool speed100 = 1;
_Bool full_dpx = 1;
_Bool ip_chksum = 0;
_Bool rxdwa = 1;
_Bool rmii = 0;
_Bool RunFlag = 1;
_Bool negotiation = 1;
# 73 "MAC_Definition.h"
u8 data[1576];
u8 BroadcastAddr[6] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
u8 MyAddr[6] = {0x00,'B','u','B','_','A'};
u8 SrcAddr[6] = {0x00,'B','u','B','_','A'};
u8 DstAddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
u8 rx_src_addr[] = "ABCDEF";
u8 rx_dst_addr[] = "ABCDEF";
u32 rx_MAC_protocol;
u32 TxStsHistory[1];
u32 RxStsHistory[1];
u16 PHYregs[0x20];
void MemFailure(void)
{
printf("Failed to allocate some memory\n");
a:
goto a;
}
# 144 "MAC_Definition.h"
typedef struct ADI_DMA_CONFIG_REG {
u16 b_DMA_EN:1;
u16 b_WNR:1;
u16 b_WDSIZE:2;
u16 b_DMA2D:1;
u16 b_RESTART:1;
u16 b_DI_SEL:1;
u16 b_DI_EN:1;
u16 b_NDSIZE:4;
u16 b_FLOW:3;
} ADI_DMA_CONFIG_REG;
typedef struct dma_registers {
struct dma_registers* NEXT_DESC_PTR;
unsigned long int START_ADDR;
ADI_DMA_CONFIG_REG CONFIG;
} DMA_REGISTERS;
typedef struct adi_emac_staadd_reg {
u32 b_STABUSY:1;
u32 b_STAOP:1;
u32 b_STADISPRE:1;
u32 b_STAIE:1;
u32 :2;
u32 b_REGAD:5;
u32 b_PHYAD:5;
u32 :16;
} ADI_EMAC_STAADD_REG;
typedef struct adi_ether_frame_buffer {
u16 NoBytes;
u8 Dest[6];
u8 Srce[6];
u16 LTfield;
u8 Data[0];
} ADI_ETHER_FRAME_BUFFER;
typedef struct adi_ether_buffer {
DMA_REGISTERS Dma[2];
ADI_ETHER_FRAME_BUFFER *Data;
u32 ElementCount;
u32 ElementWidth;
void* CallbackParameter;
u32 ProcessedFlag;
u32 ProcessedElementCount;
struct adi_ether_buffer *pNext;
void *PayLoad;
u32 PayloadCount;
u32 PayloadWidth;
u16 IPHdrChksum;
u16 IPPayloadChksum;
u32 StatusWord;
} ADI_ETHER_BUFFER;
ADI_ETHER_BUFFER *SetupTxBuffer(int datasize,unsigned int root)
{
ADI_ETHER_FRAME_BUFFER *frmbuf;
ADI_ETHER_BUFFER *buf;
unsigned int i;
int nobytes_buffer = sizeof(ADI_ETHER_BUFFER[2])/2;
buf = (ADI_ETHER_BUFFER *)malloc(nobytes_buffer+sizeof(ADI_ETHER_FRAME_BUFFER)+datasize);
if (buf==0) MemFailure();
frmbuf = (ADI_ETHER_FRAME_BUFFER *)(((char *)buf) + nobytes_buffer);
memset(buf,0,nobytes_buffer);
buf->Data = frmbuf;
buf->Dma[0].NEXT_DESC_PTR = &(buf->Dma[1]);
buf->Dma[0].START_ADDR = (u32)buf->Data;
buf->Dma[0].CONFIG.b_DMA_EN = 1;
buf->Dma[0].CONFIG.b_WDSIZE = 2;
buf->Dma[0].CONFIG.b_NDSIZE = 5;
buf->Dma[0].CONFIG.b_FLOW = 7;
buf->Dma[1].NEXT_DESC_PTR = (DMA_REGISTERS*)0;
buf->Dma[1].START_ADDR = (u32)&buf->StatusWord;
buf->Dma[1].CONFIG.b_DMA_EN = 1;
buf->Dma[1].CONFIG.b_WNR = 1;
buf->Dma[1].CONFIG.b_WDSIZE = 2;
buf->Dma[1].CONFIG.b_NDSIZE = 0;
buf->Dma[1].CONFIG.b_FLOW = 0;
frmbuf->NoBytes = 14+datasize;
frmbuf->LTfield = datasize;
for(i=0; i<datasize; i++) frmbuf->Data[i] = 0x0;
return buf;
}
ADI_ETHER_BUFFER *SetupRxBuffer(_Bool chksum)
{
ADI_ETHER_FRAME_BUFFER *frmbuf;
ADI_ETHER_BUFFER *buf;
int i;
int nobytes_buffer = sizeof(ADI_ETHER_BUFFER[2])/2;
buf = (ADI_ETHER_BUFFER *)malloc(nobytes_buffer+sizeof(ADI_ETHER_FRAME_BUFFER)+1576);
if (buf==0) MemFailure();
frmbuf = (ADI_ETHER_FRAME_BUFFER *)(((char *)buf) + nobytes_buffer);
memset(buf,0,nobytes_buffer);
buf->Data = frmbuf;
memset(frmbuf, 0xfe, 1576);
buf->Dma[0].NEXT_DESC_PTR = &(buf->Dma[1]);
buf->Dma[0].START_ADDR = (u32)buf->Data;
buf->Dma[0].CONFIG.b_DMA_EN = 1;
buf->Dma[0].CONFIG.b_WNR = 1;
buf->Dma[0].CONFIG.b_WDSIZE = 2;
buf->Dma[0].CONFIG.b_NDSIZE = 5;
buf->Dma[0].CONFIG.b_FLOW = 7;
buf->Dma[1].NEXT_DESC_PTR = (DMA_REGISTERS*)0;
if (chksum) {
buf->Dma[1].START_ADDR = (u32)&buf->IPHdrChksum;
} else {
buf->Dma[1].START_ADDR = (u32)&buf->StatusWord;
}
buf->Dma[1].CONFIG.b_DMA_EN = 1;
buf->Dma[1].CONFIG.b_WNR = 1;
buf->Dma[1].CONFIG.b_WDSIZE = 2;
buf->Dma[1].CONFIG.b_FLOW = 0;
return buf;
}
ADI_ETHER_BUFFER *txbuf,
*txfst,
*txlst=0,
*rxbuf,
*rxfst,
*rxlst=0;
# 15 "webserver.c"
# 1 "protocol_numbers.h"
typedef struct ip_protocol{
const char *protocol;
}IP_PROTOCOL_NUMBER;
IP_PROTOCOL_NUMBER ip_protocol_number [] ={
"HOPOPT IPv6 Hop-by-Hop Option [RFC1883]",
"ICMP Internet Control Message [RFC792]",
"IGMP //Internet Group Management [RFC1112]",
"GGP //Gateway-to-Gateway [RFC823]",
"IP //IP in IP (encapsulation) [RFC2003]",
"ST //Stream [RFC1190,RFC1819]",
"TCP //Transmission Control [RFC793]",
"CBT //CBT [Ballardie]",
"EGP //Exterior Gateway Protocol [RFC888,DLM1]",
"IGP //any private interior gateway (used by Cisco for their IGRP) [IANA]",
"BBN-RCC-MON //BBN RCC Monitoring [SGC]",
"NVP-II //Network Voice Protocol [RFC741,SC3]",
"PUP //PUP [PUP,XEROX]",
"ARGUS //ARGUS [RWS4]",
"EMCON //EMCON [BN7]",
"XNET //Cross Net Debugger [IEN158,JFH2]",
"CHAOS //Chaos
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -