16#define _R(instance, reg) _Generic((instance->reg), \
17uint8_t : cmrx_emu_reg_R8,\
18uint16_t : cmrx_emu_reg_R16,\
19uint32_t : cmrx_emu_reg_R32)(instance, &instance->reg)
32#define _W(instance, reg, value) _Generic((instance->reg), \
33uint8_t : cmrx_emu_reg_W8,\
34uint16_t : cmrx_emu_reg_W16,\
35uint32_t : cmrx_emu_reg_W32)(instance, &instance->reg, value)
37uint8_t cmrx_emu_reg_R8(
void * instance,
const volatile uint8_t * source);
38uint16_t cmrx_emu_reg_R16(
void * instance,
const volatile uint16_t * source);
39uint32_t cmrx_emu_reg_R32(
void * instance,
const volatile uint32_t * source);
41void cmrx_emu_reg_W8(
void * instance,
volatile uint8_t * dest, uint8_t value);
42void cmrx_emu_reg_W16(
void * instance,
volatile uint16_t * dest, uint16_t value);
43void cmrx_emu_reg_W32(
void * instance,
volatile uint32_t * dest, uint32_t value);