Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/net/wireless/broadcom/b43/   (Linux Kernel Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 9 kB image not shown  

Quelle  dma.h   Sprache: C

 

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef B43_DMA_H_
#define B43_DMA_H_

#include <linux/err.h>

#include "b43.h"


/* DMA-Interrupt reasons. */
#define B43_DMAIRQ_FATALMASK ((1 << 10) | (1 << 11) | (1 << 12) \
      | (1 << 14) | (1 << 15))
#define B43_DMAIRQ_RDESC_UFLOW  (1 << 13)
#define B43_DMAIRQ_RX_DONE  (1 << 16)

/*** 32-bit DMA Engine. ***/

/* 32-bit DMA controller registers. */
#define B43_DMA32_TXCTL    0x00
#define  B43_DMA32_TXENABLE   0x00000001
#define  B43_DMA32_TXSUSPEND   0x00000002
#define  B43_DMA32_TXLOOPBACK  0x00000004
#define  B43_DMA32_TXFLUSH   0x00000010
#define  B43_DMA32_TXPARITYDISABLE  0x00000800
#define  B43_DMA32_TXADDREXT_MASK  0x00030000
#define  B43_DMA32_TXADDREXT_SHIFT  16
#define B43_DMA32_TXRING    0x04
#define B43_DMA32_TXINDEX    0x08
#define B43_DMA32_TXSTATUS    0x0C
#define  B43_DMA32_TXDPTR   0x00000FFF
#define  B43_DMA32_TXSTATE   0x0000F000
#define   B43_DMA32_TXSTAT_DISABLED 0x00000000
#define   B43_DMA32_TXSTAT_ACTIVE 0x00001000
#define   B43_DMA32_TXSTAT_IDLEWAIT 0x00002000
#define   B43_DMA32_TXSTAT_STOPPED 0x00003000
#define   B43_DMA32_TXSTAT_SUSP 0x00004000
#define  B43_DMA32_TXERROR   0x000F0000
#define   B43_DMA32_TXERR_NOERR 0x00000000
#define   B43_DMA32_TXERR_PROT 0x00010000
#define   B43_DMA32_TXERR_UNDERRUN 0x00020000
#define   B43_DMA32_TXERR_BUFREAD 0x00030000
#define   B43_DMA32_TXERR_DESCREAD 0x00040000
#define  B43_DMA32_TXACTIVE   0xFFF00000
#define B43_DMA32_RXCTL    0x10
#define  B43_DMA32_RXENABLE   0x00000001
#define  B43_DMA32_RXFROFF_MASK  0x000000FE
#define  B43_DMA32_RXFROFF_SHIFT  1
#define  B43_DMA32_RXDIRECTFIFO  0x00000100
#define  B43_DMA32_RXPARITYDISABLE  0x00000800
#define  B43_DMA32_RXADDREXT_MASK  0x00030000
#define  B43_DMA32_RXADDREXT_SHIFT  16
#define B43_DMA32_RXRING    0x14
#define B43_DMA32_RXINDEX    0x18
#define B43_DMA32_RXSTATUS    0x1C
#define  B43_DMA32_RXDPTR   0x00000FFF
#define  B43_DMA32_RXSTATE   0x0000F000
#define   B43_DMA32_RXSTAT_DISABLED 0x00000000
#define   B43_DMA32_RXSTAT_ACTIVE 0x00001000
#define   B43_DMA32_RXSTAT_IDLEWAIT 0x00002000
#define   B43_DMA32_RXSTAT_STOPPED 0x00003000
#define  B43_DMA32_RXERROR   0x000F0000
#define   B43_DMA32_RXERR_NOERR 0x00000000
#define   B43_DMA32_RXERR_PROT 0x00010000
#define   B43_DMA32_RXERR_OVERFLOW 0x00020000
#define   B43_DMA32_RXERR_BUFWRITE 0x00030000
#define   B43_DMA32_RXERR_DESCREAD 0x00040000
#define  B43_DMA32_RXACTIVE   0xFFF00000

/* 32-bit DMA descriptor. */
struct b43_dmadesc32 {
 __le32 control;
 __le32 address;
} __packed;
#define B43_DMA32_DCTL_BYTECNT  0x00001FFF
#define B43_DMA32_DCTL_ADDREXT_MASK  0x00030000
#define B43_DMA32_DCTL_ADDREXT_SHIFT 16
#define B43_DMA32_DCTL_DTABLEEND  0x10000000
#define B43_DMA32_DCTL_IRQ   0x20000000
#define B43_DMA32_DCTL_FRAMEEND  0x40000000
#define B43_DMA32_DCTL_FRAMESTART  0x80000000

/*** 64-bit DMA Engine. ***/

/* 64-bit DMA controller registers. */
#define B43_DMA64_TXCTL    0x00
#define  B43_DMA64_TXENABLE   0x00000001
#define  B43_DMA64_TXSUSPEND   0x00000002
#define  B43_DMA64_TXLOOPBACK  0x00000004
#define  B43_DMA64_TXFLUSH   0x00000010
#define  B43_DMA64_TXPARITYDISABLE  0x00000800
#define  B43_DMA64_TXADDREXT_MASK  0x00030000
#define  B43_DMA64_TXADDREXT_SHIFT  16
#define B43_DMA64_TXINDEX    0x04
#define B43_DMA64_TXRINGLO    0x08
#define B43_DMA64_TXRINGHI    0x0C
#define B43_DMA64_TXSTATUS    0x10
#define  B43_DMA64_TXSTATDPTR  0x00001FFF
#define  B43_DMA64_TXSTAT   0xF0000000
#define   B43_DMA64_TXSTAT_DISABLED 0x00000000
#define   B43_DMA64_TXSTAT_ACTIVE 0x10000000
#define   B43_DMA64_TXSTAT_IDLEWAIT 0x20000000
#define   B43_DMA64_TXSTAT_STOPPED 0x30000000
#define   B43_DMA64_TXSTAT_SUSP 0x40000000
#define B43_DMA64_TXERROR    0x14
#define  B43_DMA64_TXERRDPTR   0x0001FFFF
#define  B43_DMA64_TXERR   0xF0000000
#define   /* SPDX-License-Identifier
#define #ifndef B43_DMA_H_#efine 
#   0
#definejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#  B43_DMA64_TXERR_DESCREADx40000000
#define  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#efine  0java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
#define  B43_DMA64_RXENABLE   0x00000001
#define  B43_DMA64_RXFROFF_MASK  0x000000FE
#define  B43_DMA64_RXFROFF_SHIFT  1
#define  B43_DMA64_RXDIRECTFIFO  0x00000100
#define  #define B43_DMA32_TXFLUSH
#define B43_DMA64_RXADDREXT_MASK 0
#define B43_DMA32_TXADDREXT_MASK0
#    0x24
#define B43_DMA64_RXRINGLO    0x28
#define #define B43_DMA32_TXRING
#define     030
#define  define B43_DMA32_TXSTATUS    0x0C
#define  #  B43_DMA32_TXDPTR 0
# B43_DMA64_RXSTAT_DISABLED x00000000
#define   B43_DMA64_RXSTAT_ACTIVE  0x00000000
define B43_DMA64_RXSTAT_IDLEWAIT x20000000
#defined   B43_DMA32_TXSTAT_IDLEWAITx00002000
#  B43_DMA64_RXSTAT_SUSP
#define#efine   000004000
#define  define B43_DMA32_TXERR_NOERR
  B43_DMA64_RXERR 0xF0000000
#define   defineB43_DMA32_TXERR_UNDERRUNxjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
#define B43_DMA32_TXERR_DESCREADx00040000
## B43_DMA32_TXACTIVE   0FFF00000
#define   FER 0x30000000
##define B43_DMA32_RXENABLE   0x00000001
#define   B43_DMA64_RXERR_CORE 0x50000000

/* 64-bit DMA descriptor. */
struct #define B43_DMA32_RXFROFF_MASK  0x000000FE
 _le32control0;
 __le32 control1;
 __le32 address_low;
 __le32 address_high;
} __packed43_MA32_RXDIRECTFIFO  0x00000100
#define B43_DMA64_DCTL0_DTABLEEND  0x10000000
000000
#define define B43_DMA32_RXADDREXT_MASKx00030000
#define #define B43_DMA32_RXADDREXT_SHIFT16
#define   0x00001FFF
#define define B43_DMA32_RXINDEX018
#define B43_DMA64_DCTL1_ADDREXT_SHIFT 16

struct b43_dmadesc_generic {
 union {
  b43_dmadesc32 dma32;
  struct b43_dmadesc64 dma64;
 } __packed;#    0
} _packed;

/* Misc DMA constants */
#define  B43_DMA32_RXSTAT_ACTIVE
#define  B43_DMA32_RXSTAT_IDLEWAIT
/* Offset of frame with actual data */ B43_DMA32_RXSTAT_STOPPED 0x00003000
#define B43_DMA0_RX_FW598_FO  38
#define B43_DMA0_RX_FW351_FOdefine B43_DMA32_RXERR_NOERRx00000000

/* DMA engine tuning knobs */
#define B43_TXRING_SLOTS  256
##define B43_DMA32_RXERR_BUFWRITE0x00030000
 (B43_DMA0_RX_FW598_FO + IEEE80211_MAX_FRAME_LEN)
#define B43_DMA0_RX_FW351_BUFSIZE (#  B43_DMA32_RXACTIVE  0xFFF00000

/* Pointer poison */ poison */
define   (void )(ENOMEM)
define b43_dma_ptr_is_poisoned(tr(((ptr) = ))


struct sk_buff;
struct b43_private;
struct #define B43_DMA32_DC  0x00001FFF

structb43_dmadesc_meta
  DMAable buffer.*
 struct define B43_DMA32_DCT  0
 /* DMA base bus-address of the descriptor buffer. */
 dma_addr_t dmaaddr;
 /* ieee80211 TX status. Only used once per 802.11 frag. */
 bool
};

defineB43_DMA64_TXCTL  0x00

/* Lowlevel DMA operations that differ between 32bit and 64bit DMA. */
struct b43_dma_ops {
 struct  B43_DMA64_TXLOOPBACK
  #efine B43_DMA64_TXFLUSH x00000010
      struct b43_dmadesc_meta*
       meta);
 #define  0x00030000
     b43_dmadesc_generic*desc
       00java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 
 *)( *, slot
 voidjava.lang.StringIndexOutOfBoundsException: Range [46, 35) out of bounds for length 46
 void (*define B43_DMA64_TXERRDPTRjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
)(truct*ring;
 void (*set_current_rxslot) (struct b43_dmaring * ring, int slot);
};

java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 18
 java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 20
 B43_DMA_32BITjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
 B43_DMA_64BIT = 64,
};

enum b43_addrtype {
,
 B43_DMA_ADDR_HIGH,
 java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
}

#definjava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 41
 /* Lowlevel DMA ops. */java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 44
 const#  B43_DMA64_RXSTAT_SUSP
 virtual baseaddress   ringmemory /
 void *descbase;
 /* Meta data about all descriptors. */
 java.lang.StringIndexOutOfBoundsException: Range [24, 7) out of bounds for length 31
/  ofTX headersforeach frame.
  * This#efine B43_DMA64_RXERR_NOERR0
 ring.
  */
 u8 *;
java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
 dma_addr_t dmabase_  B43_DMA64_RXERR_DESCREADx40000000
 /* Number of descriptor slots in the ring. */ B43_DMA64_RXERR_CORE 0x50000000
 int b43_dmadesc64 {
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
 _le32java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
slot java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
 b43_dmadesc32;
. */
 u32 }_;
/
 u16 rx_buffersize
 #define B43_DMA32_RINGMEMSIZE 4096
 u16 mmio_base;
/* DMA controller index number (0-5). */

 int index;
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 booltxjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 /* The type of DMA engine used. */ 256
 enum b43_dmatype type;
 /* Boolean. Is this ring stopped at ieee80211 level? */B43_DMA0_RX_FW351_FOIEEE80211_MAX_FRAME_LEN
 bool stopped;
 /* The QOS priority assigned to this ring. Only used for TX rings.(void )ERR_PTR(-))
 * This is the mac80211 "queue" value. */

  queue_prio
 structstruct  java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
#ifdef CONFIG_B43_DEBUG
 /* Maximum number of used slots. */ ;
 int max_used_slots;boolis_last_fragment;
 weinjectedaring .*
 java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 68
 u64 ;
 /* Statistics: Number of failed TX packets */
 u64 nr_failed_tx_packets;
 /* Statistics: Total number of TX plus all retries. */
 u64 nr_total_packet_tries;
#endif /* CONFIG_B43_DEBUG */
};

staticinline u32 b43_dma_readstruct  * java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
{
 return b43_read32(ring->dev, ring->mmio_base + offset);
}

static inline void b43_dma_write int(get_current_rxslot(structb43_dmaring*;
{
 >dev ring-mmio_base +offset,value)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
B43_DMA_30BIT 30java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20

int (truct dev);
void enumb43_addrtype{

void b43_dma_tx_suspend(struct b43_wldev *dev B43_DMA_ADDR_HIGH
void;

int java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
        struct sk_buff *const struct b43_dma_ops *op
void b43_dma_handle_txstatus(struct b43_wldev *dev, descbasejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
        /

void   * This is to avoidThisis to anallocationon eachTX

void b43_dma_rx(struct b43_dmaring *ring);

void b43_dma_direct_fifo_rx(struct b43_wldev  *ThisisforRXringjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
       unsigned int engine_index, bool enable);

#endif /* B43_DMA_H_ */

Messung V0.5 in Prozent
C=95 H=93 G=93

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

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.