Program Listing for File busctrl.h#
↰ Return to documentation for file (src/generated/structs/busctrl.h
)
#pragma once
#include "../enums/BUSCTRL_PERFSEL0_PERFSEL0.h"
#include "../enums/BUSCTRL_PERFSEL1_PERFSEL1.h"
#include "../enums/BUSCTRL_PERFSEL2_PERFSEL2.h"
#include "../enums/BUSCTRL_PERFSEL3_PERFSEL3.h"
#include "../ifgen/common.h"
namespace RP2040
{
struct [[gnu::packed]] busctrl
{
/* Constant attributes. */
static constexpr std::size_t size = 40;
/* Fields. */
uint32_t BUS_PRIORITY;
const uint32_t BUS_PRIORITY_ACK =
{};
uint32_t PERFCTR0;
uint32_t PERFSEL0;
uint32_t PERFCTR1;
uint32_t PERFSEL1;
uint32_t PERFCTR2;
uint32_t PERFSEL2;
uint32_t PERFCTR3;
uint32_t PERFSEL3;
/* Methods. */
inline bool get_BUS_PRIORITY_PROC0() volatile
{
return BUS_PRIORITY & (1u << 0u);
}
inline void set_BUS_PRIORITY_PROC0() volatile
{
BUS_PRIORITY |= 1u << 0u;
}
inline void clear_BUS_PRIORITY_PROC0() volatile
{
BUS_PRIORITY &= ~(1u << 0u);
}
inline void toggle_BUS_PRIORITY_PROC0() volatile
{
BUS_PRIORITY ^= 1u << 0u;
}
inline bool get_BUS_PRIORITY_PROC1() volatile
{
return BUS_PRIORITY & (1u << 4u);
}
inline void set_BUS_PRIORITY_PROC1() volatile
{
BUS_PRIORITY |= 1u << 4u;
}
inline void clear_BUS_PRIORITY_PROC1() volatile
{
BUS_PRIORITY &= ~(1u << 4u);
}
inline void toggle_BUS_PRIORITY_PROC1() volatile
{
BUS_PRIORITY ^= 1u << 4u;
}
inline bool get_BUS_PRIORITY_DMA_R() volatile
{
return BUS_PRIORITY & (1u << 8u);
}
inline void set_BUS_PRIORITY_DMA_R() volatile
{
BUS_PRIORITY |= 1u << 8u;
}
inline void clear_BUS_PRIORITY_DMA_R() volatile
{
BUS_PRIORITY &= ~(1u << 8u);
}
inline void toggle_BUS_PRIORITY_DMA_R() volatile
{
BUS_PRIORITY ^= 1u << 8u;
}
inline bool get_BUS_PRIORITY_DMA_W() volatile
{
return BUS_PRIORITY & (1u << 12u);
}
inline void set_BUS_PRIORITY_DMA_W() volatile
{
BUS_PRIORITY |= 1u << 12u;
}
inline void clear_BUS_PRIORITY_DMA_W() volatile
{
BUS_PRIORITY &= ~(1u << 12u);
}
inline void toggle_BUS_PRIORITY_DMA_W() volatile
{
BUS_PRIORITY ^= 1u << 12u;
}
inline void get_BUS_PRIORITY(bool &PROC0, bool &PROC1, bool &DMA_R,
bool &DMA_W) volatile
{
uint32_t curr = BUS_PRIORITY;
PROC0 = curr & (1u << 0u);
PROC1 = curr & (1u << 4u);
DMA_R = curr & (1u << 8u);
DMA_W = curr & (1u << 12u);
}
inline void set_BUS_PRIORITY(bool PROC0, bool PROC1, bool DMA_R,
bool DMA_W) volatile
{
uint32_t curr = BUS_PRIORITY;
curr &= ~(0b1u << 0u);
curr |= (PROC0 & 0b1u) << 0u;
curr &= ~(0b1u << 4u);
curr |= (PROC1 & 0b1u) << 4u;
curr &= ~(0b1u << 8u);
curr |= (DMA_R & 0b1u) << 8u;
curr &= ~(0b1u << 12u);
curr |= (DMA_W & 0b1u) << 12u;
BUS_PRIORITY = curr;
}
inline bool get_BUS_PRIORITY_ACK_BUS_PRIORITY_ACK() volatile
{
return BUS_PRIORITY_ACK & (1u << 0u);
}
inline uint32_t get_PERFCTR0_PERFCTR0() volatile
{
return (PERFCTR0 >> 0u) & 0b111111111111111111111111u;
}
inline void set_PERFCTR0_PERFCTR0(uint32_t value) volatile
{
uint32_t curr = PERFCTR0;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
PERFCTR0 = curr;
}
inline BUSCTRL_PERFSEL0_PERFSEL0 get_PERFSEL0_PERFSEL0() volatile
{
return BUSCTRL_PERFSEL0_PERFSEL0((PERFSEL0 >> 0u) & 0b11111u);
}
inline void set_PERFSEL0_PERFSEL0(BUSCTRL_PERFSEL0_PERFSEL0 value) volatile
{
uint32_t curr = PERFSEL0;
curr &= ~(0b11111u << 0u);
curr |= (std::to_underlying(value) & 0b11111u) << 0u;
PERFSEL0 = curr;
}
inline uint32_t get_PERFCTR1_PERFCTR1() volatile
{
return (PERFCTR1 >> 0u) & 0b111111111111111111111111u;
}
inline void set_PERFCTR1_PERFCTR1(uint32_t value) volatile
{
uint32_t curr = PERFCTR1;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
PERFCTR1 = curr;
}
inline BUSCTRL_PERFSEL1_PERFSEL1 get_PERFSEL1_PERFSEL1() volatile
{
return BUSCTRL_PERFSEL1_PERFSEL1((PERFSEL1 >> 0u) & 0b11111u);
}
inline void set_PERFSEL1_PERFSEL1(BUSCTRL_PERFSEL1_PERFSEL1 value) volatile
{
uint32_t curr = PERFSEL1;
curr &= ~(0b11111u << 0u);
curr |= (std::to_underlying(value) & 0b11111u) << 0u;
PERFSEL1 = curr;
}
inline uint32_t get_PERFCTR2_PERFCTR2() volatile
{
return (PERFCTR2 >> 0u) & 0b111111111111111111111111u;
}
inline void set_PERFCTR2_PERFCTR2(uint32_t value) volatile
{
uint32_t curr = PERFCTR2;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
PERFCTR2 = curr;
}
inline BUSCTRL_PERFSEL2_PERFSEL2 get_PERFSEL2_PERFSEL2() volatile
{
return BUSCTRL_PERFSEL2_PERFSEL2((PERFSEL2 >> 0u) & 0b11111u);
}
inline void set_PERFSEL2_PERFSEL2(BUSCTRL_PERFSEL2_PERFSEL2 value) volatile
{
uint32_t curr = PERFSEL2;
curr &= ~(0b11111u << 0u);
curr |= (std::to_underlying(value) & 0b11111u) << 0u;
PERFSEL2 = curr;
}
inline uint32_t get_PERFCTR3_PERFCTR3() volatile
{
return (PERFCTR3 >> 0u) & 0b111111111111111111111111u;
}
inline void set_PERFCTR3_PERFCTR3(uint32_t value) volatile
{
uint32_t curr = PERFCTR3;
curr &= ~(0b111111111111111111111111u << 0u);
curr |= (value & 0b111111111111111111111111u) << 0u;
PERFCTR3 = curr;
}
inline BUSCTRL_PERFSEL3_PERFSEL3 get_PERFSEL3_PERFSEL3() volatile
{
return BUSCTRL_PERFSEL3_PERFSEL3((PERFSEL3 >> 0u) & 0b11111u);
}
inline void set_PERFSEL3_PERFSEL3(BUSCTRL_PERFSEL3_PERFSEL3 value) volatile
{
uint32_t curr = PERFSEL3;
curr &= ~(0b11111u << 0u);
curr |= (std::to_underlying(value) & 0b11111u) << 0u;
PERFSEL3 = curr;
}
};
static_assert(sizeof(busctrl) == busctrl::size);
static volatile busctrl *const BUSCTRL =
reinterpret_cast<busctrl *>(0x40030000);
}; // namespace RP2040