slip.h
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:2k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _SLIP_H
  2. #define _SLIP_H
  3. #ifndef _GLOBAL_H
  4. #include "global.h"
  5. #endif
  6. #ifndef _IFACE_H
  7. #include "iface.h"
  8. #endif
  9. #ifndef _SLHC_H
  10. #include "slhc.h"
  11. #endif
  12. #define SLIP_MAX 6 /* Maximum number of slip channels */
  13. /* SLIP definitions */
  14. /* Receiver allocation increment
  15.  * Make this match the medium mbuf size in mbuf.h for best performance
  16.  */
  17. #define SLIP_ALLOC 128
  18. #define FR_END 0300 /* Frame End */
  19. #define FR_ESC 0333 /* Frame Escape */
  20. #define T_FR_END 0334 /* Transposed frame end */
  21. #define T_FR_ESC 0335 /* Transposed frame escape */
  22. /* Slip protocol control structure */
  23. struct slip {
  24. struct iface *iface;
  25. uint8 escaped; /* Receiver State control flag */
  26. #define SLIP_FLAG 0x01 /* Last char was a frame escape */
  27. #define SLIP_VJCOMPR 0x02 /* TCP header compression enabled */
  28. struct mbuf *rbp_head; /* Head of mbuf chain being filled */
  29. struct mbuf *rbp_tail; /* Pointer to mbuf currently being written */
  30. uint8 *rcp; /* Write pointer */
  31. uint16 rcnt; /* Length of mbuf chain */
  32. struct mbuf *tbp; /* Transmit mbuf being sent */
  33. uint16 errors; /* Receiver input errors */
  34. int type; /* Protocol of input */
  35. int (*send)(int,struct mbuf **); /* send mbufs to device */
  36. int (*get)(int); /* fetch input chars from device */
  37. struct slcompress *slcomp; /* TCP header compression table */
  38. };
  39. /* In slip.c: */
  40. extern struct slip Slip[];
  41. void asytxdone(int dev);
  42. int slip_free(struct iface *ifp);
  43. int slip_init(struct iface *ifp);
  44. int slip_raw(struct iface *iface,struct mbuf **data);
  45. void slip_rx(int xdev,void *p1,void *p2);
  46. int slip_send(struct mbuf **bp,struct iface *iface,int32 gateway,uint8 tos);
  47. int vjslip_send(struct mbuf **bp,struct iface *iface,int32 gateway,uint8 tos);
  48. void slip_status(struct iface *iface);
  49. #endif /* _SLIP_H */