Program Listing for File dma_debug.h

Program Listing for File dma_debug.h#

Return to documentation for file (src/generated/structs/dma_debug.h)

#pragma once
#ifndef RP2040_STRUCTS_DMA_DEBUG_H
#define RP2040_STRUCTS_DMA_DEBUG_H

#include "../ifgen/common.h"

namespace RP2040
{

struct dma_debug
{
    /* Constant attributes. */
    static constexpr struct_id_t id = 5;
    static constexpr std::size_t size = 64;
    /* Fields. */
    uint32_t DBG_CTDREQ;
    uint32_t DBG_TCR;
    static constexpr std::size_t reserved_length = 14;
    uint32_t reserved[reserved_length];

    /* Methods. */

    inline uint8_t get_DBG_CTDREQ() volatile
    {
        return DBG_CTDREQ & 0b111111u;
    }

    inline void set_DBG_CTDREQ(uint8_t value) volatile
    {
        uint32_t curr = DBG_CTDREQ;

        curr &= ~(0b111111u);
        curr |= (value & 0b111111u);

        DBG_CTDREQ = curr;
    }
};

static_assert(sizeof(dma_debug) == dma_debug::size);
static_assert(ifgen_struct<dma_debug>);

static volatile dma_debug *const DMA_DEBUG_NULL =
    reinterpret_cast<dma_debug *>(0x00000000);

}; // namespace RP2040

#endif