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
							 |