1 // Copyright 2020 Espressif Systems (Shanghai) PTE LTD
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #pragma once
16 
17 #include "soc/soc_caps.h"
18 #include "soc/soc.h"
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 typedef enum {
25     INTDESC_NORMAL=0,
26     INTDESC_RESVD,
27     INTDESC_SPECIAL,
28 } int_desc_flag_t;
29 
30 typedef enum {
31     INTTP_LEVEL=0,
32     INTTP_EDGE,
33     INTTP_NA,
34 } int_type_t;
35 
36 typedef struct {
37     int level;
38     int_type_t type;
39     int_desc_flag_t cpuflags[SOC_CPU_CORES_NUM];
40 } int_desc_t;
41 
42 typedef void (*interrupt_handler_t)(void *arg);
43 
44 #ifdef __cplusplus
45 }
46 #endif
47