Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  tx.h   Sprache: C

 

/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/*
 * Copyright (C) 2024 Intel Corporation
 */

#ifndef __iwl_mld_tx_h__
#define __iwl_mld_tx_h__

#include "mld.h"

#define IWL_MLD_INVALID_QUEUE  0xFFFF
#define IWL_MLD_INVALID_DROP_TX  0xFFFE

/**
 * struct iwl_mld_txq - TX Queue data
 *
 * @fw_id: the fw id of this txq. Only valid when &status.allocated is true.
 * @status: bitmap of the txq status
 * @status.allocated: Indicates that the queue was allocated.
 * @status.stop_full: Indicates that the queue is full and should stop TXing.
 * @list: list pointer, for &mld::txqs_to_add
 * @tx_request: makes sure that if there are multiple threads that want to tx
 * from this txq, only one of them will do all the TXing.
 * This is needed to avoid spinning the trans txq lock, which is expensive
 */

struct iwl_mld_txq {
 /* Add here fields that need clean up on restart */
 struct_group(zeroed_on_hw_restart,
  u16 fw_id;
  struct {
   u8 allocated:1;
   u8 stop_full:1;
  } status;
 );
 struct list_head list;
 atomic_t tx_request;
 /* And here fields that survive a fw restart */
};

static inline void iwl_mld_init_txq(struct iwl_mld_txq *mld_txq)
{
 INIT_LIST_HEAD(&mld_txq->list);
 atomic_set(&mld_txq->tx_request, 0);
}

static inline struct iwl_mld_txq *
iwl_mld_txq_from_mac80211(struct ieee80211_txq *txq)
{
 return (void *)txq->drv_priv;
}

void iwl_mld_add_txqs_wk(struct wiphy *wiphy, struct wiphy_work *wk);
void iwl_mld_remove_txq(struct iwl_mld *mld, struct ieee80211_txq *txq);
void iwl_mld_add_txq_list(struct iwl_mld *mld);
void
iwl_mld_free_txq(struct iwl_mld *mld, u32 fw_sta_mask, u32 tid, u32 queue_id);
void iwl_mld_tx_from_txq(struct iwl_mld *mld, struct ieee80211_txq *txq);
void iwl_mld_handle_tx_resp_notif(struct iwl_mld *mld,
      struct iwl_rx_packet *pkt);
int iwl_mld_flush_link_sta_txqs(struct iwl_mld *mld, u32 fw_sta_id);
int iwl_mld_ensure_queue(struct iwl_mld *mld, struct ieee80211_txq *txq);

int iwl_mld_update_sta_txqs(struct iwl_mld *mld,
       struct ieee80211_sta *sta,
       u32 old_sta_mask, u32 new_sta_mask);

void iwl_mld_handle_compressed_ba_notif(struct iwl_mld *mld,
     struct iwl_rx_packet *pkt);
void iwl_mld_toggle_tx_ant(struct iwl_mld *mld, u8 *ant);

u8 iwl_mld_get_lowest_rate(struct iwl_mld *mld,
      struct ieee80211_tx_info *info,
      struct ieee80211_vif *vif);

void iwl_mld_tx_skb(struct iwl_mld *mld, struct sk_buff *skb,
      struct ieee80211_txq *txq);

#endif /* __iwl_mld_tx_h__ */

Messung V0.5 in Prozent
C=93 H=100 G=96

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet am  2026-10-11) ¤

*© Formatika GbR, Deutschland






Versionsinformation zu Columbo

Bemerkung:

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Anfrage:

Dauer der Verarbeitung:

Sekunden

sprechenden Kalenders






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

letze Version des Elbe Quellennavigators


Jenseits des Üblichen ....

Besucher

Besucher

Statistik
#Sources=1127926
#Domains=2039723