/[lwip]/lwip/src/netif/slipif.c
ViewVC logotype

Diff of /lwip/src/netif/slipif.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9 by jani, Mon Mar 24 10:54:03 2003 UTC revision 1.10 by likewise, Thu May 1 13:24:01 2003 UTC
# Line 69  slipif_output(struct netif *netif, struc Line 69  slipif_output(struct netif *netif, struc
69    for(q = p; q != NULL; q = q->next) {    for(q = p; q != NULL; q = q->next) {
70      for(i = 0; i < q->len; i++) {      for(i = 0; i < q->len; i++) {
71        c = ((u8_t *)q->payload)[i];        c = ((u8_t *)q->payload)[i];
72        switch(c) {        switch (c) {
73        case SLIP_END:        case SLIP_END:
74          sio_send(SLIP_ESC, netif->state);          sio_send(SLIP_ESC, netif->state);
75          sio_send(SLIP_ESC_END, netif->state);          sio_send(SLIP_ESC_END, netif->state);
# Line 107  slipif_input( struct netif * netif ) Line 107  slipif_input( struct netif * netif )
107    recved = i = 0;    recved = i = 0;
108    c = 0;    c = 0;
109    
110    while(1) {    while (1) {
111      c = sio_recv(netif->state);      c = sio_recv(netif->state);
112      switch(c) {      switch (c) {
113      case SLIP_END:      case SLIP_END:
114        if(recved > 0) {        if (recved > 0) {
115          /* Received whole packet. */          /* Received whole packet. */
116          pbuf_realloc(q, recved);          pbuf_realloc(q, recved);
117                    
# Line 126  slipif_input( struct netif * netif ) Line 126  slipif_input( struct netif * netif )
126    
127      case SLIP_ESC:      case SLIP_ESC:
128        c = sio_recv(netif->state);        c = sio_recv(netif->state);
129        switch(c) {        switch (c) {
130        case SLIP_ESC_END:        case SLIP_ESC_END:
131          c = SLIP_END;          c = SLIP_END;
132          break;          break;
# Line 137  slipif_input( struct netif * netif ) Line 137  slipif_input( struct netif * netif )
137        /* FALLTHROUGH */        /* FALLTHROUGH */
138                
139      default:      default:
140        if(p == NULL) {        if (p == NULL) {
141          DEBUGF(SLIP_DEBUG, ("slipif_input: alloc\n"));          DEBUGF(SLIP_DEBUG, ("slipif_input: alloc\n"));
142          p = pbuf_alloc(PBUF_LINK, PBUF_POOL_BUFSIZE, PBUF_POOL);          p = pbuf_alloc(PBUF_LINK, PBUF_POOL_BUFSIZE, PBUF_POOL);
143    
144  #ifdef LINK_STATS            #ifdef LINK_STATS          
145          if(p == NULL) {          if (p == NULL) {
146            ++lwip_stats.link.drop;            ++lwip_stats.link.drop;
147            DEBUGF(SLIP_DEBUG, ("slipif_input: no new pbuf! (DROP)\n"));            DEBUGF(SLIP_DEBUG, ("slipif_input: no new pbuf! (DROP)\n"));
148          }          }
149  #endif /* LINK_STATS */                    #endif /* LINK_STATS */                  
150                    
151          if(q != NULL) {          if (q != NULL) {
152            pbuf_chain(q, p);            pbuf_chain(q, p);
153          } else {          } else {
154            q = p;            q = p;
155          }          }
156        }        }
157        if(p != NULL && recved < MAX_SIZE) {        if (p != NULL && recved < MAX_SIZE) {
158          ((u8_t *)p->payload)[i] = c;          ((u8_t *)p->payload)[i] = c;
159          recved++;          recved++;
160          i++;          i++;
161          if(i >= p->len) {          if (i >= p->len) {
162            i = 0;            i = 0;
163            p = NULL;            p = NULL;
164          }          }
# Line 181  slipif_loop(void *nf) Line 181  slipif_loop(void *nf)
181    struct pbuf *p;    struct pbuf *p;
182    struct netif *netif = (struct netif *)nf;    struct netif *netif = (struct netif *)nf;
183    
184    while(1) {    while (1) {
185      p = slipif_input(netif);      p = slipif_input(netif);
186      netif->input(p, netif);      netif->input(p, netif);
187    }    }

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26