| 
									
										
										
										
											2016-06-29 10:47:26 +02:00
										 |  |  | #ifndef TILEGX_TARGET_SYSCALL_H
 | 
					
						
							|  |  |  | #define TILEGX_TARGET_SYSCALL_H
 | 
					
						
							| 
									
										
										
										
											2015-08-21 05:35:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define UNAME_MACHINE "tilegx"
 | 
					
						
							|  |  |  | #define UNAME_MINIMUM_RELEASE "3.19"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define MMAP_SHIFT TARGET_PAGE_BITS
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TILEGX_IS_ERRNO(ret) \
 | 
					
						
							|  |  |  |                        ((ret) > 0xfffffffffffff000ULL) /* errno is 0 -- 4096 */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef uint64_t tilegx_reg_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct target_pt_regs { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     union { | 
					
						
							|  |  |  |         /* Saved main processor registers; 56..63 are special. */ | 
					
						
							|  |  |  |         tilegx_reg_t regs[56]; | 
					
						
							|  |  |  |         struct { | 
					
						
							|  |  |  |             tilegx_reg_t __regs[53]; | 
					
						
							|  |  |  |             tilegx_reg_t tp;    /* aliases regs[TREG_TP] */ | 
					
						
							|  |  |  |             tilegx_reg_t sp;    /* aliases regs[TREG_SP] */ | 
					
						
							|  |  |  |             tilegx_reg_t lr;    /* aliases regs[TREG_LR] */ | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /* Saved special registers. */ | 
					
						
							|  |  |  |     tilegx_reg_t pc;            /* stored in EX_CONTEXT_K_0 */ | 
					
						
							|  |  |  |     tilegx_reg_t ex1;           /* stored in EX_CONTEXT_K_1 (PL and ICS bit) */ | 
					
						
							|  |  |  |     tilegx_reg_t faultnum;      /* fault number (INT_SWINT_1 for syscall) */ | 
					
						
							|  |  |  |     tilegx_reg_t orig_r0;       /* r0 at syscall entry, else zero */ | 
					
						
							|  |  |  |     tilegx_reg_t flags;         /* flags (see below) */ | 
					
						
							|  |  |  |     tilegx_reg_t cmpexch;       /* value of CMPEXCH_VALUE SPR at interrupt */ | 
					
						
							|  |  |  |     tilegx_reg_t pad[2]; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TARGET_MLOCKALL_MCL_CURRENT 1
 | 
					
						
							|  |  |  | #define TARGET_MLOCKALL_MCL_FUTURE  2
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-27 08:10:18 +08:00
										 |  |  | /* For faultnum */ | 
					
						
							|  |  |  | #define TARGET_INT_SWINT_1            14
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-21 05:35:43 +08:00
										 |  |  | #endif
 |