// TODO: add copyright
//
//

#include <stdint.h>

#include "config.h"

typedef struct {
    uint32_t inc_f1;
    uint32_t dec_f1;
    uint32_t inc_d1;
    uint32_t dec_d1;
    uint32_t inc_d2;
    uint32_t dec_d2;
    uint32_t inc_ph2;
    uint32_t dec_ph2;
    uint32_t inc_f3;
    uint32_t dec_f3;
    uint32_t inc_d3;
    uint32_t dec_d3;
    uint32_t inc_ph3;
    uint32_t dec_ph3;
    uint32_t inc_n3;
    uint32_t dec_n3;
} button_regs_t __attribute__((packed,aligned(4)));

typedef struct {
    union {
        uint32_t data[16];
        button_regs_t regs;
    };
} wb_mailbox_button_regs_t __attribute__((packed,aligned(4)));

// READONLY
static volatile wb_mailbox_button_regs_t * const mailbox_button_regs = (void*)(MAILBOX_BUTTONS_BASE);
