linux/drivers/staging/rtl8188eu/include/osdep_service.h
<<
>>
Prefs
   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 ******************************************************************************/
  15#ifndef __OSDEP_SERVICE_H_
  16#define __OSDEP_SERVICE_H_
  17
  18#include <basic_types.h>
  19
  20#define _FAIL           0
  21#define _SUCCESS        1
  22#define RTW_RX_HANDLED  2
  23
  24#include <linux/spinlock.h>
  25#include <linux/compiler.h>
  26#include <linux/kernel.h>
  27#include <linux/errno.h>
  28#include <linux/slab.h>
  29#include <linux/module.h>
  30#include <linux/kref.h>
  31#include <linux/netdevice.h>
  32#include <linux/skbuff.h>
  33#include <linux/circ_buf.h>
  34#include <linux/uaccess.h>
  35#include <asm/byteorder.h>
  36#include <linux/atomic.h>
  37#include <linux/io.h>
  38#include <linux/mutex.h>
  39#include <linux/sem.h>
  40#include <linux/sched/signal.h>
  41#include <linux/etherdevice.h>
  42#include <linux/wireless.h>
  43#include <net/iw_handler.h>
  44#include <linux/if_arp.h>
  45#include <linux/rtnetlink.h>
  46#include <linux/delay.h>
  47#include <linux/interrupt.h>    /*  for struct tasklet_struct */
  48#include <linux/ip.h>
  49#include <linux/kthread.h>
  50
  51#include <linux/usb.h>
  52#include <linux/usb/ch9.h>
  53
  54struct  __queue {
  55        struct  list_head       queue;
  56        spinlock_t lock;
  57};
  58
  59static inline struct list_head *get_list_head(struct __queue *queue)
  60{
  61        return &(queue->queue);
  62}
  63
  64static inline int rtw_netif_queue_stopped(struct net_device *pnetdev)
  65{
  66        return  netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 0)) &&
  67                netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 1)) &&
  68                netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 2)) &&
  69                netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3));
  70}
  71
  72u8 *_rtw_malloc(u32 sz);
  73#define rtw_malloc(sz)                  _rtw_malloc((sz))
  74
  75void *rtw_malloc2d(int h, int w, int size);
  76
  77void _rtw_init_queue(struct __queue *pqueue);
  78
  79struct rtw_netdev_priv_indicator {
  80        void *priv;
  81};
  82struct net_device *rtw_alloc_etherdev_with_old_priv(void *old_priv);
  83
  84#define rtw_netdev_priv(netdev)                                 \
  85        (((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv)
  86void rtw_free_netdev(struct net_device *netdev);
  87
  88#define FUNC_NDEV_FMT "%s(%s)"
  89#define FUNC_NDEV_ARG(ndev) __func__, ndev->name
  90#define FUNC_ADPT_FMT "%s(%s)"
  91#define FUNC_ADPT_ARG(adapter) __func__, adapter->pnetdev->name
  92
  93u64 rtw_modular64(u64 x, u64 y);
  94
  95/* Macros for handling unaligned memory accesses */
  96
  97#define RTW_GET_BE24(a) ((((u32)(a)[0]) << 16) | (((u32) (a)[1]) << 8) | \
  98                         ((u32)(a)[2]))
  99
 100void rtw_buf_free(u8 **buf, u32 *buf_len);
 101void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len);
 102#endif
 103