Skip to content

file dma.h

Types

Name
typedef void(*)(uint8_t, void *)dma_cb

Types Documentation

typedef dma_cb

cpp
typedef void(* dma_cb) (uint8_t, void *);

Source code

cpp
/********************************************************************************
 * @file       dma.h
 * @license    This file is part of the ImagineOn Coldwave eOS software package
 *             licensed under the ImagineOn software-licensing terms available
 *             under https://www.imagineon.de/de/info/licensing-terms
 * @copyright  Copyright (c) 2023. ImagineOn GmbH. www.imagineon.de.
 ********************************************************************************/

#ifndef COLDWAVEOS_DMA_H_INCLUDED
#define COLDWAVEOS_DMA_H_INCLUDED

#include <inttypes.h>
#include <driver.h>

#if defined(__cplusplus)
extern "C"
{
#endif

    typedef void (*dma_cb)(uint8_t, void*);

#ifndef EXCLUDE_FROM_DOCS
    struct dma_driver
    {
        struct driver drv;
        int (*dma_acquire_channel)(struct device*, dma_cb, void*);
        int (*dma_release_channel)(struct device*, unsigned int);
        int (*dma_acquire_syncbit)(struct device*);
        int (*dma_release_syncbit)(struct device*, uint16_t);
    };
#endif

    CW_DRIVER_FUNC
    dma_acquire_channel(int hDev, dma_cb cb, void* p) CW_DRIVER_CALL(dma, acquire_channel, hDev, cb, p);

    CW_DRIVER_FUNC
    dma_release_channel(int hDev, unsigned int channel) CW_DRIVER_CALL(dma, release_channel, hDev, channel);

    CW_DRIVER_FUNC
    dma_acquire_syncbit(int hDev)
        CW_DRIVER_CALL_VOID(dma, acquire_syncbit, hDev);

    CW_DRIVER_FUNC
    dma_release_syncbit(int hDev, uint16_t bit)
        CW_DRIVER_CALL(dma, release_syncbit, hDev, bit);

#if defined(__cplusplus)
}
#endif

#endif // COLDWAVEOS_DMA_H_INCLUDED