ring.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* -*- linux-c -*- */
  2. #ifndef _RING_H_
  3. #define _RING_H_
  4. /*
  5.  * Copyright (C) 2001 By Joachim Martillo, Telford Tools, Inc.
  6.  *
  7.  * This program is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU General Public License
  9.  * as published by the Free Software Foundation; either version
  10.  * 2 of the License, or (at your option) any later version.
  11.  *
  12.  */
  13. #include <linux/version.h>
  14. #include <linux/pci.h>
  15. #ifdef __KERNEL__
  16. #include <linux/netdevice.h>
  17. #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
  18. #define dev_kfree_skb_irq(s) dev_kfree_skb((s))
  19. #define dev_kfree_skb_any(s) dev_kfree_skb((s))
  20. #define net_device_stats enet_statistics
  21. #define net_device device
  22. #else
  23. #define NETSTATS_VER2
  24. #endif
  25. #endif
  26. #define OWNER ((unsigned short)0x8000) /* mask for ownership bit */
  27. #define OWN_DRIVER  ((unsigned short)0x8000) /* value of owner bit == host */
  28. #define OWN_SAB ((unsigned short)0x0000) /* value of owner bit == sab or
  29.   * receive or send */
  30. #define LISTSIZE 32
  31. #define RXSIZE (8192+3)
  32. #define MAXNAMESIZE 11
  33. #define MAXSAB8253XDEVICES 256
  34. struct counters
  35. {
  36. unsigned int interruptcount;
  37. unsigned int freecount;
  38. unsigned int receivepacket;
  39. unsigned int receivebytes;
  40. unsigned int transmitpacket;
  41. unsigned int transmitbytes;  
  42. unsigned int tx_drops;
  43. unsigned int rx_drops;
  44. };
  45. typedef struct ring_descriptor
  46. {
  47. unsigned short Count;
  48. unsigned char sendcrc;
  49. unsigned char crcindex;
  50. unsigned int crc;
  51. struct sk_buff* HostVaddr;
  52. struct ring_descriptor* VNext;
  53. } RING_DESCRIPTOR;
  54. typedef struct dcontrol2
  55. {
  56. RING_DESCRIPTOR *receive;
  57. RING_DESCRIPTOR *transmit;
  58. } DCONTROL2;
  59. #endif