1 /*
2  * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #pragma once
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 /**
14  * @brief PMS World type (attribute per PMS area, similar to x86 Ring scheme)
15  */
16 typedef enum {
17     MEMPROT_PMS_WORLD_NONE                      = 0x00000000,
18     MEMPROT_PMS_WORLD_0                         = 0x00000001,
19     MEMPROT_PMS_WORLD_1                         = 0x00000002,
20     MEMPROT_PMS_WORLD_2                         = 0x00000004,
21     MEMPROT_PMS_WORLD_ALL                       = 0x7FFFFFFF,
22     MEMPROT_PMS_WORLD_INVALID                   = 0x80000000
23 } esp_mprot_pms_world_t;
24 
25 /**
26  * @brief Memory operation/permission type recognized by PMS
27  */
28 #define MEMPROT_OP_NONE                         0x00000000
29 #define MEMPROT_OP_READ                         0x00000001
30 #define MEMPROT_OP_WRITE                        0x00000002
31 #define MEMPROT_OP_EXEC                         0x00000004
32 #define MEMPROT_OP_INVALID                      0x80000000
33 
34 #ifdef __cplusplus
35 }
36 #endif
37