50 lines
		
	
	
		
			875 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			875 B
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
#ifndef context_h__
 | 
						|
#define context_h__
 | 
						|
 | 
						|
#include "stdint.h"
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  uint32_t ra;//x1  0
 | 
						|
  uint32_t sp;//x2  1
 | 
						|
  uint32_t gp;//x3  2
 | 
						|
  uint32_t tp;//x4  3
 | 
						|
  uint32_t t0;//x5  4
 | 
						|
  uint32_t t1;//x6  5
 | 
						|
  uint32_t t2;//x7  6
 | 
						|
  uint32_t t6;//x31 7
 | 
						|
  uint32_t s1;//x9  8
 | 
						|
  uint32_t a0;//x10 9
 | 
						|
  uint32_t a1;//x11 10
 | 
						|
  uint32_t a2;//x12 11
 | 
						|
  uint32_t a3;//x13 12
 | 
						|
  uint32_t a4;//x14 13
 | 
						|
  uint32_t a5;//x15 14
 | 
						|
  uint32_t a6;//x16 15
 | 
						|
  uint32_t a7;//x17 16
 | 
						|
 | 
						|
  uint32_t s2;//x18  17
 | 
						|
  uint32_t s3;//x19  18
 | 
						|
  uint32_t s4;//x20  19
 | 
						|
  uint32_t s5;//x21  20
 | 
						|
  uint32_t s6;//x22  21
 | 
						|
  uint32_t s7;//x23  22
 | 
						|
  uint32_t s8;//x24  23
 | 
						|
  uint32_t s9;//x25  24
 | 
						|
  uint32_t s10;//x26 25
 | 
						|
  uint32_t s11;//x27 26
 | 
						|
  uint32_t t3;//x28  27
 | 
						|
  uint32_t t4;//x29  28
 | 
						|
  uint32_t t5;//x30  29
 | 
						|
  uint32_t s0;//fp(x8) 30
 | 
						|
 | 
						|
  uint32_t mstatus;//31
 | 
						|
  uint32_t mepc;//32
 | 
						|
} stack_context;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#endif
 |