/[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.10 by likewise, Thu May 1 13:24:01 2003 UTC revision 1.11 by likewise, Mon Jun 9 21:14:47 2003 UTC
# Line 71  slipif_output(struct netif *netif, struc Line 71  slipif_output(struct netif *netif, struc
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);
76          break;    break;
77        case SLIP_ESC:        case SLIP_ESC:
78          sio_send(SLIP_ESC, netif->state);    sio_send(SLIP_ESC, netif->state);
79          sio_send(SLIP_ESC_ESC, netif->state);    sio_send(SLIP_ESC_ESC, netif->state);
80          break;    break;
81        default:        default:
82          sio_send(c, netif->state);    sio_send(c, netif->state);
83          break;    break;
84        }        }
85      }      }
86    }    }
# Line 112  slipif_input( struct netif * netif ) Line 112  slipif_input( struct netif * netif )
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              
118  #ifdef LINK_STATS  #ifdef LINK_STATS
119          ++lwip_stats.link.recv;    ++lwip_stats.link.recv;
120  #endif /* LINK_STATS */          #endif /* LINK_STATS */        
121              
122          DEBUGF(SLIP_DEBUG, ("slipif: Got packet\n"));    DEBUGF(SLIP_DEBUG, ("slipif: Got packet\n"));
123          return q;    return q;
124        }        }
125        break;        break;
126    
# Line 128  slipif_input( struct netif * netif ) Line 128  slipif_input( struct netif * netif )
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;
133        case SLIP_ESC_ESC:        case SLIP_ESC_ESC:
134          c = SLIP_ESC;    c = SLIP_ESC;
135          break;    break;
136        }        }
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          }    }
165        }        }
166        break;        break;
167      }      }
# Line 196  slipif_loop(void *nf) Line 196  slipif_loop(void *nf)
196  err_t  err_t
197  slipif_init(struct netif *netif)  slipif_init(struct netif *netif)
198  {  {
199              
200    DEBUGF(SLIP_DEBUG, ("slipif_init: netif->num=%x\n", (int)netif->num));    DEBUGF(SLIP_DEBUG, ("slipif_init: netif->num=%x\n", (int)netif->num));
201    
202    netif->name[0] = 's';    netif->name[0] = 's';
203    netif->name[1] = 'l';    netif->name[1] = 'l';
204    netif->output = slipif_output;    netif->output = slipif_output;
205    netif->mtu = 1500;        netif->mtu = 1500;  
206    
207    netif->state = sio_open(netif->num);    netif->state = sio_open(netif->num);
208    if (!netif->state)    if (!netif->state)

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

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