Closing doxygen groups

This commit is contained in:
Rémy Léone 2014-05-30 11:01:20 +02:00
parent 4197cccbd6
commit 25c8b0835d
19 changed files with 200 additions and 168 deletions

View file

@ -93,3 +93,6 @@ unsigned char leds_arch_get(void);
void leds_arch_set(unsigned char leds); void leds_arch_set(unsigned char leds);
#endif /* LEDS_H_ */ #endif /* LEDS_H_ */
/** @} */
/** @} */

View file

@ -67,7 +67,7 @@
struct ringbuf { struct ringbuf {
uint8_t *data; uint8_t *data;
uint8_t mask; uint8_t mask;
/* XXX these must be 8-bit quantities to avoid race conditions. */ /* XXX these must be 8-bit quantities to avoid race conditions. */
uint8_t put_ptr, get_ptr; uint8_t put_ptr, get_ptr;
}; };
@ -129,3 +129,6 @@ int ringbuf_size(struct ringbuf *r);
int ringbuf_elements(struct ringbuf *r); int ringbuf_elements(struct ringbuf *r);
#endif /* RINGBUF_H_ */ #endif /* RINGBUF_H_ */
/** @}*/
/** @}*/

View file

@ -243,15 +243,15 @@ uip_add32(uint8_t *op32, uint16_t op16)
uip_acc32[2] = op32[2] + (op16 >> 8); uip_acc32[2] = op32[2] + (op16 >> 8);
uip_acc32[1] = op32[1]; uip_acc32[1] = op32[1];
uip_acc32[0] = op32[0]; uip_acc32[0] = op32[0];
if(uip_acc32[2] < (op16 >> 8)) { if(uip_acc32[2] < (op16 >> 8)) {
++uip_acc32[1]; ++uip_acc32[1];
if(uip_acc32[1] == 0) { if(uip_acc32[1] == 0) {
++uip_acc32[0]; ++uip_acc32[0];
} }
} }
if(uip_acc32[3] < (op16 & 0xff)) { if(uip_acc32[3] < (op16 & 0xff)) {
++uip_acc32[2]; ++uip_acc32[2];
if(uip_acc32[2] == 0) { if(uip_acc32[2] == 0) {
@ -276,7 +276,7 @@ chksum(uint16_t sum, const uint8_t *data, uint16_t len)
dataptr = data; dataptr = data;
last_byte = data + len - 1; last_byte = data + len - 1;
while(dataptr < last_byte) { /* At least two more bytes */ while(dataptr < last_byte) { /* At least two more bytes */
t = (dataptr[0] << 8) + dataptr[1]; t = (dataptr[0] << 8) + dataptr[1];
sum += t; sum += t;
@ -285,7 +285,7 @@ chksum(uint16_t sum, const uint8_t *data, uint16_t len)
} }
dataptr += 2; dataptr += 2;
} }
if(dataptr == last_byte) { if(dataptr == last_byte) {
t = (dataptr[0] << 8) + 0; t = (dataptr[0] << 8) + 0;
sum += t; sum += t;
@ -321,15 +321,15 @@ upper_layer_chksum(uint8_t proto)
{ {
uint16_t upper_layer_len; uint16_t upper_layer_len;
uint16_t sum; uint16_t sum;
#if UIP_CONF_IPV6 #if UIP_CONF_IPV6
upper_layer_len = (((uint16_t)(BUF->len[0]) << 8) + BUF->len[1]); upper_layer_len = (((uint16_t)(BUF->len[0]) << 8) + BUF->len[1]);
#else /* UIP_CONF_IPV6 */ #else /* UIP_CONF_IPV6 */
upper_layer_len = (((uint16_t)(BUF->len[0]) << 8) + BUF->len[1]) - UIP_IPH_LEN; upper_layer_len = (((uint16_t)(BUF->len[0]) << 8) + BUF->len[1]) - UIP_IPH_LEN;
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/* First sum pseudoheader. */ /* First sum pseudoheader. */
/* IP protocol and length fields. This addition cannot carry. */ /* IP protocol and length fields. This addition cannot carry. */
sum = upper_layer_len + proto; sum = upper_layer_len + proto;
/* Sum IP source and destination addresses. */ /* Sum IP source and destination addresses. */
@ -338,7 +338,7 @@ upper_layer_chksum(uint8_t proto)
/* Sum TCP header and data. */ /* Sum TCP header and data. */
sum = chksum(sum, &uip_buf[UIP_IPH_LEN + UIP_LLH_LEN], sum = chksum(sum, &uip_buf[UIP_IPH_LEN + UIP_LLH_LEN],
upper_layer_len); upper_layer_len);
return (sum == 0) ? 0xffff : uip_htons(sum); return (sum == 0) ? 0xffff : uip_htons(sum);
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
@ -347,7 +347,7 @@ uint16_t
uip_icmp6chksum(void) uip_icmp6chksum(void)
{ {
return upper_layer_chksum(UIP_PROTO_ICMP6); return upper_layer_chksum(UIP_PROTO_ICMP6);
} }
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
@ -384,7 +384,7 @@ uip_init(void)
uip_udp_conns[c].lport = 0; uip_udp_conns[c].lport = 0;
} }
#endif /* UIP_UDP */ #endif /* UIP_UDP */
/* IPv4 initialization. */ /* IPv4 initialization. */
#if UIP_FIXEDADDR == 0 #if UIP_FIXEDADDR == 0
@ -398,7 +398,7 @@ struct uip_conn *
uip_connect(uip_ipaddr_t *ripaddr, uint16_t rport) uip_connect(uip_ipaddr_t *ripaddr, uint16_t rport)
{ {
register struct uip_conn *conn, *cconn; register struct uip_conn *conn, *cconn;
/* Find an unused local port. */ /* Find an unused local port. */
again: again:
++lastport; ++lastport;
@ -435,7 +435,7 @@ uip_connect(uip_ipaddr_t *ripaddr, uint16_t rport)
if(conn == 0) { if(conn == 0) {
return 0; return 0;
} }
conn->tcpstateflags = UIP_SYN_SENT; conn->tcpstateflags = UIP_SYN_SENT;
conn->snd_nxt[0] = iss[0]; conn->snd_nxt[0] = iss[0];
@ -444,7 +444,7 @@ uip_connect(uip_ipaddr_t *ripaddr, uint16_t rport)
conn->snd_nxt[3] = iss[3]; conn->snd_nxt[3] = iss[3];
conn->initialmss = conn->mss = UIP_TCP_MSS; conn->initialmss = conn->mss = UIP_TCP_MSS;
conn->len = 1; /* TCP length of the SYN is one. */ conn->len = 1; /* TCP length of the SYN is one. */
conn->nrtx = 0; conn->nrtx = 0;
conn->timer = 1; /* Send the SYN next time around. */ conn->timer = 1; /* Send the SYN next time around. */
@ -454,7 +454,7 @@ uip_connect(uip_ipaddr_t *ripaddr, uint16_t rport)
conn->lport = uip_htons(lastport); conn->lport = uip_htons(lastport);
conn->rport = rport; conn->rport = rport;
uip_ipaddr_copy(&conn->ripaddr, ripaddr); uip_ipaddr_copy(&conn->ripaddr, ripaddr);
return conn; return conn;
} }
#endif /* UIP_ACTIVE_OPEN */ #endif /* UIP_ACTIVE_OPEN */
@ -464,7 +464,7 @@ struct uip_udp_conn *
uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport) uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport)
{ {
register struct uip_udp_conn *conn; register struct uip_udp_conn *conn;
/* Find an unused local port. */ /* Find an unused local port. */
again: again:
++lastport; ++lastport;
@ -472,7 +472,7 @@ uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport)
if(lastport >= 32000) { if(lastport >= 32000) {
lastport = 4096; lastport = 4096;
} }
for(c = 0; c < UIP_UDP_CONNS; ++c) { for(c = 0; c < UIP_UDP_CONNS; ++c) {
if(uip_udp_conns[c].lport == uip_htons(lastport)) { if(uip_udp_conns[c].lport == uip_htons(lastport)) {
goto again; goto again;
@ -491,7 +491,7 @@ uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport)
if(conn == 0) { if(conn == 0) {
return 0; return 0;
} }
conn->lport = UIP_HTONS(lastport); conn->lport = UIP_HTONS(lastport);
conn->rport = rport; conn->rport = rport;
if(ripaddr == NULL) { if(ripaddr == NULL) {
@ -500,7 +500,7 @@ uip_udp_new(const uip_ipaddr_t *ripaddr, uint16_t rport)
uip_ipaddr_copy(&conn->ripaddr, ripaddr); uip_ipaddr_copy(&conn->ripaddr, ripaddr);
} }
conn->ttl = UIP_TTL; conn->ttl = UIP_TTL;
return conn; return conn;
} }
#endif /* UIP_UDP */ #endif /* UIP_UDP */
@ -585,12 +585,12 @@ uip_reass(void)
memcpy(&uip_reassbuf[UIP_IPH_LEN + offset], memcpy(&uip_reassbuf[UIP_IPH_LEN + offset],
(char *)BUF + (int)((BUF->vhl & 0x0f) * 4), (char *)BUF + (int)((BUF->vhl & 0x0f) * 4),
len); len);
/* Update the bitmap. */ /* Update the bitmap. */
if(offset / (8 * 8) == (offset + len) / (8 * 8)) { if(offset / (8 * 8) == (offset + len) / (8 * 8)) {
/* If the two endpoints are in the same byte, we only update /* If the two endpoints are in the same byte, we only update
that byte. */ that byte. */
uip_reassbitmap[offset / (8 * 8)] |= uip_reassbitmap[offset / (8 * 8)] |=
bitmap_bits[(offset / 8 ) & 7] & bitmap_bits[(offset / 8 ) & 7] &
~bitmap_bits[((offset + len) / 8 ) & 7]; ~bitmap_bits[((offset + len) / 8 ) & 7];
@ -606,7 +606,7 @@ uip_reass(void)
uip_reassbitmap[(offset + len) / (8 * 8)] |= uip_reassbitmap[(offset + len) / (8 * 8)] |=
~bitmap_bits[((offset + len) / 8 ) & 7]; ~bitmap_bits[((offset + len) / 8 ) & 7];
} }
/* If this fragment has the More Fragments flag set to zero, we /* If this fragment has the More Fragments flag set to zero, we
know that this is the last fragment, so we can calculate the know that this is the last fragment, so we can calculate the
size of the entire packet. We also set the size of the entire packet. We also set the
@ -617,7 +617,7 @@ uip_reass(void)
uip_reassflags |= UIP_REASS_FLAG_LASTFRAG; uip_reassflags |= UIP_REASS_FLAG_LASTFRAG;
uip_reasslen = offset + len; uip_reasslen = offset + len;
} }
/* Finally, we check if we have a full packet in the buffer. We do /* Finally, we check if we have a full packet in the buffer. We do
this by checking if we have the last fragment and if all bits this by checking if we have the last fragment and if all bits
in the bitmap are set. */ in the bitmap are set. */
@ -679,7 +679,7 @@ uip_process(uint8_t flag)
goto udp_send; goto udp_send;
} }
#endif /* UIP_UDP */ #endif /* UIP_UDP */
uip_sappdata = uip_appdata = &uip_buf[UIP_IPTCPH_LEN + UIP_LLH_LEN]; uip_sappdata = uip_appdata = &uip_buf[UIP_IPTCPH_LEN + UIP_LLH_LEN];
/* Check if we were invoked because of a poll request for a /* Check if we were invoked because of a poll request for a
@ -698,7 +698,7 @@ uip_process(uint8_t flag)
#endif /* UIP_ACTIVE_OPEN */ #endif /* UIP_ACTIVE_OPEN */
} }
goto drop; goto drop;
/* Check if we were invoked because of the perodic timer fireing. */ /* Check if we were invoked because of the perodic timer fireing. */
} else if(flag == UIP_TIMER) { } else if(flag == UIP_TIMER) {
#if UIP_REASSEMBLY #if UIP_REASSEMBLY
@ -759,7 +759,7 @@ uip_process(uint8_t flag)
4: 4:
uip_connr->nrtx); uip_connr->nrtx);
++(uip_connr->nrtx); ++(uip_connr->nrtx);
/* Ok, so we need to retransmit. We do this differently /* Ok, so we need to retransmit. We do this differently
depending on which state we are in. In ESTABLISHED, we depending on which state we are in. In ESTABLISHED, we
call upon the application so that it may prepare the call upon the application so that it may prepare the
@ -772,14 +772,14 @@ uip_process(uint8_t flag)
/* In the SYN_RCVD state, we should retransmit our /* In the SYN_RCVD state, we should retransmit our
SYNACK. */ SYNACK. */
goto tcp_send_synack; goto tcp_send_synack;
#if UIP_ACTIVE_OPEN #if UIP_ACTIVE_OPEN
case UIP_SYN_SENT: case UIP_SYN_SENT:
/* In the SYN_SENT state, we retransmit out SYN. */ /* In the SYN_SENT state, we retransmit out SYN. */
BUF->flags = 0; BUF->flags = 0;
goto tcp_send_syn; goto tcp_send_syn;
#endif /* UIP_ACTIVE_OPEN */ #endif /* UIP_ACTIVE_OPEN */
case UIP_ESTABLISHED: case UIP_ESTABLISHED:
/* In the ESTABLISHED state, we call upon the application /* In the ESTABLISHED state, we call upon the application
to do the actual retransmit after which we jump into to do the actual retransmit after which we jump into
@ -788,13 +788,13 @@ uip_process(uint8_t flag)
uip_flags = UIP_REXMIT; uip_flags = UIP_REXMIT;
UIP_APPCALL(); UIP_APPCALL();
goto apprexmit; goto apprexmit;
case UIP_FIN_WAIT_1: case UIP_FIN_WAIT_1:
case UIP_CLOSING: case UIP_CLOSING:
case UIP_LAST_ACK: case UIP_LAST_ACK:
/* In all these states we should retransmit a FINACK. */ /* In all these states we should retransmit a FINACK. */
goto tcp_send_finack; goto tcp_send_finack;
} }
} }
} else if((uip_connr->tcpstateflags & UIP_TS_MASK) == UIP_ESTABLISHED) { } else if((uip_connr->tcpstateflags & UIP_TS_MASK) == UIP_ESTABLISHED) {
@ -827,7 +827,7 @@ uip_process(uint8_t flag)
UIP_STAT(++uip_stat.ip.recv); UIP_STAT(++uip_stat.ip.recv);
/* Start of IP input header processing code. */ /* Start of IP input header processing code. */
#if UIP_CONF_IPV6 #if UIP_CONF_IPV6
/* Check validity of the IP header. */ /* Check validity of the IP header. */
if((BUF->vtc & 0xf0) != 0x60) { /* IP version and header length. */ if((BUF->vtc & 0xf0) != 0x60) { /* IP version and header length. */
@ -845,7 +845,7 @@ uip_process(uint8_t flag)
goto drop; goto drop;
} }
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/* Check the size of the packet. If the size reported to us in /* Check the size of the packet. If the size reported to us in
uip_len is smaller the size reported in the IP header, we assume uip_len is smaller the size reported in the IP header, we assume
that the packet has been corrupted in transit. If the size of that the packet has been corrupted in transit. If the size of
@ -922,7 +922,7 @@ uip_process(uint8_t flag)
goto udp_input; goto udp_input;
} }
#endif /* UIP_BROADCAST */ #endif /* UIP_BROADCAST */
/* Check if the packet is destined for our IP address. */ /* Check if the packet is destined for our IP address. */
#if !UIP_CONF_IPV6 #if !UIP_CONF_IPV6
if(!uip_ipaddr_cmp(&BUF->destipaddr, &uip_hostaddr)) { if(!uip_ipaddr_cmp(&BUF->destipaddr, &uip_hostaddr)) {
@ -1042,14 +1042,14 @@ uip_process(uint8_t flag)
/* Save the sender's address in our neighbor list. */ /* Save the sender's address in our neighbor list. */
uip_neighbor_add(&ICMPBUF->srcipaddr, &(ICMPBUF->options[2])); uip_neighbor_add(&ICMPBUF->srcipaddr, &(ICMPBUF->options[2]));
} }
/* We should now send a neighbor advertisement back to where the /* We should now send a neighbor advertisement back to where the
neighbor solicication came from. */ neighbor solicication came from. */
ICMPBUF->type = ICMP6_NEIGHBOR_ADVERTISEMENT; ICMPBUF->type = ICMP6_NEIGHBOR_ADVERTISEMENT;
ICMPBUF->flags = ICMP6_FLAG_S; /* Solicited flag. */ ICMPBUF->flags = ICMP6_FLAG_S; /* Solicited flag. */
ICMPBUF->reserved1 = ICMPBUF->reserved2 = ICMPBUF->reserved3 = 0; ICMPBUF->reserved1 = ICMPBUF->reserved2 = ICMPBUF->reserved3 = 0;
uip_ipaddr_copy(&ICMPBUF->destipaddr, &ICMPBUF->srcipaddr); uip_ipaddr_copy(&ICMPBUF->destipaddr, &ICMPBUF->srcipaddr);
uip_ipaddr_copy(&ICMPBUF->srcipaddr, &uip_hostaddr); uip_ipaddr_copy(&ICMPBUF->srcipaddr, &uip_hostaddr);
ICMPBUF->options[0] = ICMP6_OPTION_TARGET_LINK_ADDRESS; ICMPBUF->options[0] = ICMP6_OPTION_TARGET_LINK_ADDRESS;
@ -1057,9 +1057,9 @@ uip_process(uint8_t flag)
memcpy(&(ICMPBUF->options[2]), &uip_lladdr, sizeof(uip_lladdr)); memcpy(&(ICMPBUF->options[2]), &uip_lladdr, sizeof(uip_lladdr));
ICMPBUF->icmpchksum = 0; ICMPBUF->icmpchksum = 0;
ICMPBUF->icmpchksum = ~uip_icmp6chksum(); ICMPBUF->icmpchksum = ~uip_icmp6chksum();
goto send; goto send;
} }
goto drop; goto drop;
} else if(ICMPBUF->type == ICMP6_ECHO) { } else if(ICMPBUF->type == ICMP6_ECHO) {
@ -1068,12 +1068,12 @@ uip_process(uint8_t flag)
ICMP checksum before we return the packet. */ ICMP checksum before we return the packet. */
ICMPBUF->type = ICMP6_ECHO_REPLY; ICMPBUF->type = ICMP6_ECHO_REPLY;
uip_ipaddr_copy(&BUF->destipaddr, &BUF->srcipaddr); uip_ipaddr_copy(&BUF->destipaddr, &BUF->srcipaddr);
uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr); uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
ICMPBUF->icmpchksum = 0; ICMPBUF->icmpchksum = 0;
ICMPBUF->icmpchksum = ~uip_icmp6chksum(); ICMPBUF->icmpchksum = ~uip_icmp6chksum();
UIP_STAT(++uip_stat.icmp.sent); UIP_STAT(++uip_stat.icmp.sent);
goto send; goto send;
} else { } else {
@ -1085,7 +1085,7 @@ uip_process(uint8_t flag)
} }
/* End of IPv6 ICMP processing. */ /* End of IPv6 ICMP processing. */
#endif /* !UIP_CONF_IPV6 */ #endif /* !UIP_CONF_IPV6 */
#if UIP_UDP #if UIP_UDP
@ -1168,7 +1168,7 @@ uip_process(uint8_t flag)
#else /* UIP_CONF_ICMP_DEST_UNREACH */ #else /* UIP_CONF_ICMP_DEST_UNREACH */
goto drop; goto drop;
#endif /* UIP_CONF_ICMP_DEST_UNREACH */ #endif /* UIP_CONF_ICMP_DEST_UNREACH */
udp_found: udp_found:
UIP_STAT(++uip_stat.udp.recv); UIP_STAT(++uip_stat.udp.recv);
uip_conn = NULL; uip_conn = NULL;
@ -1204,7 +1204,7 @@ uip_process(uint8_t flag)
uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr); uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
uip_ipaddr_copy(&BUF->destipaddr, &uip_udp_conn->ripaddr); uip_ipaddr_copy(&BUF->destipaddr, &uip_udp_conn->ripaddr);
uip_appdata = &uip_buf[UIP_LLH_LEN + UIP_IPTCPH_LEN]; uip_appdata = &uip_buf[UIP_LLH_LEN + UIP_IPTCPH_LEN];
#if UIP_UDP_CHECKSUMS #if UIP_UDP_CHECKSUMS
@ -1214,18 +1214,18 @@ uip_process(uint8_t flag)
UDPBUF->udpchksum = 0xffff; UDPBUF->udpchksum = 0xffff;
} }
#endif /* UIP_UDP_CHECKSUMS */ #endif /* UIP_UDP_CHECKSUMS */
UIP_STAT(++uip_stat.udp.sent); UIP_STAT(++uip_stat.udp.sent);
goto ip_send_nolen; goto ip_send_nolen;
#endif /* UIP_UDP */ #endif /* UIP_UDP */
/* TCP input processing. */ /* TCP input processing. */
#if UIP_TCP #if UIP_TCP
tcp_input: tcp_input:
UIP_STAT(++uip_stat.tcp.recv); UIP_STAT(++uip_stat.tcp.recv);
/* Start of TCP input header processing code. */ /* Start of TCP input header processing code. */
if(uip_tcpchksum() != 0xffff) { /* Compute and check the TCP if(uip_tcpchksum() != 0xffff) { /* Compute and check the TCP
checksum. */ checksum. */
UIP_STAT(++uip_stat.tcp.drop); UIP_STAT(++uip_stat.tcp.drop);
@ -1239,7 +1239,7 @@ uip_process(uint8_t flag)
UIP_LOG("tcp: zero port."); UIP_LOG("tcp: zero port.");
goto drop; goto drop;
} }
/* Demultiplex this segment. */ /* Demultiplex this segment. */
/* First check any active connections. */ /* First check any active connections. */
for(uip_connr = &uip_conns[0]; uip_connr <= &uip_conns[UIP_CONNS - 1]; for(uip_connr = &uip_conns[0]; uip_connr <= &uip_conns[UIP_CONNS - 1];
@ -1259,7 +1259,7 @@ uip_process(uint8_t flag)
if((BUF->flags & TCP_CTL) != TCP_SYN) { if((BUF->flags & TCP_CTL) != TCP_SYN) {
goto reset; goto reset;
} }
tmp16 = BUF->destport; tmp16 = BUF->destport;
/* Next, check listening connections. */ /* Next, check listening connections. */
for(c = 0; c < UIP_LISTENPORTS; ++c) { for(c = 0; c < UIP_LISTENPORTS; ++c) {
@ -1267,7 +1267,7 @@ uip_process(uint8_t flag)
goto found_listen; goto found_listen;
} }
} }
/* No matching connection found, so we send a RST packet. */ /* No matching connection found, so we send a RST packet. */
UIP_STAT(++uip_stat.tcp.synrst); UIP_STAT(++uip_stat.tcp.synrst);
@ -1278,7 +1278,7 @@ uip_process(uint8_t flag)
} }
UIP_STAT(++uip_stat.tcp.rst); UIP_STAT(++uip_stat.tcp.rst);
BUF->flags = TCP_RST | TCP_ACK; BUF->flags = TCP_RST | TCP_ACK;
uip_len = UIP_IPTCPH_LEN; uip_len = UIP_IPTCPH_LEN;
BUF->tcpoffset = 5 << 4; BUF->tcpoffset = 5 << 4;
@ -1287,15 +1287,15 @@ uip_process(uint8_t flag)
c = BUF->seqno[3]; c = BUF->seqno[3];
BUF->seqno[3] = BUF->ackno[3]; BUF->seqno[3] = BUF->ackno[3];
BUF->ackno[3] = c; BUF->ackno[3] = c;
c = BUF->seqno[2]; c = BUF->seqno[2];
BUF->seqno[2] = BUF->ackno[2]; BUF->seqno[2] = BUF->ackno[2];
BUF->ackno[2] = c; BUF->ackno[2] = c;
c = BUF->seqno[1]; c = BUF->seqno[1];
BUF->seqno[1] = BUF->ackno[1]; BUF->seqno[1] = BUF->ackno[1];
BUF->ackno[1] = c; BUF->ackno[1] = c;
c = BUF->seqno[0]; c = BUF->seqno[0];
BUF->seqno[0] = BUF->ackno[0]; BUF->seqno[0] = BUF->ackno[0];
BUF->ackno[0] = c; BUF->ackno[0] = c;
@ -1310,16 +1310,16 @@ uip_process(uint8_t flag)
} }
} }
} }
/* Swap port numbers. */ /* Swap port numbers. */
tmp16 = BUF->srcport; tmp16 = BUF->srcport;
BUF->srcport = BUF->destport; BUF->srcport = BUF->destport;
BUF->destport = tmp16; BUF->destport = tmp16;
/* Swap IP addresses. */ /* Swap IP addresses. */
uip_ipaddr_copy(&BUF->destipaddr, &BUF->srcipaddr); uip_ipaddr_copy(&BUF->destipaddr, &BUF->srcipaddr);
uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr); uip_ipaddr_copy(&BUF->srcipaddr, &uip_hostaddr);
/* And send out the RST packet! */ /* And send out the RST packet! */
goto tcp_send_noconn; goto tcp_send_noconn;
@ -1356,7 +1356,7 @@ uip_process(uint8_t flag)
goto drop; goto drop;
} }
uip_conn = uip_connr; uip_conn = uip_connr;
/* Fill in the necessary fields for the new connection. */ /* Fill in the necessary fields for the new connection. */
uip_connr->rto = uip_connr->timer = UIP_RTO; uip_connr->rto = uip_connr->timer = UIP_RTO;
uip_connr->sa = 0; uip_connr->sa = 0;
@ -1397,7 +1397,7 @@ uip_process(uint8_t flag)
(uint16_t)uip_buf[UIP_IPTCPH_LEN + UIP_LLH_LEN + 3 + c]; (uint16_t)uip_buf[UIP_IPTCPH_LEN + UIP_LLH_LEN + 3 + c];
uip_connr->initialmss = uip_connr->mss = uip_connr->initialmss = uip_connr->mss =
tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16; tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;
/* And we are done processing options. */ /* And we are done processing options. */
break; break;
} else { } else {
@ -1412,19 +1412,19 @@ uip_process(uint8_t flag)
} }
} }
} }
/* Our response will be a SYNACK. */ /* Our response will be a SYNACK. */
#if UIP_ACTIVE_OPEN #if UIP_ACTIVE_OPEN
tcp_send_synack: tcp_send_synack:
BUF->flags = TCP_ACK; BUF->flags = TCP_ACK;
tcp_send_syn: tcp_send_syn:
BUF->flags |= TCP_SYN; BUF->flags |= TCP_SYN;
#else /* UIP_ACTIVE_OPEN */ #else /* UIP_ACTIVE_OPEN */
tcp_send_synack: tcp_send_synack:
BUF->flags = TCP_SYN | TCP_ACK; BUF->flags = TCP_SYN | TCP_ACK;
#endif /* UIP_ACTIVE_OPEN */ #endif /* UIP_ACTIVE_OPEN */
/* We send out the TCP Maximum Segment Size option with our /* We send out the TCP Maximum Segment Size option with our
SYNACK. */ SYNACK. */
BUF->optdata[0] = TCP_OPT_MSS; BUF->optdata[0] = TCP_OPT_MSS;
@ -1492,7 +1492,7 @@ uip_process(uint8_t flag)
uip_connr->snd_nxt[1] = uip_acc32[1]; uip_connr->snd_nxt[1] = uip_acc32[1];
uip_connr->snd_nxt[2] = uip_acc32[2]; uip_connr->snd_nxt[2] = uip_acc32[2];
uip_connr->snd_nxt[3] = uip_acc32[3]; uip_connr->snd_nxt[3] = uip_acc32[3];
/* Do RTT estimation, unless we have done retransmissions. */ /* Do RTT estimation, unless we have done retransmissions. */
if(uip_connr->nrtx == 0) { if(uip_connr->nrtx == 0) {
signed char m; signed char m;
@ -1516,7 +1516,7 @@ uip_process(uint8_t flag)
/* Reset length of outstanding data. */ /* Reset length of outstanding data. */
uip_connr->len = 0; uip_connr->len = 0;
} }
} }
/* Do different things depending on in what state the connection is. */ /* Do different things depending on in what state the connection is. */
@ -1608,7 +1608,7 @@ uip_process(uint8_t flag)
uip_conn->tcpstateflags = UIP_CLOSED; uip_conn->tcpstateflags = UIP_CLOSED;
goto reset; goto reset;
#endif /* UIP_ACTIVE_OPEN */ #endif /* UIP_ACTIVE_OPEN */
case UIP_ESTABLISHED: case UIP_ESTABLISHED:
/* In the ESTABLISHED state, we call upon the application to feed /* In the ESTABLISHED state, we call upon the application to feed
data into the uip_buf. If the UIP_ACKDATA flag is set, the data into the uip_buf. If the UIP_ACKDATA flag is set, the
@ -1710,7 +1710,7 @@ uip_process(uint8_t flag)
UIP_APPCALL(); UIP_APPCALL();
appsend: appsend:
if(uip_flags & UIP_ABORT) { if(uip_flags & UIP_ABORT) {
uip_slen = 0; uip_slen = 0;
uip_connr->tcpstateflags = UIP_CLOSED; uip_connr->tcpstateflags = UIP_CLOSED;
@ -1762,7 +1762,7 @@ uip_process(uint8_t flag)
uip_connr->nrtx = 0; uip_connr->nrtx = 0;
apprexmit: apprexmit:
uip_appdata = uip_sappdata; uip_appdata = uip_sappdata;
/* If the application has data to be sent, or if the incoming /* If the application has data to be sent, or if the incoming
packet had new data in it, we must send out a packet. */ packet had new data in it, we must send out a packet. */
if(uip_slen > 0 && uip_connr->len > 0) { if(uip_slen > 0 && uip_connr->len > 0) {
@ -1791,7 +1791,7 @@ uip_process(uint8_t flag)
UIP_APPCALL(); UIP_APPCALL();
} }
break; break;
case UIP_FIN_WAIT_1: case UIP_FIN_WAIT_1:
/* The application has closed the connection, but the remote host /* The application has closed the connection, but the remote host
hasn't closed its end yet. Thus we do nothing but wait for a hasn't closed its end yet. Thus we do nothing but wait for a
@ -1820,7 +1820,7 @@ uip_process(uint8_t flag)
goto tcp_send_ack; goto tcp_send_ack;
} }
goto drop; goto drop;
case UIP_FIN_WAIT_2: case UIP_FIN_WAIT_2:
if(uip_len > 0) { if(uip_len > 0) {
uip_add_rcv_nxt(uip_len); uip_add_rcv_nxt(uip_len);
@ -1840,7 +1840,7 @@ uip_process(uint8_t flag)
case UIP_TIME_WAIT: case UIP_TIME_WAIT:
goto tcp_send_ack; goto tcp_send_ack;
case UIP_CLOSING: case UIP_CLOSING:
if(uip_flags & UIP_ACKDATA) { if(uip_flags & UIP_ACKDATA) {
uip_connr->tcpstateflags = UIP_TIME_WAIT; uip_connr->tcpstateflags = UIP_TIME_WAIT;
@ -1848,12 +1848,12 @@ uip_process(uint8_t flag)
} }
} }
goto drop; goto drop;
/* We jump here when we are ready to send the packet, and just want /* We jump here when we are ready to send the packet, and just want
to set the appropriate TCP sequence numbers in the TCP header. */ to set the appropriate TCP sequence numbers in the TCP header. */
tcp_send_ack: tcp_send_ack:
BUF->flags = TCP_ACK; BUF->flags = TCP_ACK;
tcp_send_nodata: tcp_send_nodata:
uip_len = UIP_IPTCPH_LEN; uip_len = UIP_IPTCPH_LEN;
@ -1869,14 +1869,14 @@ uip_process(uint8_t flag)
BUF->ackno[1] = uip_connr->rcv_nxt[1]; BUF->ackno[1] = uip_connr->rcv_nxt[1];
BUF->ackno[2] = uip_connr->rcv_nxt[2]; BUF->ackno[2] = uip_connr->rcv_nxt[2];
BUF->ackno[3] = uip_connr->rcv_nxt[3]; BUF->ackno[3] = uip_connr->rcv_nxt[3];
BUF->seqno[0] = uip_connr->snd_nxt[0]; BUF->seqno[0] = uip_connr->snd_nxt[0];
BUF->seqno[1] = uip_connr->snd_nxt[1]; BUF->seqno[1] = uip_connr->snd_nxt[1];
BUF->seqno[2] = uip_connr->snd_nxt[2]; BUF->seqno[2] = uip_connr->snd_nxt[2];
BUF->seqno[3] = uip_connr->snd_nxt[3]; BUF->seqno[3] = uip_connr->snd_nxt[3];
BUF->proto = UIP_PROTO_TCP; BUF->proto = UIP_PROTO_TCP;
BUF->srcport = uip_connr->lport; BUF->srcport = uip_connr->lport;
BUF->destport = uip_connr->rport; BUF->destport = uip_connr->rport;
@ -1891,7 +1891,7 @@ uip_process(uint8_t flag)
BUF->wnd[0] = ((UIP_RECEIVE_WINDOW) >> 8); BUF->wnd[0] = ((UIP_RECEIVE_WINDOW) >> 8);
BUF->wnd[1] = ((UIP_RECEIVE_WINDOW) & 0xff); BUF->wnd[1] = ((UIP_RECEIVE_WINDOW) & 0xff);
} }
tcp_send_noconn: tcp_send_noconn:
BUF->ttl = UIP_TTL; BUF->ttl = UIP_TTL;
#if UIP_CONF_IPV6 #if UIP_CONF_IPV6
@ -1905,7 +1905,7 @@ uip_process(uint8_t flag)
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
BUF->urgp[0] = BUF->urgp[1] = 0; BUF->urgp[0] = BUF->urgp[1] = 0;
/* Calculate TCP checksum. */ /* Calculate TCP checksum. */
BUF->tcpchksum = 0; BUF->tcpchksum = 0;
BUF->tcpchksum = ~(uip_tcpchksum()); BUF->tcpchksum = ~(uip_tcpchksum());
@ -1927,14 +1927,14 @@ uip_process(uint8_t flag)
BUF->ipchksum = 0; BUF->ipchksum = 0;
BUF->ipchksum = ~(uip_ipchksum()); BUF->ipchksum = ~(uip_ipchksum());
DEBUG_PRINTF("uip ip_send_nolen: chkecum 0x%04x\n", uip_ipchksum()); DEBUG_PRINTF("uip ip_send_nolen: chkecum 0x%04x\n", uip_ipchksum());
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
UIP_STAT(++uip_stat.tcp.sent); UIP_STAT(++uip_stat.tcp.sent);
#if UIP_CONF_IPV6 #if UIP_CONF_IPV6
send: send:
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
DEBUG_PRINTF("Sending packet with length %d (%d)\n", uip_len, DEBUG_PRINTF("Sending packet with length %d (%d)\n", uip_len,
(BUF->len[0] << 8) | BUF->len[1]); (BUF->len[0] << 8) | BUF->len[1]);
UIP_STAT(++uip_stat.ip.sent); UIP_STAT(++uip_stat.ip.sent);
/* Return and let the caller do the actual transmission. */ /* Return and let the caller do the actual transmission. */
uip_flags = 0; uip_flags = 0;
@ -1973,5 +1973,6 @@ uip_send(const void *data, int len)
} }
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** @} */
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/** @}*/

View file

@ -296,3 +296,4 @@ uip_ds6_get_least_lifetime_neighbor(void)
return nbr_expiring; return nbr_expiring;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** @} */

View file

@ -108,3 +108,4 @@ int uip_ds6_nbr_num(void);
uip_ds6_nbr_t *uip_ds6_get_least_lifetime_neighbor(void); uip_ds6_nbr_t *uip_ds6_get_least_lifetime_neighbor(void);
#endif /* UIP_DS6_NEIGHBOR_H_ */ #endif /* UIP_DS6_NEIGHBOR_H_ */
/** @} */

View file

@ -702,5 +702,6 @@ uip_ds6_compute_reachable_time(void)
UIP_ND6_MIN_RANDOM_FACTOR(uip_ds6_if.base_reachable_time)); UIP_ND6_MIN_RANDOM_FACTOR(uip_ds6_if.base_reachable_time));
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** @} */
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/** @}*/

View file

@ -166,3 +166,4 @@ int frame802154_parse(uint8_t *data, int length, frame802154_t *pf);
/** @} */ /** @} */
#endif /* FRAME_802154_H */ #endif /* FRAME_802154_H */
/** @} */

View file

@ -365,7 +365,7 @@ check_prefix(rpl_prefix_t *last_prefix, rpl_prefix_t *new_prefix)
uip_ds6_addr_rm(rep); uip_ds6_addr_rm(rep);
} }
} }
if(new_prefix != NULL) { if(new_prefix != NULL) {
set_ip_from_prefix(&ipaddr, new_prefix); set_ip_from_prefix(&ipaddr, new_prefix);
if(uip_ds6_addr_lookup(&ipaddr) == NULL) { if(uip_ds6_addr_lookup(&ipaddr) == NULL) {
@ -382,7 +382,7 @@ rpl_set_prefix(rpl_dag_t *dag, uip_ipaddr_t *prefix, unsigned len)
{ {
rpl_prefix_t last_prefix; rpl_prefix_t last_prefix;
uint8_t last_len = dag->prefix_info.length; uint8_t last_len = dag->prefix_info.length;
if(len > 128) { if(len > 128) {
return 0; return 0;
} }
@ -399,7 +399,7 @@ rpl_set_prefix(rpl_dag_t *dag, uip_ipaddr_t *prefix, unsigned len)
if(last_len == 0) { if(last_len == 0) {
PRINTF("rpl_set_prefix - prefix NULL\n"); PRINTF("rpl_set_prefix - prefix NULL\n");
check_prefix(NULL, &dag->prefix_info); check_prefix(NULL, &dag->prefix_info);
} else { } else {
PRINTF("rpl_set_prefix - prefix NON-NULL\n"); PRINTF("rpl_set_prefix - prefix NON-NULL\n");
check_prefix(&last_prefix, &dag->prefix_info); check_prefix(&last_prefix, &dag->prefix_info);
} }
@ -1311,3 +1311,4 @@ rpl_lock_parent(rpl_parent_t *p)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/** @} */

View file

@ -357,3 +357,5 @@ rpl_insert_header(void)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/** @}*/

View file

@ -274,7 +274,7 @@ dio_input(void)
PRINTF("RPL: Incoming DIO (id, ver, rank) = (%u,%u,%u)\n", PRINTF("RPL: Incoming DIO (id, ver, rank) = (%u,%u,%u)\n",
(unsigned)dio.instance_id, (unsigned)dio.instance_id,
(unsigned)dio.version, (unsigned)dio.version,
(unsigned)dio.rank); (unsigned)dio.rank);
dio.grounded = buffer[i] & RPL_DIO_GROUNDED; dio.grounded = buffer[i] & RPL_DIO_GROUNDED;
@ -330,11 +330,11 @@ dio_input(void)
dio.mc.obj.etx = get16(buffer, i + 6); dio.mc.obj.etx = get16(buffer, i + 6);
PRINTF("RPL: DAG MC: type %u, flags %u, aggr %u, prec %u, length %u, ETX %u\n", PRINTF("RPL: DAG MC: type %u, flags %u, aggr %u, prec %u, length %u, ETX %u\n",
(unsigned)dio.mc.type, (unsigned)dio.mc.type,
(unsigned)dio.mc.flags, (unsigned)dio.mc.flags,
(unsigned)dio.mc.aggr, (unsigned)dio.mc.aggr,
(unsigned)dio.mc.prec, (unsigned)dio.mc.prec,
(unsigned)dio.mc.length, (unsigned)dio.mc.length,
(unsigned)dio.mc.obj.etx); (unsigned)dio.mc.obj.etx);
} else if(dio.mc.type == RPL_DAG_MC_ENERGY) { } else if(dio.mc.type == RPL_DAG_MC_ENERGY) {
dio.mc.obj.energy.flags = buffer[i + 6]; dio.mc.obj.energy.flags = buffer[i + 6];
@ -431,7 +431,7 @@ dio_output(rpl_instance_t *instance, uip_ipaddr_t *uc_addr)
#endif /* !RPL_LEAF_ONLY */ #endif /* !RPL_LEAF_ONLY */
#if RPL_LEAF_ONLY #if RPL_LEAF_ONLY
/* In leaf mode, we only send DIO messages as unicasts in response to /* In leaf mode, we only send DIO messages as unicasts in response to
unicast DIS messages. */ unicast DIS messages. */
if(uc_addr == NULL) { if(uc_addr == NULL) {
PRINTF("RPL: LEAF ONLY have multicast addr: skip dio_output\n"); PRINTF("RPL: LEAF ONLY have multicast addr: skip dio_output\n");
@ -957,3 +957,5 @@ rpl_icmp6_register_handlers()
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/** @}*/

View file

@ -37,7 +37,7 @@
* \file * \file
* The Minimum Rank with Hysteresis Objective Function (MRHOF) * The Minimum Rank with Hysteresis Objective Function (MRHOF)
* *
* This implementation uses the estimated number of * This implementation uses the estimated number of
* transmissions (ETX) as the additive routing metric, * transmissions (ETX) as the additive routing metric,
* and also provides stubs for the energy metric. * and also provides stubs for the energy metric.
* *
@ -272,3 +272,5 @@ update_metric_container(rpl_instance_t *instance)
#endif /* RPL_DAG_MC == RPL_DAG_MC_ETX */ #endif /* RPL_DAG_MC == RPL_DAG_MC_ETX */
} }
#endif /* RPL_DAG_MC == RPL_DAG_MC_NONE */ #endif /* RPL_DAG_MC == RPL_DAG_MC_NONE */
/** @}*/

View file

@ -125,7 +125,7 @@ best_parent(rpl_parent_t *p1, rpl_parent_t *p2)
{ {
rpl_rank_t r1, r2; rpl_rank_t r1, r2;
rpl_dag_t *dag; rpl_dag_t *dag;
PRINTF("RPL: Comparing parent "); PRINTF("RPL: Comparing parent ");
PRINT6ADDR(rpl_get_parent_ipaddr(p1)); PRINT6ADDR(rpl_get_parent_ipaddr(p1));
PRINTF(" (confidence %d, rank %d) with parent ", PRINTF(" (confidence %d, rank %d) with parent ",
@ -159,3 +159,5 @@ update_metric_container(rpl_instance_t *instance)
{ {
instance->mc.type = RPL_DAG_MC_NONE; instance->mc.type = RPL_DAG_MC_NONE;
} }
/** @}*/

View file

@ -324,3 +324,5 @@ rpl_cancel_dao(rpl_instance_t *instance)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/** @}*/

View file

@ -315,3 +315,5 @@ rpl_init(void)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
#endif /* UIP_CONF_IPV6 */ #endif /* UIP_CONF_IPV6 */
/** @}*/

View file

@ -105,3 +105,5 @@ rtimer_run_next(void)
return; return;
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** @}*/

View file

@ -67,3 +67,6 @@
} }
#endif /* SUBPROCESS_H_ */ #endif /* SUBPROCESS_H_ */
/** @}*/
/** @}*/

View file

@ -171,13 +171,13 @@
*/ */
/*@{*/ /*@{*/
/*! /*!
* \brief Bank select register. * \brief Bank select register.
*/ */
#define NIC_BSR (LANC111_BASE_ADDR + 0x0E) #define NIC_BSR (LANC111_BASE_ADDR + 0x0E)
/*! /*!
* \brief Bank 0 - Transmit control register. * \brief Bank 0 - Transmit control register.
*/ */
#define NIC_TCR (LANC111_BASE_ADDR + 0x00) #define NIC_TCR (LANC111_BASE_ADDR + 0x00)
@ -193,13 +193,13 @@
#define TCR_TXENA 0x0001 /*!< \ref NIC_TCR bit mask, enables transmitter. */ #define TCR_TXENA 0x0001 /*!< \ref NIC_TCR bit mask, enables transmitter. */
/*! /*!
* \brief Bank 0 - EPH status register. * \brief Bank 0 - EPH status register.
*/ */
#define NIC_EPHSR (LANC111_BASE_ADDR + 0x02) #define NIC_EPHSR (LANC111_BASE_ADDR + 0x02)
/*! /*!
* \brief Bank 0 - Receive control register. * \brief Bank 0 - Receive control register.
*/ */
#define NIC_RCR (LANC111_BASE_ADDR + 0x04) #define NIC_RCR (LANC111_BASE_ADDR + 0x04)
@ -212,17 +212,17 @@
#define RCR_PRMS 0x0002 /*!< \ref NIC_RCR bit mask, enables promiscuous mode. */ #define RCR_PRMS 0x0002 /*!< \ref NIC_RCR bit mask, enables promiscuous mode. */
#define RCR_RX_ABORT 0x0001 /*!< \ref NIC_RCR bit mask, set when receive was aborted. */ #define RCR_RX_ABORT 0x0001 /*!< \ref NIC_RCR bit mask, set when receive was aborted. */
/*! /*!
* \brief Bank 0 - Counter register. * \brief Bank 0 - Counter register.
*/ */
#define NIC_ECR (LANC111_BASE_ADDR + 0x06) #define NIC_ECR (LANC111_BASE_ADDR + 0x06)
/*! /*!
* \brief Bank 0 - Memory information register. * \brief Bank 0 - Memory information register.
*/ */
#define NIC_MIR (LANC111_BASE_ADDR + 0x08) #define NIC_MIR (LANC111_BASE_ADDR + 0x08)
/*! /*!
* \brief Bank 0 - Receive / PHY control register. * \brief Bank 0 - Receive / PHY control register.
*/ */
#define NIC_RPCR (LANC111_BASE_ADDR + 0x0A) #define NIC_RPCR (LANC111_BASE_ADDR + 0x0A)
@ -233,29 +233,29 @@
#define RPCR_LEDA_PAT 0x0000 /*!< \ref NIC_RPCR bit mask for LEDA mode. */ #define RPCR_LEDA_PAT 0x0000 /*!< \ref NIC_RPCR bit mask for LEDA mode. */
#define RPCR_LEDB_PAT 0x0010 /*!< \ref NIC_RPCR bit mask for LEDB mode. */ #define RPCR_LEDB_PAT 0x0010 /*!< \ref NIC_RPCR bit mask for LEDB mode. */
/*! /*!
* \brief Bank 1 - Configuration register. * \brief Bank 1 - Configuration register.
*/ */
#define NIC_CR (LANC111_BASE_ADDR + 0x00) #define NIC_CR (LANC111_BASE_ADDR + 0x00)
#define CR_EPH_EN 0x8000 /*!< \ref NIC_CR bit mask, . */ #define CR_EPH_EN 0x8000 /*!< \ref NIC_CR bit mask, . */
/*! /*!
* \brief Bank 1 - Base address register. * \brief Bank 1 - Base address register.
*/ */
#define NIC_BAR (LANC111_BASE_ADDR + 0x02) #define NIC_BAR (LANC111_BASE_ADDR + 0x02)
/*! /*!
* \brief Bank 1 - Individual address register. * \brief Bank 1 - Individual address register.
*/ */
#define NIC_IAR (LANC111_BASE_ADDR + 0x04) #define NIC_IAR (LANC111_BASE_ADDR + 0x04)
/*! /*!
* \brief Bank 1 - General purpose register. * \brief Bank 1 - General purpose register.
*/ */
#define NIC_GPR (LANC111_BASE_ADDR + 0x0A) #define NIC_GPR (LANC111_BASE_ADDR + 0x0A)
/*! /*!
* \brief Bank 1 - Control register. * \brief Bank 1 - Control register.
*/ */
#define NIC_CTR (LANC111_BASE_ADDR + 0x0C) #define NIC_CTR (LANC111_BASE_ADDR + 0x0C)
@ -654,10 +654,10 @@ static int NicPhyConfig(void)
uint16_t phy_to; uint16_t phy_to;
uint16_t mode; uint16_t mode;
/* /*
* Reset the PHY and wait until this self clearing bit * Reset the PHY and wait until this self clearing bit
* becomes zero. We sleep 63 ms before each poll and * becomes zero. We sleep 63 ms before each poll and
* give up after 3 retries. * give up after 3 retries.
*/ */
//printf("Reset PHY.."); //printf("Reset PHY..");
NicPhyWrite(NIC_PHYCR, PHYCR_RST); NicPhyWrite(NIC_PHYCR, PHYCR_RST);
@ -860,8 +860,8 @@ static void NicInterrupt(void *arg)
isr &= imr; isr &= imr;
/* /*
* If this is a transmit interrupt, then a packet has been sent. * If this is a transmit interrupt, then a packet has been sent.
* So we can clear the transmitter busy flag and wake up the * So we can clear the transmitter busy flag and wake up the
* transmitter thread. * transmitter thread.
*/ */
if (isr & INT_TX_EMPTY) { if (isr & INT_TX_EMPTY) {
@ -884,7 +884,7 @@ static void NicInterrupt(void *arg)
/* /*
* If this is a receive interrupt, then wake up the receiver * If this is a receive interrupt, then wake up the receiver
* thread. * thread.
*/ */
if (isr & INT_RX_OVRN) { if (isr & INT_RX_OVRN) {
@ -964,7 +964,7 @@ static NETBUF *NicGetPacket(void)
uint16_t fsw; uint16_t fsw;
uint16_t fbc; uint16_t fbc;
/* Check the fifo empty bit. If it is set, then there is /* Check the fifo empty bit. If it is set, then there is
nothing in the receiver fifo. */ nothing in the receiver fifo. */
nic_bs(2); nic_bs(2);
if (nic_inw(NIC_FIFO) & 0x8000) { if (nic_inw(NIC_FIFO) & 0x8000) {
@ -993,8 +993,8 @@ static NETBUF *NicGetPacket(void)
} }
else { else {
/* /*
* Allocate a NETBUF. * Allocate a NETBUF.
* Hack alert: Rev A chips never set the odd frame indicator. * Hack alert: Rev A chips never set the odd frame indicator.
*/ */
fbc -= 3; fbc -= 3;
@ -1022,7 +1022,7 @@ static NETBUF *NicGetPacket(void)
* release the buffer in case of an error. * release the buffer in case of an error.
* *
* \return 0 on success, -1 in case of any errors. Errors * \return 0 on success, -1 in case of any errors. Errors
* will automatically release the network buffer * will automatically release the network buffer
* structure. * structure.
*/ */
#if 0 #if 0
@ -1034,7 +1034,7 @@ static int NicPutPacket(NETBUF * nb)
//printf("[P]"); //printf("[P]");
/* /*
* Calculate the number of bytes to be send. Do not send packets * Calculate the number of bytes to be send. Do not send packets
* larger than the Ethernet maximum transfer unit. The MTU * larger than the Ethernet maximum transfer unit. The MTU
* consist of 1500 data bytes plus the 14 byte Ethernet header * consist of 1500 data bytes plus the 14 byte Ethernet header
* plus 4 bytes CRC. We check the data bytes only. * plus 4 bytes CRC. We check the data bytes only.
@ -1132,7 +1132,7 @@ PROCESS_THREAD(lanc111_process, ev, data)
NETBUF *nb;*/ NETBUF *nb;*/
uint8_t imsk; uint8_t imsk;
static struct etimer et; static struct etimer et;
/* dev = arg; /* dev = arg;
ifn = (IFNET *) dev->dev_icb; ifn = (IFNET *) dev->dev_icb;
ni = (NICINFO *) dev->dev_dcb;*/ ni = (NICINFO *) dev->dev_dcb;*/
@ -1144,7 +1144,7 @@ PROCESS_THREAD(lanc111_process, ev, data)
*/ */
PROCESS_BEGIN(); PROCESS_BEGIN();
/* while(*((u_long *) (ifn->if_mac)) && /* while(*((u_long *) (ifn->if_mac)) &&
*((u_long *) (ifn->if_mac)) != 0xFFFFFFFFUL) {*/ *((u_long *) (ifn->if_mac)) != 0xFFFFFFFFUL) {*/
while(0) { while(0) {
@ -1191,7 +1191,7 @@ PROCESS_THREAD(lanc111_process, ev, data)
/* while ((nb = NicGetPacket()) != 0) { /* while ((nb = NicGetPacket()) != 0) {
if (nb != (NETBUF *) 0xFFFF) { if (nb != (NETBUF *) 0xFFFF) {
ni->ni_rx_packets++; ni->ni_rx_packets++;
(*ifn->if_recv) (dev, nb); (*ifn->if_recv) (dev, nb);
} }
}*/ }*/
nic_outlb(NIC_MSK, imsk | INT_RCV | INT_ERCV); nic_outlb(NIC_MSK, imsk | INT_RCV | INT_ERCV);
@ -1247,12 +1247,12 @@ int LancOutput(NUTDEVICE * dev, NETBUF * nb)
/*! /*!
* \brief Initialize Ethernet hardware. * \brief Initialize Ethernet hardware.
* *
* Resets the LAN91C111 Ethernet controller, initializes all required * Resets the LAN91C111 Ethernet controller, initializes all required
* hardware registers and starts a background thread for incoming * hardware registers and starts a background thread for incoming
* Ethernet traffic. * Ethernet traffic.
* *
* Applications should do not directly call this function. It is * Applications should do not directly call this function. It is
* automatically executed during during device registration by * automatically executed during during device registration by
* NutRegisterDevice(). * NutRegisterDevice().
* *
* If the network configuration hasn't been set by the application * If the network configuration hasn't been set by the application
@ -1312,11 +1312,11 @@ static IFNET ifn_eth0 = {
/*! /*!
* \brief Device information structure. * \brief Device information structure.
* *
* A pointer to this structure must be passed to NutRegisterDevice() * A pointer to this structure must be passed to NutRegisterDevice()
* to bind this Ethernet device driver to the Nut/OS kernel. * to bind this Ethernet device driver to the Nut/OS kernel.
* An application may then call NutNetIfConfig() with the name \em eth0 * An application may then call NutNetIfConfig() with the name \em eth0
* of this driver to initialize the network interface. * of this driver to initialize the network interface.
* *
*/ */
NUTDEVICE devSmsc111 = { NUTDEVICE devSmsc111 = {
0, /* Pointer to next device. */ 0, /* Pointer to next device. */
@ -1360,3 +1360,4 @@ lanc111_init(void)
return 0; return 0;
} }
/** @} */

View file

@ -34,13 +34,13 @@
* \brief This module contains code to interface a Contiki-based * \brief This module contains code to interface a Contiki-based
* project on the AVR Raven platform's ATMega1284P chip to the LCD * project on the AVR Raven platform's ATMega1284P chip to the LCD
* driver chip (ATMega3290P) on the Raven. * driver chip (ATMega3290P) on the Raven.
* *
* \author Blake Leverett <bleverett@gmail.com> * \author Blake Leverett <bleverett@gmail.com>
* *
*/ */
/** \addtogroup raven /** \addtogroup raven
* @{ * @{
*/ */
/** /**
@ -121,7 +121,7 @@ seqno++;
} else { } else {
// uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x5FFF,0x007D,0x02D0,0xB7FF,0xFE23,0xE6DB); //?.cisco.com // uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x5FFF,0x007D,0x02D0,0xB7FF,0xFE23,0xE6DB); //?.cisco.com
uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x0000,0x0010,0x0250,0x8bff,0xfee8,0xf800); //six.cisco.com uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x0000,0x0010,0x0250,0x8bff,0xfee8,0xf800); //six.cisco.com
} }
#else #else
uip_ipaddr_copy(&UIP_IP_BUF->destipaddr, uip_ds6_defrt_choose()); //the default router uip_ipaddr_copy(&UIP_IP_BUF->destipaddr, uip_ds6_defrt_choose()); //the default router
#endif #endif
@ -134,16 +134,16 @@ seqno++;
/* put one byte of data */ /* put one byte of data */
memset((void *)UIP_ICMP_BUF + UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN, memset((void *)UIP_ICMP_BUF + UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN,
count, PING6_DATALEN); count, PING6_DATALEN);
uip_len = UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN + UIP_IPH_LEN + PING6_DATALEN; uip_len = UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN + UIP_IPH_LEN + PING6_DATALEN;
UIP_IP_BUF->len[0] = (uint8_t)((uip_len - 40) >> 8); UIP_IP_BUF->len[0] = (uint8_t)((uip_len - 40) >> 8);
UIP_IP_BUF->len[1] = (uint8_t)((uip_len - 40) & 0x00FF); UIP_IP_BUF->len[1] = (uint8_t)((uip_len - 40) & 0x00FF);
UIP_ICMP_BUF->icmpchksum = 0; UIP_ICMP_BUF->icmpchksum = 0;
UIP_ICMP_BUF->icmpchksum = ~uip_icmp6chksum(); UIP_ICMP_BUF->icmpchksum = ~uip_icmp6chksum();
tcpip_ipv6_output(); tcpip_ipv6_output();
} }
#if defined(__AVR_ATmega128RFA1__) #if defined(__AVR_ATmega128RFA1__)
@ -178,7 +178,7 @@ char serial_char_received;
* *
* Until someone figures out how to get UART to wake from powerdown, * Until someone figures out how to get UART to wake from powerdown,
* a three second powersave cycle is used with exit based on any character received. * a three second powersave cycle is used with exit based on any character received.
* The system clock is adjusted to reflect the sleep time. * The system clock is adjusted to reflect the sleep time.
*/ */
@ -205,7 +205,7 @@ void micro_sleep(uint8_t howlong)
SREG = saved_sreg; // Restore interrupt state. SREG = saved_sreg; // Restore interrupt state.
// UCSR(USART,B)&= ~(1<<RXCIE(USART)) // Disable the RX Complete interrupt; // UCSR(USART,B)&= ~(1<<RXCIE(USART)) // Disable the RX Complete interrupt;
// UCSR0B|=(1<<RXCIE0); // Enable UART0 RX complete interrupt // UCSR0B|=(1<<RXCIE0); // Enable UART0 RX complete interrupt
// UCSR1B|=(1<<RXCIE1); // Enable UART1 RX complete interrupt // UCSR1B|=(1<<RXCIE1); // Enable UART1 RX complete interrupt
// TCNT2 = 0; // Reset TIMER2 timer counter value. // TCNT2 = 0; // Reset TIMER2 timer counter value.
// while(ASSR & (1 << TCN2UB)); // Wait for TCNT2 write to finish before entering sleep. // while(ASSR & (1 << TCN2UB)); // Wait for TCNT2 write to finish before entering sleep.
// TIMSK2 |= (1 << OCIE2A); // Enable TIMER2 output compare interrupt. // TIMSK2 |= (1 << OCIE2A); // Enable TIMER2 output compare interrupt.
@ -263,7 +263,7 @@ ISR(TIMER2_COMPA_vect)
#if DEBUGSERIAL #if DEBUGSERIAL
uint8_t serialcount; uint8_t serialcount;
char dbuf[30]; char dbuf[30];
#endif #endif
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
extern uint16_t ledtimer; extern uint16_t ledtimer;
@ -271,7 +271,7 @@ static uint8_t
raven_gui_loop(process_event_t ev, process_data_t data) raven_gui_loop(process_event_t ev, process_data_t data)
{ {
uint8_t i,activeconnections,radio_state; uint8_t i,activeconnections,radio_state;
// PRINTF("\nevent %d ",ev); // PRINTF("\nevent %d ",ev);
#if DEBUGSERIAL #if DEBUGSERIAL
printf_P(PSTR("Buffer [%d]="),serialcount); printf_P(PSTR("Buffer [%d]="),serialcount);
@ -304,7 +304,7 @@ raven_gui_loop(process_event_t ev, process_data_t data)
break; break;
} else switch (ev) { } else switch (ev) {
case SERIAL_CMD: case SERIAL_CMD:
/* Check for command from serial port, execute it. */ /* Check for command from serial port, execute it. */
/* Note cmd frame is written in an interrupt - delays here can cause overwriting by next command */ /* Note cmd frame is written in an interrupt - delays here can cause overwriting by next command */
PRINTF("\nCommand %d length %d done %d",cmd.cmd,cmd.len,cmd.done); PRINTF("\nCommand %d length %d done %d",cmd.cmd,cmd.len,cmd.done);
@ -373,7 +373,7 @@ raven_gui_loop(process_event_t ev, process_data_t data)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* Process an input character from serial port. /* Process an input character from serial port.
* ** This is called from an ISR!! * ** This is called from an ISR!!
*/ */
@ -388,7 +388,7 @@ int raven_lcd_serial_input(unsigned char ch)
#endif #endif
/* Don't overwrite an unprocessed command */ /* Don't overwrite an unprocessed command */
// if (cmd.done) return 0; // if (cmd.done) return 0;
/* Parse frame, */ /* Parse frame, */
switch (cmd.ndx){ switch (cmd.ndx){
case 0: case 0:
@ -402,7 +402,7 @@ int raven_lcd_serial_input(unsigned char ch)
return 0; return 0;
} }
break; break;
case 1: case 1:
/* Second byte, length of payload */ /* Second byte, length of payload */
cmd.len = ch; cmd.len = ch;
break; break;
@ -441,7 +441,7 @@ int raven_lcd_serial_input(unsigned char ch)
} }
break; break;
} }
cmd.ndx++; cmd.ndx++;
return 0; return 0;
} }
@ -458,7 +458,7 @@ raven_lcd_show_text(char *text) {
static void static void
lcd_show_servername(void) { lcd_show_servername(void) {
//extern uint8_t mac_address[8]; //These are defined in httpd-fsdata.c via makefsdata.h //extern uint8_t mac_address[8]; //These are defined in httpd-fsdata.c via makefsdata.h
extern uint8_t server_name[16]; extern uint8_t server_name[16];
//extern uint8_t domain_name[30]; //extern uint8_t domain_name[30];
char buf[sizeof(server_name)+1]; char buf[sizeof(server_name)+1];
@ -480,14 +480,15 @@ PROCESS_THREAD(raven_lcd_process, ev, data)
/* Get ICMP6 callbacks from uip6 stack, perform 3290p action on pings, responses, etc. */ /* Get ICMP6 callbacks from uip6 stack, perform 3290p action on pings, responses, etc. */
if(icmp6_new(NULL) == 0) { if(icmp6_new(NULL) == 0) {
while(1) { while(1) {
PROCESS_YIELD(); PROCESS_YIELD();
// if (ev != ?) //trap frequent strobes? // if (ev != ?) //trap frequent strobes?
raven_gui_loop(ev, data); raven_gui_loop(ev, data);
} }
} }
PROCESS_END(); PROCESS_END();
} }
/** @} */ /** @} */
/** @} */

View file

@ -34,13 +34,13 @@
* \brief This module contains code to interface a Contiki-based * \brief This module contains code to interface a Contiki-based
* project on the AVR Raven platform's ATMega1284P chip to the LCD * project on the AVR Raven platform's ATMega1284P chip to the LCD
* driver chip (ATMega3290P) on the Raven. * driver chip (ATMega3290P) on the Raven.
* *
* \author Blake Leverett <bleverett@gmail.com> * \author Blake Leverett <bleverett@gmail.com>
* *
*/ */
/** \addtogroup raven /** \addtogroup raven
* @{ * @{
*/ */
/** /**
@ -121,7 +121,7 @@ raven_ping6(void)
} else { } else {
// uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x5FFF,0x007D,0x02D0,0xB7FF,0xFE23,0xE6DB); //?.cisco.com // uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x5FFF,0x007D,0x02D0,0xB7FF,0xFE23,0xE6DB); //?.cisco.com
uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x0000,0x0010,0x0250,0x8bff,0xfee8,0xf800); //six.cisco.com uip_ip6addr(&UIP_IP_BUF->destipaddr,0x2001,0x0420,0x0000,0x0010,0x0250,0x8bff,0xfee8,0xf800); //six.cisco.com
} }
#else #else
uip_ipaddr_copy(&UIP_IP_BUF->destipaddr, uip_ds6_defrt_choose()); //the default router uip_ipaddr_copy(&UIP_IP_BUF->destipaddr, uip_ds6_defrt_choose()); //the default router
#endif #endif
@ -134,16 +134,16 @@ raven_ping6(void)
/* put one byte of data */ /* put one byte of data */
memset((void *)UIP_ICMP_BUF + UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN, memset((void *)UIP_ICMP_BUF + UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN,
count, PING6_DATALEN); count, PING6_DATALEN);
uip_len = UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN + UIP_IPH_LEN + PING6_DATALEN; uip_len = UIP_ICMPH_LEN + UIP_ICMP6_ECHO_REQUEST_LEN + UIP_IPH_LEN + PING6_DATALEN;
UIP_IP_BUF->len[0] = (uint8_t)((uip_len - 40) >> 8); UIP_IP_BUF->len[0] = (uint8_t)((uip_len - 40) >> 8);
UIP_IP_BUF->len[1] = (uint8_t)((uip_len - 40) & 0x00FF); UIP_IP_BUF->len[1] = (uint8_t)((uip_len - 40) & 0x00FF);
UIP_ICMP_BUF->icmpchksum = 0; UIP_ICMP_BUF->icmpchksum = 0;
UIP_ICMP_BUF->icmpchksum = ~uip_icmp6chksum(); UIP_ICMP_BUF->icmpchksum = ~uip_icmp6chksum();
tcpip_ipv6_output(); tcpip_ipv6_output();
} }
@ -170,7 +170,7 @@ char serial_char_received;
* *
* Until someone figures out how to get UART to wake from powerdown, * Until someone figures out how to get UART to wake from powerdown,
* a three second powersave cycle is used with exit based on any character received. * a three second powersave cycle is used with exit based on any character received.
* The system clock is adjusted to reflect the sleep time. * The system clock is adjusted to reflect the sleep time.
*/ */
@ -197,7 +197,7 @@ void micro_sleep(uint8_t howlong)
SREG = saved_sreg; // Restore interrupt state. SREG = saved_sreg; // Restore interrupt state.
// UCSR(USART,B)&= ~(1<<RXCIE(USART)) // Disable the RX Complete interrupt; // UCSR(USART,B)&= ~(1<<RXCIE(USART)) // Disable the RX Complete interrupt;
// UCSR0B|=(1<<RXCIE0); // Enable UART0 RX complete interrupt // UCSR0B|=(1<<RXCIE0); // Enable UART0 RX complete interrupt
// UCSR1B|=(1<<RXCIE1); // Enable UART1 RX complete interrupt // UCSR1B|=(1<<RXCIE1); // Enable UART1 RX complete interrupt
// TCNT2 = 0; // Reset TIMER2 timer counter value. // TCNT2 = 0; // Reset TIMER2 timer counter value.
// while(ASSR & (1 << TCN2UB)); // Wait for TCNT2 write to finish before entering sleep. // while(ASSR & (1 << TCN2UB)); // Wait for TCNT2 write to finish before entering sleep.
// TIMSK2 |= (1 << OCIE2A); // Enable TIMER2 output compare interrupt. // TIMSK2 |= (1 << OCIE2A); // Enable TIMER2 output compare interrupt.
@ -254,14 +254,14 @@ ISR(TIMER2_COMPA_vect)
#if DEBUGSERIAL #if DEBUGSERIAL
uint8_t serialcount; uint8_t serialcount;
char dbuf[30]; char dbuf[30];
#endif #endif
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static uint8_t static uint8_t
raven_gui_loop(process_event_t ev, process_data_t data) raven_gui_loop(process_event_t ev, process_data_t data)
{ {
uint8_t i,activeconnections,radio_state; uint8_t i,activeconnections,radio_state;
// PRINTF("\nevent %d ",ev); // PRINTF("\nevent %d ",ev);
#if DEBUGSERIAL #if DEBUGSERIAL
printf_P(PSTR("Buffer [%d]="),serialcount); printf_P(PSTR("Buffer [%d]="),serialcount);
@ -291,7 +291,7 @@ raven_gui_loop(process_event_t ev, process_data_t data)
break; break;
} else switch (ev) { } else switch (ev) {
case SERIAL_CMD: case SERIAL_CMD:
/* Check for command from serial port, execute it. */ /* Check for command from serial port, execute it. */
/* Note cmd frame is written in an interrupt - delays here can cause overwriting by next command */ /* Note cmd frame is written in an interrupt - delays here can cause overwriting by next command */
PRINTF("\nCommand %d length %d done %d",cmd.cmd,cmd.len,cmd.done); PRINTF("\nCommand %d length %d done %d",cmd.cmd,cmd.len,cmd.done);
@ -366,7 +366,7 @@ raven_gui_loop(process_event_t ev, process_data_t data)
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/* Process an input character from serial port. /* Process an input character from serial port.
* ** This is called from an ISR!! * ** This is called from an ISR!!
*/ */
@ -381,7 +381,7 @@ int raven_lcd_serial_input(unsigned char ch)
#endif #endif
/* Don't overwrite an unprocessed command */ /* Don't overwrite an unprocessed command */
// if (cmd.done) return 0; // if (cmd.done) return 0;
/* Parse frame, */ /* Parse frame, */
switch (cmd.ndx){ switch (cmd.ndx){
case 0: case 0:
@ -395,7 +395,7 @@ int raven_lcd_serial_input(unsigned char ch)
return 0; return 0;
} }
break; break;
case 1: case 1:
/* Second byte, length of payload */ /* Second byte, length of payload */
cmd.len = ch; cmd.len = ch;
break; break;
@ -434,7 +434,7 @@ int raven_lcd_serial_input(unsigned char ch)
} }
break; break;
} }
cmd.ndx++; cmd.ndx++;
return 0; return 0;
} }
@ -451,7 +451,7 @@ raven_lcd_show_text(char *text) {
static void static void
lcd_show_servername(void) { lcd_show_servername(void) {
//extern uint8_t eemem_mac_address[8]; //These are defined in httpd-fsdata.c via makefsdata.h //extern uint8_t eemem_mac_address[8]; //These are defined in httpd-fsdata.c via makefsdata.h
extern uint8_t eemem_server_name[16]; extern uint8_t eemem_server_name[16];
//extern uint8_t eemem_domain_name[30]; //extern uint8_t eemem_domain_name[30];
char buf[sizeof(eemem_server_name)+1]; char buf[sizeof(eemem_server_name)+1];
@ -473,14 +473,15 @@ PROCESS_THREAD(raven_lcd_process, ev, data)
/* Get ICMP6 callbacks from uip6 stack, perform 3290p action on pings, responses, etc. */ /* Get ICMP6 callbacks from uip6 stack, perform 3290p action on pings, responses, etc. */
if(icmp6_new(NULL) == 0) { if(icmp6_new(NULL) == 0) {
while(1) { while(1) {
PROCESS_YIELD(); PROCESS_YIELD();
// if (ev != ?) //trap frequent strobes? // if (ev != ?) //trap frequent strobes?
raven_gui_loop(ev, data); raven_gui_loop(ev, data);
} }
} }
PROCESS_END(); PROCESS_END();
} }
/** @} */ /** @} */
/** @} */