From a6163888f3c56123b1db313743c6147ba498732c Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Fri, 8 Aug 2014 14:42:07 +0300 Subject: Add third_party libs --- third_party/uip-1.0/doc/html/a00042.html | 106 +++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 third_party/uip-1.0/doc/html/a00042.html (limited to 'third_party/uip-1.0/doc/html/a00042.html') diff --git a/third_party/uip-1.0/doc/html/a00042.html b/third_party/uip-1.0/doc/html/a00042.html new file mode 100644 index 0000000..c7ed516 --- /dev/null +++ b/third_party/uip-1.0/doc/html/a00042.html @@ -0,0 +1,106 @@ + + +uIP 1.0: example-mainloop-with-arp.c + + + + +
+
+

example-mainloop-with-arp.c

00001 #include "uip.h"
+00002 #include "uip_arp.h"
+00003 #include "network-device.h"
+00004 #include "httpd.h"
+00005 #include "timer.h"
+00006 
+00007 #define BUF ((struct uip_eth_hdr *)&uip_buf[0])
+00008 
+00009 /*---------------------------------------------------------------------------*/
+00010 int
+00011 main(void)
+00012 {
+00013   int i;
+00014   uip_ipaddr_t ipaddr;
+00015   struct timer periodic_timer, arp_timer;
+00016   
+00017   timer_set(&periodic_timer, CLOCK_SECOND / 2);
+00018   timer_set(&arp_timer, CLOCK_SECOND * 10);
+00019   
+00020   network_device_init();
+00021   uip_init();
+00022 
+00023   uip_ipaddr(ipaddr, 192,168,0,2);
+00024   uip_sethostaddr(ipaddr);
+00025 
+00026   httpd_init();
+00027   
+00028   while(1) {
+00029     uip_len = network_device_read();
+00030     if(uip_len > 0) {
+00031       if(BUF->type == htons(UIP_ETHTYPE_IP)) {
+00032         uip_arp_ipin();
+00033         uip_input();
+00034         /* If the above function invocation resulted in data that
+00035            should be sent out on the network, the global variable
+00036            uip_len is set to a value > 0. */
+00037         if(uip_len > 0) {
+00038           uip_arp_out();
+00039           network_device_send();
+00040         }
+00041       } else if(BUF->type == htons(UIP_ETHTYPE_ARP)) {
+00042         uip_arp_arpin();
+00043         /* If the above function invocation resulted in data that
+00044            should be sent out on the network, the global variable
+00045            uip_len is set to a value > 0. */
+00046         if(uip_len > 0) {
+00047           network_device_send();
+00048         }
+00049       }
+00050 
+00051     } else if(timer_expired(&periodic_timer)) {
+00052       timer_reset(&periodic_timer);
+00053       for(i = 0; i < UIP_CONNS; i++) {
+00054         uip_periodic(i);
+00055         /* If the above function invocation resulted in data that
+00056            should be sent out on the network, the global variable
+00057            uip_len is set to a value > 0. */
+00058         if(uip_len > 0) {
+00059           uip_arp_out();
+00060           network_device_send();
+00061         }
+00062       }
+00063 
+00064 #if UIP_UDP
+00065       for(i = 0; i < UIP_UDP_CONNS; i++) {
+00066         uip_udp_periodic(i);
+00067         /* If the above function invocation resulted in data that
+00068            should be sent out on the network, the global variable
+00069            uip_len is set to a value > 0. */
+00070         if(uip_len > 0) {
+00071           uip_arp_out();
+00072           network_device_send();
+00073         }
+00074       }
+00075 #endif /* UIP_UDP */
+00076       
+00077       /* Call the ARP timer function every 10 seconds. */
+00078       if(timer_expired(&arp_timer)) {
+00079         timer_reset(&arp_timer);
+00080         uip_arp_timer();
+00081       }
+00082     }
+00083   }
+00084   return 0;
+00085 }
+00086 /*---------------------------------------------------------------------------*/
+

Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by  + +doxygen 1.4.6
+ + -- cgit v1.3.1