Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/net/wireless/st/cw1200/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  txrx.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Datapath interface for ST-Ericsson CW1200 mac80211 drivers
 *
 * Copyright (c) 2010, ST-Ericsson
 * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
 */


#ifndef CW1200_TXRX_H
#define CW1200_TXRX_H

#include <linux/list.h>

/* extern */ struct ieee80211_hw;
/* extern */ struct sk_buff;
/* extern */ struct wsm_tx;
/* extern */ struct wsm_rx;
/* extern */ struct wsm_tx_confirm;
/* extern */ struct cw1200_txpriv;

struct tx_policy {
 union {
  __le32 tbl[3];
  u8 raw[12];
 };
 u8  defined;
 u8  usage_count;
 u8  retry_count;
 u8  uploaded;
};

struct tx_policy_cache_entry {
 struct tx_policy policy;
 struct list_head link;
};

#define TX_POLICY_CACHE_SIZE (8)
struct tx_policy_cache {
 struct tx_policy_cache_entry cache[TX_POLICY_CACHE_SIZE];
 struct list_head used;
 struct list_head free;
 spinlock_t lock; /* Protect policy cache */
};

/* ******************************************************************** */
/* TX policy cache */
/* Intention of TX policy cache is an overcomplicated WSM API.
 * Device does not accept per-PDU tx retry sequence.
 * It uses "tx retry policy id" instead, so driver code has to sync
 * linux tx retry sequences with a retry policy table in the device.
 */

void tx_policy_init(struct cw1200_common *priv);
void tx_policy_upload_work(struct work_struct *work);
void tx_policy_clean(struct cw1200_common *priv);

/* ******************************************************************** */
/* TX implementation */

u32 cw1200_rate_mask_to_wsm(struct cw1200_common *priv,
          u32 rates);
void cw1200_tx(struct ieee80211_hw *dev,
        struct ieee80211_tx_control *control,
        struct sk_buff *skb);
void cw1200_skb_dtor(struct cw1200_common *priv,
       struct sk_buff *skb,
       const struct cw1200_txpriv *txpriv);

/* ******************************************************************** */
/* WSM callbacks */

void cw1200_tx_confirm_cb(struct cw1200_common *priv,
     int link_id,
     struct wsm_tx_confirm *arg);
void cw1200_rx_cb(struct cw1200_common *priv,
    struct wsm_rx *arg,
    int link_id,
    struct sk_buff **skb_p);

/* ******************************************************************** */
/* Timeout */

void cw1200_tx_timeout(struct work_struct *work);

/* ******************************************************************** */
/* Security */
int cw1200_alloc_key(struct cw1200_common *priv);
void cw1200_free_key(struct cw1200_common *priv, int idx);
void cw1200_free_keys(struct cw1200_common *priv);
int cw1200_upload_keys(struct cw1200_common *priv);

/* ******************************************************************** */
/* Workaround for WFD test case 6.1.10 */
void cw1200_link_id_reset(struct work_struct *work);

#define CW1200_LINK_ID_GC_TIMEOUT ((unsigned long)(10 * HZ))

int cw1200_find_link_id(struct cw1200_common *priv, const u8 *mac);
int cw1200_alloc_link_id(struct cw1200_common *priv, const u8 *mac);
void cw1200_link_id_work(struct work_struct *work);
void cw1200_link_id_gc_work(struct work_struct *work);


#endif /* CW1200_TXRX_H */

Messung V0.5
C=88 H=91 G=89

¤ Dauer der Verarbeitung: 0.8 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.