blob: f5eee11cb5902cc749af7b56ce1f56d0ae4e404f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#ifndef _EL3_MONITOR_H
#define _EL3_MONITOR_H
typedef struct state_buf {
uintptr_t elr_el3;
uintptr_t spsr_el3;
uintptr_t elr_el1;
uintptr_t spsr_el1;
uintptr_t esr_el1;
uintptr_t sp_el1;
uintptr_t spsr_abt;
uintptr_t spsr_und;
uintptr_t spsr_irq;
uintptr_t spsr_fiq;
uintptr_t sctlr_el1;
uintptr_t actlr_el1;
uintptr_t cpacr_el1;
uintptr_t csselr_el1;
uintptr_t ttbr0_el1;
uintptr_t ttbr1_el1;
uintptr_t tcr_el1;
uintptr_t vbar_el1;
uintptr_t mair_el1;
uintptr_t amair_el1;
uintptr_t tpidr_el0;
uintptr_t tpidr_el1;
uintptr_t tpidrro_el0;
uintptr_t contextidr_el1;
uintptr_t par_el1;
uintptr_t far_el1;
uintptr_t afsr0_el1;
uintptr_t afsr1_el1;
uintptr_t x[27]; /* X4:X30 */
} state_buf;
extern void monitor_switch(int op, smc_op_desc_t *desc);
extern void monitor_restore_state(state_buf *);
extern void monitor_save_state(state_buf *);
#endif
|