Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/include/linux/soc/ti/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  knav_qmss.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Keystone Navigator Queue Management Sub-System header
 *
 * Copyright (C) 2014 Texas Instruments Incorporated - https://www.ti.com
 * Author: Sandeep Nair <sandeep_n@ti.com>
 * Cyril Chemparathy <cyril@ti.com>
 * Santosh Shilimkar <santosh.shilimkar@ti.com>
 */


#ifndef __SOC_TI_KNAV_QMSS_H__
#define __SOC_TI_KNAV_QMSS_H__

#include <linux/err.h>
#include <linux/time.h>
#include <linux/atomic.h>
#include <linux/device.h>
#include <linux/fcntl.h>
#include <linux/dma-mapping.h>

/* queue types */
#define KNAV_QUEUE_QPEND ((unsigned)-2) /* interruptible qpend queue */
#define KNAV_QUEUE_ACC  ((unsigned)-3) /* Accumulated queue */
#define KNAV_QUEUE_GP  ((unsigned)-4) /* General purpose queue */

/* queue flags */
#define KNAV_QUEUE_SHARED 0x0001  /* Queue can be shared */

/**
 * enum knav_queue_ctrl_cmd - queue operations.
 * @KNAV_QUEUE_GET_ID: Get the ID number for an open queue
 * @KNAV_QUEUE_FLUSH: forcibly empty a queue if possible
 * @KNAV_QUEUE_SET_NOTIFIER: Set a notifier callback to a queue handle.
 * @KNAV_QUEUE_ENABLE_NOTIFY: Enable notifier callback for a queue handle.
 * @KNAV_QUEUE_DISABLE_NOTIFY: Disable notifier callback for a queue handle.
 * @KNAV_QUEUE_GET_COUNT: Get number of queues.
 */

enum knav_queue_ctrl_cmd {
 KNAV_QUEUE_GET_ID,
 KNAV_QUEUE_FLUSH,
 KNAV_QUEUE_SET_NOTIFIER,
 KNAV_QUEUE_ENABLE_NOTIFY,
 KNAV_QUEUE_DISABLE_NOTIFY,
 KNAV_QUEUE_GET_COUNT
};

/* Queue notifier callback prototype */
typedef void (*knav_queue_notify_fn)(void *arg);

/**
 * struct knav_queue_notify_config: Notifier configuration
 * @fn: Notifier function
 * @fn_arg: Notifier function arguments
 */

struct knav_queue_notify_config {
 knav_queue_notify_fn fn;
 void *fn_arg;
};

void *knav_queue_open(const char *name, unsigned id,
     unsigned flags);
void knav_queue_close(void *qhandle);
int knav_queue_device_control(void *qhandle,
    enum knav_queue_ctrl_cmd cmd,
    unsigned long arg);
dma_addr_t knav_queue_pop(void *qhandle, unsigned *size);
int knav_queue_push(void *qhandle, dma_addr_t dma,
    unsigned size, unsigned flags);

void *knav_pool_create(const char *name,
    int num_desc, int region_id);
void knav_pool_destroy(void *ph);
int knav_pool_count(void *ph);
void *knav_pool_desc_get(void *ph);
void knav_pool_desc_put(void *ph, void *desc);
int knav_pool_desc_map(void *ph, void *desc, unsigned size,
     dma_addr_t *dma, unsigned *dma_sz);
void *knav_pool_desc_unmap(void *ph, dma_addr_t dma, unsigned dma_sz);
dma_addr_t knav_pool_desc_virt_to_dma(void *ph, void *virt);
void *knav_pool_desc_dma_to_virt(void *ph, dma_addr_t dma);
bool knav_qmss_device_ready(void);

#endif /* __SOC_TI_KNAV_QMSS_H__ */

Messung V0.5
C=87 H=100 G=93

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