Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
exception.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019 Intel Corp.
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef ZEPHYR_INCLUDE_ARCH_X86_INTEL64_EXPCEPTION_H_
7#define ZEPHYR_INCLUDE_ARCH_X86_INTEL64_EXPCEPTION_H_
8
9#ifndef _ASMLANGUAGE
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16/*
17 * the exception stack frame
18 */
19
20struct arch_esf {
21#ifdef CONFIG_EXCEPTION_DEBUG
22 /* callee-saved */
23 unsigned long rbx;
24 unsigned long r12;
25 unsigned long r13;
26 unsigned long r14;
27 unsigned long r15;
28#endif /* CONFIG_EXCEPTION_DEBUG */
29 unsigned long rbp;
30
31 /* Caller-saved regs */
32 unsigned long rax;
33 unsigned long rcx;
34 unsigned long rdx;
35 unsigned long rsi;
36 unsigned long rdi;
37 unsigned long r8;
38 unsigned long r9;
39 unsigned long r10;
40 /* Must be aligned 16 bytes from the end of this struct due to
41 * requirements of 'fxsave (%rsp)'
42 */
44 unsigned long r11;
45
46 /* Pushed by CPU or assembly stub */
47 unsigned long vector;
48 unsigned long code;
49 unsigned long rip;
50 unsigned long cs;
51 unsigned long rflags;
52 unsigned long rsp;
53 unsigned long ss;
54};
55
56struct x86_ssf {
57 unsigned long rip;
58 unsigned long rflags;
59 unsigned long r10;
60 unsigned long r9;
61 unsigned long r8;
62 unsigned long rdx;
63 unsigned long rsi;
65 unsigned long rdi;
66 unsigned long rsp;
67};
68
69#ifdef __cplusplus
70}
71#endif
72
73#endif /* _ASMLANGUAGE */
74
75#endif /* ZEPHYR_INCLUDE_ARCH_X86_INTEL64_EXPCEPTION_H_ */
#define X86_FXSAVE_SIZE
Definition: thread.h:37
Exception Stack Frame.
Definition: exception.h:57
unsigned long code
Definition: exception.h:48
uint32_t r13
Definition: exception.h:31
unsigned long rsp
Definition: exception.h:52
unsigned long rip
Definition: exception.h:49
unsigned long vector
Definition: exception.h:47
uint32_t r15
Definition: exception.h:33
unsigned long rdx
Definition: exception.h:34
unsigned long r11
Definition: exception.h:44
unsigned long cs
Definition: exception.h:50
unsigned long rsi
Definition: exception.h:35
unsigned long rflags
Definition: exception.h:51
unsigned long rdi
Definition: exception.h:36
unsigned long ss
Definition: exception.h:53
uint32_t r12
Definition: exception.h:30
unsigned long rax
Definition: exception.h:32
unsigned long rbp
Definition: exception.h:29
unsigned long r9
Definition: exception.h:38
unsigned long r8
Definition: exception.h:37
unsigned long r10
Definition: exception.h:39
uint32_t r14
Definition: exception.h:32
char fxsave[X86_FXSAVE_SIZE]
Definition: exception.h:43
unsigned long rcx
Definition: exception.h:33
Definition: exception.h:56
unsigned long rsp
Definition: exception.h:66
unsigned long r8
Definition: exception.h:61
unsigned long r9
Definition: exception.h:60
unsigned long r10
Definition: exception.h:59
unsigned long rdx
Definition: exception.h:62
unsigned long rflags
Definition: exception.h:58
char fxsave[X86_FXSAVE_SIZE]
Definition: exception.h:64
unsigned long rdi
Definition: exception.h:65
unsigned long rip
Definition: exception.h:57
unsigned long rsi
Definition: exception.h:63