osdep_service.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of version 2 of the GNU General Public License as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. * You should have received a copy of the GNU General Public License along with
  15. * this program; if not, write to the Free Software Foundation, Inc.,
  16. * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  17. *
  18. *
  19. ******************************************************************************/
  20. #ifndef __OSDEP_SERVICE_H_
  21. #define __OSDEP_SERVICE_H_
  22. #include <basic_types.h>
  23. #define _FAIL 0
  24. #define _SUCCESS 1
  25. #define RTW_RX_HANDLED 2
  26. #include <linux/spinlock.h>
  27. #include <linux/compiler.h>
  28. #include <linux/kernel.h>
  29. #include <linux/errno.h>
  30. #include <linux/slab.h>
  31. #include <linux/module.h>
  32. #include <linux/kref.h>
  33. #include <linux/netdevice.h>
  34. #include <linux/skbuff.h>
  35. #include <linux/circ_buf.h>
  36. #include <linux/uaccess.h>
  37. #include <asm/byteorder.h>
  38. #include <linux/atomic.h>
  39. #include <linux/io.h>
  40. #include <linux/semaphore.h>
  41. #include <linux/sem.h>
  42. #include <linux/sched.h>
  43. #include <linux/etherdevice.h>
  44. #include <linux/wireless.h>
  45. #include <net/iw_handler.h>
  46. #include <linux/if_arp.h>
  47. #include <linux/rtnetlink.h>
  48. #include <linux/delay.h>
  49. #include <linux/proc_fs.h> /* Necessary because we use the proc fs */
  50. #include <linux/interrupt.h> /* for struct tasklet_struct */
  51. #include <linux/ip.h>
  52. #include <linux/kthread.h>
  53. #include <linux/usb.h>
  54. #include <linux/usb/ch9.h>
  55. struct __queue {
  56. struct list_head queue;
  57. spinlock_t lock;
  58. };
  59. static inline struct list_head *get_list_head(struct __queue *queue)
  60. {
  61. return &(queue->queue);
  62. }
  63. static inline int rtw_netif_queue_stopped(struct net_device *pnetdev)
  64. {
  65. return netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 0)) &&
  66. netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 1)) &&
  67. netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 2)) &&
  68. netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3));
  69. }
  70. int RTW_STATUS_CODE(int error_code);
  71. #define rtw_update_mem_stat(flag, sz) do {} while (0)
  72. u8 *_rtw_malloc(u32 sz);
  73. #define rtw_malloc(sz) _rtw_malloc((sz))
  74. void *rtw_malloc2d(int h, int w, int size);
  75. u32 _rtw_down_sema(struct semaphore *sema);
  76. void _rtw_init_queue(struct __queue *pqueue);
  77. s32 rtw_get_passing_time_ms(u32 start);
  78. struct rtw_netdev_priv_indicator {
  79. void *priv;
  80. u32 sizeof_priv;
  81. };
  82. struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv,
  83. void *old_priv);
  84. #define rtw_netdev_priv(netdev) \
  85. (((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv)
  86. void rtw_free_netdev(struct net_device *netdev);
  87. #define NDEV_FMT "%s"
  88. #define NDEV_ARG(ndev) ndev->name
  89. #define ADPT_FMT "%s"
  90. #define ADPT_ARG(adapter) adapter->pnetdev->name
  91. #define FUNC_NDEV_FMT "%s(%s)"
  92. #define FUNC_NDEV_ARG(ndev) __func__, ndev->name
  93. #define FUNC_ADPT_FMT "%s(%s)"
  94. #define FUNC_ADPT_ARG(adapter) __func__, adapter->pnetdev->name
  95. u64 rtw_modular64(u64 x, u64 y);
  96. /* Macros for handling unaligned memory accesses */
  97. #define RTW_GET_BE24(a) ((((u32)(a)[0]) << 16) | (((u32) (a)[1]) << 8) | \
  98. ((u32)(a)[2]))
  99. void rtw_buf_free(u8 **buf, u32 *buf_len);
  100. void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len);
  101. #endif