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

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _NRS_H
  2. #define _NRS_H
  3. #ifndef _GLOBAL_H
  4. #include "global.h"
  5. #endif
  6. #ifndef _MBUF_H
  7. #include "mbuf.h"
  8. #endif
  9. #ifndef _IFACE_H
  10. #include "iface.h"
  11. #endif
  12. #define NRS_MAX 5 /* Maximum number of Nrs channels */
  13. /* SLIP definitions */
  14. #define NRS_ALLOC 40 /* Receiver allocation increment */
  15. #define STX 0x02 /* frame start */
  16. #define ETX 0x03 /* frame end */
  17. #define DLE 0x10 /* data link escape */
  18. #define NUL 0x0 /* null character */
  19. /* packet unstuffing state machine */
  20. #define NRS_INTER 0 /* in between packets */
  21. #define NRS_INPACK 1 /* we've seen STX, and are in a the packet */
  22. #define NRS_ESCAPE 2 /* we've seen a DLE while in NRS_INPACK */
  23. #define NRS_CSUM 3 /* we've seen an ETX, and are waiting for the checksum */
  24. /* net/rom serial protocol control structure */
  25. struct nrs {
  26. uint8 state; /* Receiver State control flag */
  27. unsigned char csum; /* Accumulating checksum */
  28. struct mbuf *rbp; /* Head of mbuf chain being filled */
  29. struct mbuf *rbp1; /* 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. long errors; /* Checksum errors detected */
  34. long packets ; /* Number of packets received successfully */
  35. struct iface *iface ; /* Associated interface structure */
  36. int (*send)(int,struct mbuf **);/* Routine to send mbufs */
  37. int (*get)(int);/* Routine to fetch input chars */
  38. };
  39. extern struct nrs Nrs[];
  40. /* In nrs.c: */
  41. int nrs_free(struct iface *ifp);
  42. int nrs_init(struct iface *ifp);
  43. int nrs_raw(struct iface *iface,struct mbuf **bpp);
  44. void nrs_recv(int dev,void *v1,void *v2);
  45. #endif /* _NRS_H */