summaryrefslogtreecommitdiff
path: root/include/sbi/sbi_trap.h
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2019-01-14 12:30:15 +0300
committerAnup Patel <anup@brainfault.org>2019-01-16 08:55:25 +0300
commit3298251f0c56b556a8f53632e46020861a2f4f8a (patch)
tree16d1e6e0401db57b2d4dac3f9e1fd62e903c7e34 /include/sbi/sbi_trap.h
parent4485b5cba86a2488c326c0dee9a1fec2d788b6e8 (diff)
downloadopensbi-3298251f0c56b556a8f53632e46020861a2f4f8a.tar.xz
include: Add documentation for sbi_trap_regs and friends
This patch adds doxygen style documentation for struct sbi_trap_regs and related macros/defines/functions. Signed-off-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'include/sbi/sbi_trap.h')
-rw-r--r--include/sbi/sbi_trap.h74
1 files changed, 73 insertions, 1 deletions
diff --git a/include/sbi/sbi_trap.h b/include/sbi/sbi_trap.h
index 67f7f38..ab94d19 100644
--- a/include/sbi/sbi_trap.h
+++ b/include/sbi/sbi_trap.h
@@ -10,86 +10,158 @@
#ifndef __SBI_TRAP_H__
#define __SBI_TRAP_H__
+/** Index of zero member in sbi_trap_regs */
#define SBI_TRAP_REGS_zero 0
+/** Index of ra member in sbi_trap_regs */
#define SBI_TRAP_REGS_ra 1
+/** Index of sp member in sbi_trap_regs */
#define SBI_TRAP_REGS_sp 2
+/** Index of gp member in sbi_trap_regs */
#define SBI_TRAP_REGS_gp 3
+/** Index of tp member in sbi_trap_regs */
#define SBI_TRAP_REGS_tp 4
+/** Index of t0 member in sbi_trap_regs */
#define SBI_TRAP_REGS_t0 5
+/** Index of t1 member in sbi_trap_regs */
#define SBI_TRAP_REGS_t1 6
+/** Index of t2 member in sbi_trap_regs */
#define SBI_TRAP_REGS_t2 7
+/** Index of s0 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s0 8
+/** Index of s1 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s1 9
+/** Index of a0 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a0 10
+/** Index of a1 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a1 11
+/** Index of a2 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a2 12
+/** Index of a3 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a3 13
+/** Index of a4 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a4 14
+/** Index of a5 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a5 15
+/** Index of a6 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a6 16
+/** Index of a7 member in sbi_trap_regs */
#define SBI_TRAP_REGS_a7 17
+/** Index of s2 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s2 18
+/** Index of s3 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s3 19
+/** Index of s4 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s4 20
+/** Index of s5 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s5 21
+/** Index of s6 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s6 22
+/** Index of s7 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s7 23
+/** Index of s8 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s8 24
+/** Index of s9 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s9 25
+/** Index of s10 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s10 26
+/** Index of s11 member in sbi_trap_regs */
#define SBI_TRAP_REGS_s11 27
+/** Index of t3 member in sbi_trap_regs */
#define SBI_TRAP_REGS_t3 28
+/** Index of t4 member in sbi_trap_regs */
#define SBI_TRAP_REGS_t4 29
+/** Index of t5 member in sbi_trap_regs */
#define SBI_TRAP_REGS_t5 30
+/** Index of t6 member in sbi_trap_regs */
#define SBI_TRAP_REGS_t6 31
+/** Index of mepc member in sbi_trap_regs */
#define SBI_TRAP_REGS_mepc 32
+/** Index of mstatus member in sbi_trap_regs */
#define SBI_TRAP_REGS_mstatus 33
+/** Last member index in sbi_trap_regs */
#define SBI_TRAP_REGS_last 34
+/** Get offset of member with name 'x' in sbi_trap_regs */
#define SBI_TRAP_REGS_OFFSET(x) \
((SBI_TRAP_REGS_##x) * __SIZEOF_POINTER__)
+/** Size (in bytes) of sbi_trap_regs */
#define SBI_TRAP_REGS_SIZE SBI_TRAP_REGS_OFFSET(last)
#ifndef __ASSEMBLY__
#include <sbi/sbi_types.h>
+/** Representation of register state at time of trap/interrupt */
struct sbi_trap_regs {
+ /** zero register state */
unsigned long zero;
+ /** ra register state */
unsigned long ra;
+ /** sp register state */
unsigned long sp;
+ /** gp register state */
unsigned long gp;
+ /** tp register state */
unsigned long tp;
+ /** t0 register state */
unsigned long t0;
+ /** t1 register state */
unsigned long t1;
+ /** t2 register state */
unsigned long t2;
+ /** s0 register state */
unsigned long s0;
+ /** s1 register state */
unsigned long s1;
+ /** a0 register state */
unsigned long a0;
+ /** a1 register state */
unsigned long a1;
+ /** a2 register state */
unsigned long a2;
+ /** a3 register state */
unsigned long a3;
+ /** a4 register state */
unsigned long a4;
+ /** a5 register state */
unsigned long a5;
+ /** a6 register state */
unsigned long a6;
+ /** a7 register state */
unsigned long a7;
+ /** s2 register state */
unsigned long s2;
+ /** s3 register state */
unsigned long s3;
+ /** s4 register state */
unsigned long s4;
+ /** s5 register state */
unsigned long s5;
+ /** s6 register state */
unsigned long s6;
+ /** s7 register state */
unsigned long s7;
+ /** s8 register state */
unsigned long s8;
+ /** s9 register state */
unsigned long s9;
+ /** s10 register state */
unsigned long s10;
+ /** s11 register state */
unsigned long s11;
+ /** t3 register state */
unsigned long t3;
+ /** t4 register state */
unsigned long t4;
+ /** t5 register state */
unsigned long t5;
+ /** t6 register state */
unsigned long t6;
+ /** mepc register state */
unsigned long mepc;
+ /** mstatus register state */
unsigned long mstatus;
-} __attribute__((packed));
+} __packed;
struct sbi_scratch;