#ifndef _BCM2835_MBOXREG_H_
#define _BCM2835_MBOXREG_H_
#define BCM2835_MBOX_SIZE 0x80
#define BCM2835_MBOX_READ 0x00
#define BCM2835_MBOX_WRITE 0x00
#define BCM2835_MBOX_POLL 0x10
#define BCM2835_MBOX_ID 0x14
#define BCM2835_MBOX_STATUS 0x18
#define BCM2835_MBOX_STATUS_FULL 0x80000000
#define BCM2835_MBOX_STATUS_EMPTY 0x40000000
#define BCM2835_MBOX_STATUS_LEVEL 0x400000FF
#define BCM2835_MBOX_CFG 0x1C
#define BCM2835_MBOX_CFG_DATAIRQEN 0x00000001
#define BCM2835_MBOX_CFG_SPACEIRQEN 0x00000002
#define BCM2835_MBOX_CFG_EMPTYOPIRQEN 0x00000004
#define BCM2835_MBOX_CFG_MAILCLEAR 0x00000008
#define BCM2835_MBOX_CFG_DATAPENDING 0x00000010
#define BCM2835_MBOX_CFG_SPACEPENDING 0x00000020
#define BCM2835_MBOX_CFG_EMPTYOPPENDING 0x00000040
#define BCM2835_MBOX_CFG_ENOOWN 0x00000100
#define BCM2835_MBOX_CFG_EOVERFLOW 0x00000200
#define BCM2835_MBOX_CFG_EUNDERFLOW 0x00000400
#define BCM2835_MBOX0_BASE 0x00
#define BCM2835_MBOX1_BASE 0x20
#define BCM2835_MBOX0_READ (BCM2835_MBOX0_BASE + BCM2835_MBOX_READ)
#define BCM2835_MBOX0_WRITE (BCM2835_MBOX0_BASE + BCM2835_MBOX_WRITE)
#define BCM2835_MBOX0_POLL (BCM2835_MBOX0_BASE + BCM2835_MBOX_POLL)
#define BCM2835_MBOX0_ID (BCM2835_MBOX0_BASE + BCM2835_MBOX_ID)
#define BCM2835_MBOX0_STATUS (BCM2835_MBOX0_BASE + BCM2835_MBOX_STATUS)
#define BCM2835_MBOX0_CFG (BCM2835_MBOX0_BASE + BCM2835_MBOX_READ)
#define BCM2835_MBOX1_READ (BCM2835_MBOX1_BASE + BCM2835_MBOX_READ)
#define BCM2835_MBOX1_WRITE (BCM2835_MBOX1_BASE + BCM2835_MBOX_WRITE)
#define BCM2835_MBOX1_POLL (BCM2835_MBOX1_BASE + BCM2835_MBOX_POLL)
#define BCM2835_MBOX1_ID (BCM2835_MBOX1_BASE + BCM2835_MBOX_ID)
#define BCM2835_MBOX1_STATUS (BCM2835_MBOX1_BASE + BCM2835_MBOX_STATUS)
#define BCM2835_MBOX1_CFG (BCM2835_MBOX1_BASE + BCM2835_MBOX_READ)
#endif