| 
									
										
										
										
											2003-11-23 14:55:54 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  *  PPC emulation for qemu: syscall definitions. | 
					
						
							| 
									
										
										
										
											2007-09-16 21:08:06 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2003-11-23 14:55:54 +00:00
										 |  |  |  *  Copyright (c) 2003 Jocelyn Mayer | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This library is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |  * version 2 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This library is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * Lesser General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Lesser General Public | 
					
						
							| 
									
										
										
										
											2009-07-16 20:47:01 +00:00
										 |  |  |  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							| 
									
										
										
										
											2003-11-23 14:55:54 +00:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* XXX: ABSOLUTELY BUGGY:
 | 
					
						
							|  |  |  |  * for now, this is quite just a cut-and-paste from i386 target... | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* default linux values for the selectors */ | 
					
						
							|  |  |  | #define __USER_DS	(1)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct target_pt_regs { | 
					
						
							| 
									
										
										
										
											2007-12-10 08:24:59 +00:00
										 |  |  | 	abi_ulong gpr[32]; | 
					
						
							|  |  |  | 	abi_ulong nip; | 
					
						
							|  |  |  | 	abi_ulong msr; | 
					
						
							|  |  |  | 	abi_ulong orig_gpr3;	/* Used for restarting system calls */ | 
					
						
							|  |  |  | 	abi_ulong ctr; | 
					
						
							|  |  |  | 	abi_ulong link; | 
					
						
							|  |  |  | 	abi_ulong xer; | 
					
						
							|  |  |  | 	abi_ulong ccr; | 
					
						
							|  |  |  | #if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
 | 
					
						
							|  |  |  |         abi_ulong softe; | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | 	abi_ulong mq;		/* 601 only (not used at present) */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2003-11-23 14:55:54 +00:00
										 |  |  | 					/* Used on APUS to hold IPL value. */ | 
					
						
							| 
									
										
										
										
											2007-12-10 08:24:59 +00:00
										 |  |  | 	abi_ulong trap;		/* Reason for being here */ | 
					
						
							|  |  |  | 	abi_ulong dar;		/* Fault registers */ | 
					
						
							|  |  |  | 	abi_ulong dsisr; | 
					
						
							|  |  |  | 	abi_ulong result; 		/* Result of a system call */ | 
					
						
							| 
									
										
										
										
											2003-11-23 14:55:54 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ioctls */ | 
					
						
							|  |  |  | struct target_revectored_struct { | 
					
						
							| 
									
										
										
										
											2007-10-14 16:27:31 +00:00
										 |  |  | 	abi_ulong __map[8];			/* 256 bits */ | 
					
						
							| 
									
										
										
										
											2003-11-23 14:55:54 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-12 19:13:18 -07:00
										 |  |  | /* Nasty hack: define a fake errno value for use by sigreturn.  */ | 
					
						
							|  |  |  | #define TARGET_QEMU_ESIGRETURN 255
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-11-23 14:55:54 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * flags masks | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-18 20:51:49 +00:00
										 |  |  | #if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
 | 
					
						
							|  |  |  | #define UNAME_MACHINE "ppc64"
 | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2004-09-13 21:41:39 +00:00
										 |  |  | #define UNAME_MACHINE "ppc"
 | 
					
						
							| 
									
										
										
										
											2007-10-18 20:51:49 +00:00
										 |  |  | #endif
 |