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

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _ENET_H
  2. #define _ENET_H
  3. /* Generic Ethernet constants and templates */
  4. #ifndef _GLOBAL_H
  5. #include "global.h"
  6. #endif
  7. #ifndef _MBUF_H
  8. #include "mbuf.h"
  9. #endif
  10. #ifndef _IFACE_H
  11. #include "iface.h"
  12. #endif
  13. #define EADDR_LEN 6
  14. /* Format of an Ethernet header */
  15. struct ether {
  16. uint8 dest[EADDR_LEN];
  17. uint8 source[EADDR_LEN];
  18. uint16 type;
  19. };
  20. #define ETHERLEN 14
  21. /* Ethernet broadcast address */
  22. extern uint8 Ether_bdcst[];
  23. /* Ethernet type fields */
  24. #define IP_TYPE 0x800 /* Type field for IP */
  25. #define ARP_TYPE 0x806 /* Type field for ARP */
  26. #define REVARP_TYPE 0x8035 /* Type field for reverse ARP */
  27. #define RUNT 60 /* smallest legal size packet, no fcs */
  28. #define GIANT 1514 /* largest legal size packet, no fcs */
  29. #define MAXTRIES 16 /* Maximum number of transmission attempts */
  30. /* In file enet.c: */
  31. char *pether(char *out,uint8 *addr);
  32. int gether(uint8 *out,char *cp);
  33. int enet_send(struct mbuf **bpp,struct iface *iface,int32 gateway,uint8 tos);
  34. int enet_output(struct iface *iface,uint8 dest[],uint8 source[],uint16 type,
  35. struct mbuf **bpp);
  36. void eproc(struct iface *iface,struct mbuf **bpp);
  37. /* In enethdr.c: */
  38. void htonether(struct ether *ether,struct mbuf **data);
  39. int ntohether(struct ether *ether,struct mbuf **bpp);
  40. #endif /* _ENET_H */