#include <net/mac80211.h>
#include <linux/sched.h>
#include <linux/jiffies.h>
#include "queue.h"
#include "cw1200.h"
#include "debug.h"
struct cw1200_queue_item
{ … };
static inline void __cw1200_queue_lock(struct cw1200_queue *queue)
{ … }
static inline void __cw1200_queue_unlock(struct cw1200_queue *queue)
{ … }
static inline void cw1200_queue_parse_id(u32 packet_id, u8 *queue_generation,
u8 *queue_id, u8 *item_generation,
u8 *item_id)
{ … }
static inline u32 cw1200_queue_mk_packet_id(u8 queue_generation, u8 queue_id,
u8 item_generation, u8 item_id)
{ … }
static void cw1200_queue_post_gc(struct cw1200_queue_stats *stats,
struct list_head *gc_list)
{ … }
static void cw1200_queue_register_post_gc(struct list_head *gc_list,
struct cw1200_queue_item *item)
{ … }
static void __cw1200_queue_gc(struct cw1200_queue *queue,
struct list_head *head,
bool unlock)
{ … }
static void cw1200_queue_gc(struct timer_list *t)
{ … }
int cw1200_queue_stats_init(struct cw1200_queue_stats *stats,
size_t map_capacity,
cw1200_queue_skb_dtor_t skb_dtor,
struct cw1200_common *priv)
{ … }
int cw1200_queue_init(struct cw1200_queue *queue,
struct cw1200_queue_stats *stats,
u8 queue_id,
size_t capacity,
unsigned long ttl)
{ … }
int cw1200_queue_clear(struct cw1200_queue *queue)
{ … }
void cw1200_queue_stats_deinit(struct cw1200_queue_stats *stats)
{ … }
void cw1200_queue_deinit(struct cw1200_queue *queue)
{ … }
size_t cw1200_queue_get_num_queued(struct cw1200_queue *queue,
u32 link_id_map)
{ … }
int cw1200_queue_put(struct cw1200_queue *queue,
struct sk_buff *skb,
struct cw1200_txpriv *txpriv)
{ … }
int cw1200_queue_get(struct cw1200_queue *queue,
u32 link_id_map,
struct wsm_tx **tx,
struct ieee80211_tx_info **tx_info,
const struct cw1200_txpriv **txpriv)
{ … }
int cw1200_queue_requeue(struct cw1200_queue *queue, u32 packet_id)
{ … }
int cw1200_queue_requeue_all(struct cw1200_queue *queue)
{ … }
int cw1200_queue_remove(struct cw1200_queue *queue, u32 packet_id)
{ … }
int cw1200_queue_get_skb(struct cw1200_queue *queue, u32 packet_id,
struct sk_buff **skb,
const struct cw1200_txpriv **txpriv)
{ … }
void cw1200_queue_lock(struct cw1200_queue *queue)
{ … }
void cw1200_queue_unlock(struct cw1200_queue *queue)
{ … }
bool cw1200_queue_get_xmit_timestamp(struct cw1200_queue *queue,
unsigned long *timestamp,
u32 pending_frame_id)
{ … }
bool cw1200_queue_stats_is_empty(struct cw1200_queue_stats *stats,
u32 link_id_map)
{ … }