The mpu_region returns region data that hits for
the specified address. If the address hits in a background
mapping, the end address will be when a foreground mapping
overrides the background mapping.
typedef struct xtensa_mpu_lookup {
bool background; /* If false, a foreground hit */
uint16 region; /* The foreground/background region */
uint32 start;
uint32 end;
/* Permissions */
bool sr; /* supervisor-read */
bool sw; /* supervisor-write */
bool sx; /* supervisor-execute */
bool ur; /* user-read */
bool uw; /* user-write */
bool ux; /* user-execute */
} xtensa_mpu_lookup_t;
SIM_INTERFACE(xtensa_mpu_lookup) {
xtensa_mpu_lookup_t (*mpu_region)(conf_object_t *obj, uint32 address);
};
#define XTENSA_MPU_LOOKUP_INTERFACE "xtensa_mpu_lookup"