1 /*
2  * SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #pragma once
8 
9 #include "esp_bit_defs.h"
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 typedef enum {
16     CACHE_TYPE_DATA,
17     CACHE_TYPE_INSTRUCTION,
18     CACHE_TYPE_ALL  //This means both ICache and DCache will be used. On some chips, I/D are controlled by a shared Cache. Also use this enum under this condition. See `SOC_SHARED_IDCACHE_SUPPORTED`.
19 } cache_type_t;
20 
21 /**
22  * @brief Ibuses and Dbuses.
23  *
24  * @note
25  * These enumurations are abstract concepts. Virtual address reside in one of these buses.
26  * Therefore, use `cache_ll_l1_get_bus(cache_id, vaddr_start, len)` to convert your vaddr into buses first
27  */
28 typedef enum {
29     CACHE_BUS_IBUS0 = BIT(0),
30     CACHE_BUS_IBUS1 = BIT(1),
31     CACHE_BUS_IBUS2 = BIT(2),
32     CACHE_BUS_DBUS0 = BIT(3),
33     CACHE_BUS_DBUS1 = BIT(4),
34     CACHE_BUS_DBUS2 = BIT(5),
35 } cache_bus_mask_t;
36 
37 #ifdef __cplusplus
38 }
39 #endif
40