⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memp.i

📁 凌阳单片机之以太网通讯模组模组
💻 I
📖 第 1 页 / 共 3 页
字号:












# 41 "..\\..\\..\\..\\TcpIPStack\\user\\include\\ip.h" 2


struct netif;

void ip_init(void);
u8_t ip_lookup(void *header, struct netif *inp);
struct netif *ip_route(struct ip_addr *dest);
err_t ip_input(struct pbuf *p, struct netif *inp);
err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
		u8_t ttl, u8_t proto);
err_t ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest,
		   u8_t ttl, u8_t proto,
		   struct netif *netif);








 










 
struct ip_hdr {
   
   u16_t _v_hl_tos  __attribute__((packed)) ;
   
   u16_t _len  __attribute__((packed)) ;
   
   u16_t _id  __attribute__((packed)) ;
   
   u16_t _offset  __attribute__((packed)) ;




   
   u16_t _ttl_proto  __attribute__((packed)) ;
   
   u16_t _chksum  __attribute__((packed)) ;
   
   struct ip_addr src  __attribute__((packed)) ;
   struct ip_addr dest  __attribute__((packed)) ; 
} __attribute__((packed)) ;
 





























# 40 "..\\..\\..\\..\\TcpIPStack\\user\\include\\tcp.h" 2

# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\icmp.h" 1
 



































# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h" 1
 






























# 559 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h"




# 37 "..\\..\\..\\..\\TcpIPStack\\user\\include\\icmp.h" 2



# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\netif.h" 1
 

































# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h" 1
 






























# 559 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h"




# 35 "..\\..\\..\\..\\TcpIPStack\\user\\include\\netif.h" 2






# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\inet.h" 1
 



































# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h" 1
 






























# 559 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h"




# 37 "..\\..\\..\\..\\TcpIPStack\\user\\include\\inet.h" 2




u16_t inet_chksum(void *dataptr, u16_t len);
u16_t inet_chksum_pbuf(struct pbuf *p);
u16_t inet_chksum_pseudo(struct pbuf *p,
			 struct ip_addr *src, struct ip_addr *dest,
			 u8_t proto, u16_t proto_len);

u32_t inet_addr(const char *cp);
int inet_aton(const char *cp, struct in_addr *addr);
u8_t *inet_ntoa(u32_t addr);  




 
 
 



 
 
 







u16_t htons(u16_t x);
u16_t ntohs(u16_t x);
u32_t htonl(u32_t x);
u32_t ntohl(u32_t x);




# 41 "..\\..\\..\\..\\TcpIPStack\\user\\include\\netif.h" 2


# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\dhcp.h" 1
 





# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h" 1
 






























# 559 "..\\..\\..\\..\\TcpIPStack\\user\\include\\opt.h"




# 7 "..\\..\\..\\..\\TcpIPStack\\user\\include\\dhcp.h" 2

# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\netif.h" 1
 






























# 141 "..\\..\\..\\..\\TcpIPStack\\user\\include\\netif.h"

# 8 "..\\..\\..\\..\\TcpIPStack\\user\\include\\dhcp.h" 2

# 1 "..\\..\\..\\..\\TcpIPStack\\user\\include\\udp.h" 1
 











































struct udp_hdr {
   u16_t src  __attribute__((packed)) ;
   u16_t dest  __attribute__((packed)) ;   
   u16_t len  __attribute__((packed)) ;
   u16_t chksum  __attribute__((packed)) ;
} __attribute__((packed)) ;





struct udp_pcb {
  struct udp_pcb *next;

  struct ip_addr local_ip, remote_ip;
  u16_t local_port, remote_port;
  
  u8_t flags;
  u16_t chksum_len;
  
  void (* recv)(void *arg, struct udp_pcb *pcb, struct pbuf *p,
		struct ip_addr *addr, u16_t port);
  void *recv_arg;  
};

 

struct udp_pcb * udp_new        (void);
void             udp_remove     (struct udp_pcb *pcb);
err_t            udp_bind       (struct udp_pcb *pcb, struct ip_addr *ipaddr,
                 u16_t port);
err_t            udp_connect    (struct udp_pcb *pcb, struct ip_addr *ipaddr,
                 u16_t port);
void             udp_disconnect    (struct udp_pcb *pcb);
void             udp_recv       (struct udp_pcb *pcb,
				 void (* recv)(void *arg, struct udp_pcb *upcb,
					       struct pbuf *p,
					       struct ip_addr *addr,
					       u16_t port),
				 void *recv_arg);
err_t            udp_send       (struct udp_pcb *pcb, struct pbuf *p);





 
u8_t             udp_lookup     (struct ip_hdr *iphdr, struct netif *inp);
void             udp_input      (struct pbuf *p, struct netif *inp);
void             udp_init       (void);





# 9 "..\\..\\..\\..\\TcpIPStack\\user\\include\\dhcp.h" 2


 

 





struct dhcp
{
   
  u8_t state;
   
  u8_t tries;
    
  u32_t xid;
    
  struct udp_pcb *pcb;
   
  struct pbuf *p;
   
  struct dhcp_msg *msg_in;
   
  struct dhcp_msg *options_in; 
   
  u16_t options_in_len;

  struct pbuf *p_out;  
  struct dhcp_msg *msg_out;  
  u16_t options_out_len;  
  u16_t request_timeout;  
  u16_t t1_timeout;	 
  u16_t t2_timeout;	 
  struct ip_addr server_ip_addr;  
  struct ip_addr offered_ip_addr;
  struct ip_addr offered_sn_mask;
  struct ip_addr offered_gw_addr;
  struct ip_addr offered_bc_addr;
  u32_t offered_t0_lease;  
  u32_t offered_t1_renew;  
  u32_t offered_t2_rebind;  
 






};

 












 



 
 
struct dhcp_msg
{
 
 
    u16_t  op_htype; 
 
 
    u16_t  hlen_hops;
   u32_t xid  __attribute__((packed)) ;
   u16_t secs  __attribute__((packed)) ;
   u16_t flags  __attribute__((packed)) ;
   u32_t ciaddr  __attribute__((packed)) ;
   u32_t yiaddr  __attribute__((packed)) ;
   u32_t siaddr  __attribute__((packed)) ;
   u32_t giaddr  __attribute__((packed)) ;

  
    u16_t chaddr[16U/2 ];

 
    u16_t sname[64U/2 ];

 
    u16_t file[128U/2 ];
   u32_t cookie  __attribute__((packed)) ;

 

 


   u8_t options[68U/2  ]  __attribute__((packed)) ;
} __attribute__((packed)) ;
 




 
err_t dhcp_start(struct netif *netif);
 
void dhcp_stop(struct netif *netif);
 
err_t dhcp_renew(struct netif *netif);
 
void dhcp_inform(struct netif *netif);

 




 
void dhcp_coarse_tmr(void);
 
void dhcp_fine_tmr(void);
 
 

  
  
  
  
  
  
  
  
  
  
  
  
  
  








 










 


 



















 










 




















 






# 43 "..\\..\\..\\..\\TcpIPStack\\user\\include\\netif.h" 2


 



 

 



 

 

 

 



 
struct netif {
   
  struct netif *next;
   

  
   
  struct ip_addr ip_addr;
  struct ip_addr netmask;
  struct ip_addr gw;

   

  err_t (* input)(struct pbuf *p, struct netif *inp);
   


  err_t (* output)(struct netif *netif, struct pbuf *p,
		   struct ip_addr *ipaddr);
   


  err_t (* linkoutput)(struct netif *netif, struct pbuf *p);
   

  void *state;

   
  struct dhcp *dhcp;

   
  unsigned char hwaddr_len;
   
  unsigned char hwaddr[3U ];
   
  u16_t mtu;
   
  char name[2];
   
  u8_t num;
   
  u8_t flags;
};

 
extern struct netif *netif_list;
 
extern struct netif *netif_default;

 
void netif_init(void);

struct netif *netif_add(struct ip_addr *ipaddr, struct ip_addr *netmask,
			struct ip_addr *gw,
			void *state,
			err_t (* init)(struct netif *netif),
			err_t (* input)(struct pbuf *p, struct netif *netif));

void
netif_set_addr(struct netif *netif,struct ip_addr *ipaddr, struct ip_addr *netmask,
	  struct ip_addr *gw);
void netif_remove(struct netif * netif);

 



struct netif *netif_find(char *name);

void netif_set_default(struct netif *netif);

void netif_set_ipaddr(struct netif *netif, struct ip_addr *ipaddr);
void netif_set_netmask(struct netif *netif, struct ip_addr *netmast);
void netif_set_gw(struct netif *netif, struct ip_addr *gw);


# 40 "..\\..\\..\\..\\TcpIPStack\\user\\include\\icmp.h" 2














enum icmp_dur_type {
  ICMP_DUR_NET = 0,     
  ICMP_DUR_HOST = 1,    
  ICMP_DUR_PROTO = 2,   
  ICMP_DUR_PORT = 3,    
  ICMP_DUR_FRAG = 4,    
  ICMP_DUR_SR = 5       
};

enum icmp_te_type {
  ICMP_TE_TTL = 0,      
  ICMP_TE_FRAG = 1      
};

void icmp_input(struct pbuf *p, struct netif *inp);

void icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t);
void icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t);




 
struct icmp_echo_hdr {
   u16_t _type_code  __attribute__((packed)) ;
   u16_t chksum  __attribute__((packed)) ;
   u16_t id  __attribute__((packed)) ;
   u16_t seqno  __attribute__((packed)) ;
} __attribute__((packed)) ;
 

 
struct icmp_dur_hdr {
   u16_t _type_code  __attribute__((packed)) ;
   u16_t chksum  __attribute__((packed)) ;
   u32_t unused  __attribute__((packed)) ;
} __attribute__((packed)) ;
 

 
struct icmp_te_hdr {
   u16_t _type_code  __attribute__((packed)) ;
   u16_t chksum  __attribute__((packed)) ;
   u32_t unused  __attribute__((packed)) ;
} __attribute__((packed)) ;
 











	  
# 41 "..\\..\\..\\..\\TcpIPStack\\user\\include\\tcp.h" 2






struct tcp_pcb;

 

 
void             tcp_init    (void);   

void             tcp_tmr     (void);   


 
struct tcp_pcb * tcp_new     (void);
struct tcp_pcb * tcp_alloc   (u8_t prio);

void             tcp_arg     (struct tcp_pcb *pcb, void *arg);
void             tcp_accept  (struct tcp_pcb *pcb,
			      err_t (* accept)(void *arg, struct tcp_pcb *newpcb,
					       err_t err));
void             tcp_recv    (struct tcp_pcb *pcb,
			      err_t (* recv)(void *arg, struct tcp_pcb *tpcb,
				  struct pbuf *p, err_t err));
void             tcp_sent    (struct tcp_pcb *pcb,
			      err_t (* sent)(void *arg, struct tcp_pcb *tpcb,
					     u16_t len));
void             tcp_poll    (struct tcp_pcb *pcb,
			      err_t (* poll)(void *arg, struct tcp_pcb *tpcb),
			      u8_t interval);
void             tcp_err     (struct tcp_pcb *pcb,
			      void (* err)(void *arg, err_t err));




void             tcp_recved  (struct tcp_pcb *pcb, u16_t len);
err_t            tcp_bind    (struct tcp_pcb *pcb, struct ip_addr *ipaddr,
			      u16_t port);
err_t            tcp_connect (struct tcp_pcb *pcb, struct ip_addr *ipaddr,
			      u16_t port, err_t (* connected)(void *arg,
							      struct tcp_pcb *tpcb,
							      err_t err));
struct tcp_pcb * tcp_listen  (struct tcp_pcb *pcb);
void             tcp_abort   (struct tcp_pcb *pcb);
err_t            tcp_close   (struct tcp_pcb *pcb);
err_t            tcp_write   (struct tcp_pcb *pcb, const void *dataptr, u16_t len,
			      u8_t copy);

void             tcp_setprio (struct tcp_pcb *pcb, u8_t prio);





 

void             tcp_slowtmr (void);
void             tcp_fasttmr (void);


 
void             tcp_input   (struct pbuf *p, struct netif *inp);
 
err_t            tcp_output  (struct tcp_pcb *pcb);
void             tcp_rexmit  (struct tcp_pcb *pcb);

















 



























 
struct tcp_hdr {
   u16_t src  __attribute__((packed)) ;
   u16_t dest  __attribute__((packed)) ;
   u32_t seqno  __attribute__((packed)) ;
   u32_t ackno  __attribute__((packed)) ;
   u16_t _offset_flags  __attribute__((packed)) ;
   u16_t wnd  __attribute__((packed)) ;
   u16_t chksum  __attribute__((packed)) ;
   u16_t urgp  __attribute__((packed)) ;
} __attribute__((packed)) ;
 













enum tcp_state {
  CLOSED      = 0,
  LISTEN      = 1,
  SYN_SENT    = 2,
  SYN_RCVD    = 3,
  ESTABLISHED = 4,
  FIN_WAIT_1  = 5,
  FIN_WAIT_2  = 6,
  CLOSE_WAIT  = 7,
  CLOSING     = 8,
  LAST_ACK    = 9,
  TIME_WAIT   = 10
};


 
struct tcp_pcb {
  struct tcp_pcb *next;    
  u8_t prio;
  void *callback_arg;

  struct ip_addr local_ip;
  u16_t local_port;
  enum tcp_state state;    
  
  struct ip_addr remote_ip;
  u16_t remote_port;
  
   
  u32_t rcv_nxt;    
  u16_t rcv_wnd;    
  
   
  u32_t tmr;
  u8_t polltmr, pollinterval;
  
   
  u16_t rtime;
  
  u16_t mss;    

  u8_t flags;






  
   
  u16_t rttest;  
  u32_t rtseq;   
  s16_t sa, sv;

  u16_t rto;     
  u8_t nrtx;     

   
  u32_t lastack;  
  u8_t dupacks;
  
   
  u16_t cwnd;  
  u16_t ssthresh;

   
  u32_t snd_nxt,        
    snd_max,        
    snd_wnd,        
    snd_wl1, snd_wl2,  

    snd_lbb;        

  u16_t acked;
  
  u16_t snd_buf;    
  u8_t snd_queuelen;  
  
  
   
  struct tcp_seg *unsent;    
  struct tcp_seg *unacked;   




# 284 "..\\..\\..\\..\\TcpIPStack\\user\\include\\tcp.h"

};

struct tcp_pcb_listen {  
  struct tcp_pcb_listen *next;    
  u8_t prio;
  void *callback_arg;
  
  struct ip_addr local_ip;
  u16_t local_port; 
   


 
  enum tcp_state state;    





};

# 335 "..\\..\\..\\..\\TcpIPStack\\user\\include\\tcp.h"






















 
struct tcp_seg {
  struct tcp_seg *next;     
  struct pbuf *p;           
  void *dataptr;            
  u16_t len;                
  struct tcp_hdr *tcphdr;   
};

 
struct tcp_pcb *tcp_pcb_copy(struct tcp_pcb *pcb);
void tcp_pcb_purge(struct tcp_pcb *pcb);
void tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb);

u8_t tcp_segs_free(struct tcp_seg *seg);
u8_t tcp_seg_free(struct tcp_seg *seg);
struct tcp_seg *tcp_seg_copy(struct tcp_seg *seg);












err_t tcp_send_ctrl(struct tcp_pcb *pcb, u8_t flags);
err_t tcp_enqueue(struct tcp_pcb *pcb, void *dataptr, u16_t len,
		u8_t flags, u8_t copy,
                u8_t *optdata, u8_t optlen);

void tcp_rexmit_seg(struct tcp_pcb *pcb, struct tcp_seg *seg);

void tcp_rst(u32_t seqno, u32_t ackno,
	     struct ip_addr *local_ip, struct ip_addr *remote_ip,
	     u16_t local_port, u16_t remote_port);

u32_t tcp_next_iss(void);

extern struct tcp_pcb *tcp_input_pcb;
extern u32_t tcp_ticks;





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -