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

Quelle  rt2x00mmio.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com>
<http://rt2x00.serialmonkey.com>

 */


/*
Module: rt2x00mmio
Abstract: Data structures for the rt2x00mmio module.
 */


#ifndef RT2X00MMIO_H
#define RT2X00MMIO_H

#include <linux/io.h>

/*
 * Register access.
 */

static inline u32 rt2x00mmio_register_read(struct rt2x00_dev *rt2x00dev,
        const unsigned int offset)
{
 return readl(rt2x00dev->csr.base + offset);
}

static inline void rt2x00mmio_register_multiread(struct rt2x00_dev *rt2x00dev,
       const unsigned int offset,
       void *value, const u32 length)
{
 memcpy_fromio(value, rt2x00dev->csr.base + offset, length);
}

static inline void rt2x00mmio_register_write(struct rt2x00_dev *rt2x00dev,
          const unsigned int offset,
          u32 value)
{
 writel(value, rt2x00dev->csr.base + offset);
}

static inline void rt2x00mmio_register_multiwrite(struct rt2x00_dev *rt2x00dev,
        const unsigned int offset,
        const void *value,
        const u32 length)
{
 __iowrite32_copy(rt2x00dev->csr.base + offset, value, length >> 2);
}

/**
 * rt2x00mmio_regbusy_read - Read from register with busy check
 * @rt2x00dev: Device pointer, see &struct rt2x00_dev.
 * @offset: Register offset
 * @field: Field to check if register is busy
 * @reg: Pointer to where register contents should be stored
 *
 * This function will read the given register, and checks if the
 * register is busy. If it is, it will sleep for a couple of
 * microseconds before reading the register again. If the register
 * is not read after a certain timeout, this function will return
 * FALSE.
 */

int rt2x00mmio_regbusy_read(struct rt2x00_dev *rt2x00dev,
       const unsigned int offset,
       const struct rt2x00_field32 field,
       u32 *reg);

/**
 * struct queue_entry_priv_mmio: Per entry PCI specific information
 *
 * @desc: Pointer to device descriptor
 * @desc_dma: DMA pointer to &desc.
 */

struct queue_entry_priv_mmio {
 __le32 *desc;
 dma_addr_t desc_dma;
};

/**
 * rt2x00mmio_rxdone - Handle RX done events
 * @rt2x00dev: Device pointer, see &struct rt2x00_dev.
 *
 * Returns true if there are still rx frames pending and false if all
 * pending rx frames were processed.
 */

bool rt2x00mmio_rxdone(struct rt2x00_dev *rt2x00dev);

/**
 * rt2x00mmio_flush_queue - Flush data queue
 * @queue: Data queue to stop
 * @drop: True to drop all pending frames.
 *
 * This will wait for a maximum of 100ms, waiting for the queues
 * to become empty.
 */

void rt2x00mmio_flush_queue(struct data_queue *queue, bool drop);

/*
 * Device initialization handlers.
 */

int rt2x00mmio_initialize(struct rt2x00_dev *rt2x00dev);
void rt2x00mmio_uninitialize(struct rt2x00_dev *rt2x00dev);

#endif /* RT2X00MMIO_H */

Messung V0.5
C=91 H=100 G=95

¤ Dauer der Verarbeitung: 0.20 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.