mirror of
				https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
				synced 2025-10-31 16:18:51 +01:00 
			
		
		
		
	Fixed MTP to work with TWRP
This commit is contained in:
		
						commit
						f6dfaef42e
					
				
					 50820 changed files with 20846062 additions and 0 deletions
				
			
		
							
								
								
									
										46
									
								
								arch/powerpc/include/uapi/asm/Kbuild
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								arch/powerpc/include/uapi/asm/Kbuild
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,46 @@ | |||
| # UAPI Header export list | ||||
| include include/uapi/asm-generic/Kbuild.asm | ||||
| 
 | ||||
| header-y += auxvec.h | ||||
| header-y += bitsperlong.h | ||||
| header-y += bootx.h | ||||
| header-y += byteorder.h | ||||
| header-y += cputable.h | ||||
| header-y += elf.h | ||||
| header-y += epapr_hcalls.h | ||||
| header-y += errno.h | ||||
| header-y += fcntl.h | ||||
| header-y += ioctl.h | ||||
| header-y += ioctls.h | ||||
| header-y += ipcbuf.h | ||||
| header-y += kvm.h | ||||
| header-y += kvm_para.h | ||||
| header-y += mman.h | ||||
| header-y += msgbuf.h | ||||
| header-y += nvram.h | ||||
| header-y += param.h | ||||
| header-y += perf_event.h | ||||
| header-y += poll.h | ||||
| header-y += posix_types.h | ||||
| header-y += ps3fb.h | ||||
| header-y += ptrace.h | ||||
| header-y += resource.h | ||||
| header-y += seccomp.h | ||||
| header-y += sembuf.h | ||||
| header-y += setup.h | ||||
| header-y += shmbuf.h | ||||
| header-y += sigcontext.h | ||||
| header-y += siginfo.h | ||||
| header-y += signal.h | ||||
| header-y += socket.h | ||||
| header-y += sockios.h | ||||
| header-y += spu_info.h | ||||
| header-y += stat.h | ||||
| header-y += statfs.h | ||||
| header-y += swab.h | ||||
| header-y += termbits.h | ||||
| header-y += termios.h | ||||
| header-y += tm.h | ||||
| header-y += types.h | ||||
| header-y += ucontext.h | ||||
| header-y += unistd.h | ||||
							
								
								
									
										21
									
								
								arch/powerpc/include/uapi/asm/auxvec.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								arch/powerpc/include/uapi/asm/auxvec.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| #ifndef _ASM_POWERPC_AUXVEC_H | ||||
| #define _ASM_POWERPC_AUXVEC_H | ||||
| 
 | ||||
| /*
 | ||||
|  * We need to put in some extra aux table entries to tell glibc what | ||||
|  * the cache block size is, so it can use the dcbz instruction safely. | ||||
|  */ | ||||
| #define AT_DCACHEBSIZE		19 | ||||
| #define AT_ICACHEBSIZE		20 | ||||
| #define AT_UCACHEBSIZE		21 | ||||
| /* A special ignored type value for PPC, for glibc compatibility.  */ | ||||
| #define AT_IGNOREPPC		22 | ||||
| 
 | ||||
| /* The vDSO location. We have to use the same value as x86 for glibc's
 | ||||
|  * sake :-) | ||||
|  */ | ||||
| #define AT_SYSINFO_EHDR		33 | ||||
| 
 | ||||
| #define AT_VECTOR_SIZE_ARCH 6 /* entries in ARCH_DLINFO */ | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										12
									
								
								arch/powerpc/include/uapi/asm/bitsperlong.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								arch/powerpc/include/uapi/asm/bitsperlong.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| #ifndef __ASM_POWERPC_BITSPERLONG_H | ||||
| #define __ASM_POWERPC_BITSPERLONG_H | ||||
| 
 | ||||
| #if defined(__powerpc64__) | ||||
| # define __BITS_PER_LONG 64 | ||||
| #else | ||||
| # define __BITS_PER_LONG 32 | ||||
| #endif | ||||
| 
 | ||||
| #include <asm-generic/bitsperlong.h> | ||||
| 
 | ||||
| #endif /* __ASM_POWERPC_BITSPERLONG_H */ | ||||
							
								
								
									
										132
									
								
								arch/powerpc/include/uapi/asm/bootx.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								arch/powerpc/include/uapi/asm/bootx.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,132 @@ | |||
| /*
 | ||||
|  * This file describes the structure passed from the BootX application | ||||
|  * (for MacOS) when it is used to boot Linux. | ||||
|  * | ||||
|  * Written by Benjamin Herrenschmidt. | ||||
|  */ | ||||
| 
 | ||||
| 
 | ||||
| #ifndef _UAPI__ASM_BOOTX_H__ | ||||
| #define _UAPI__ASM_BOOTX_H__ | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| #ifdef macintosh | ||||
| #include <Types.h> | ||||
| #include "linux_type_defs.h" | ||||
| #endif | ||||
| 
 | ||||
| #ifdef macintosh | ||||
| /* All this requires PowerPC alignment */ | ||||
| #pragma options align=power | ||||
| #endif | ||||
| 
 | ||||
| /* On kernel entry:
 | ||||
|  * | ||||
|  * r3 = 0x426f6f58    ('BooX') | ||||
|  * r4 = pointer to boot_infos | ||||
|  * r5 = NULL | ||||
|  * | ||||
|  * Data and instruction translation disabled, interrupts | ||||
|  * disabled, kernel loaded at physical 0x00000000 on PCI | ||||
|  * machines (will be different on NuBus). | ||||
|  */ | ||||
| 
 | ||||
| #define BOOT_INFO_VERSION               5 | ||||
| #define BOOT_INFO_COMPATIBLE_VERSION    1 | ||||
| 
 | ||||
| /* Bit in the architecture flag mask. More to be defined in
 | ||||
|    future versions. Note that either BOOT_ARCH_PCI or | ||||
|    BOOT_ARCH_NUBUS is set. The other BOOT_ARCH_NUBUS_xxx are | ||||
|    set additionally when BOOT_ARCH_NUBUS is set. | ||||
|  */ | ||||
| #define BOOT_ARCH_PCI                   0x00000001UL | ||||
| #define BOOT_ARCH_NUBUS                 0x00000002UL | ||||
| #define BOOT_ARCH_NUBUS_PDM             0x00000010UL | ||||
| #define BOOT_ARCH_NUBUS_PERFORMA        0x00000020UL | ||||
| #define BOOT_ARCH_NUBUS_POWERBOOK       0x00000040UL | ||||
| 
 | ||||
| /*  Maximum number of ranges in phys memory map */ | ||||
| #define MAX_MEM_MAP_SIZE				26 | ||||
| 
 | ||||
| /* This is the format of an element in the physical memory map. Note that
 | ||||
|    the map is optional and current BootX will only build it for pre-PCI | ||||
|    machines */ | ||||
| typedef struct boot_info_map_entry | ||||
| { | ||||
|     __u32       physAddr;                /* Physical starting address */ | ||||
|     __u32       size;                    /* Size in bytes */ | ||||
| } boot_info_map_entry_t; | ||||
| 
 | ||||
| 
 | ||||
| /* Here are the boot informations that are passed to the bootstrap
 | ||||
|  * Note that the kernel arguments and the device tree are appended | ||||
|  * at the end of this structure. */ | ||||
| typedef struct boot_infos | ||||
| { | ||||
|     /* Version of this structure */ | ||||
|     __u32       version; | ||||
|     /* backward compatible down to version: */ | ||||
|     __u32       compatible_version; | ||||
| 
 | ||||
|     /* NEW (vers. 2) this holds the current _logical_ base addr of
 | ||||
|        the frame buffer (for use by early boot message) */ | ||||
|     __u8*       logicalDisplayBase; | ||||
| 
 | ||||
|     /* NEW (vers. 4) Apple's machine identification */ | ||||
|     __u32       machineID; | ||||
| 
 | ||||
|     /* NEW (vers. 4) Detected hw architecture */ | ||||
|     __u32       architecture; | ||||
| 
 | ||||
|     /* The device tree (internal addresses relative to the beginning of the tree,
 | ||||
|      * device tree offset relative to the beginning of this structure). | ||||
|      * On pre-PCI macintosh (BOOT_ARCH_PCI bit set to 0 in architecture), this | ||||
|      * field is 0. | ||||
|      */ | ||||
|     __u32       deviceTreeOffset;        /* Device tree offset */ | ||||
|     __u32       deviceTreeSize;          /* Size of the device tree */ | ||||
| 
 | ||||
|     /* Some infos about the current MacOS display */ | ||||
|     __u32       dispDeviceRect[4];       /* left,top,right,bottom */ | ||||
|     __u32       dispDeviceDepth;         /* (8, 16 or 32) */ | ||||
|     __u8*       dispDeviceBase;          /* base address (physical) */ | ||||
|     __u32       dispDeviceRowBytes;      /* rowbytes (in bytes) */ | ||||
|     __u32       dispDeviceColorsOffset;  /* Colormap (8 bits only) or 0 (*) */ | ||||
|     /* Optional offset in the registry to the current
 | ||||
|      * MacOS display. (Can be 0 when not detected) */ | ||||
|      __u32      dispDeviceRegEntryOffset; | ||||
| 
 | ||||
|     /* Optional pointer to boot ramdisk (offset from this structure) */ | ||||
|     __u32       ramDisk; | ||||
|     __u32       ramDiskSize;             /* size of ramdisk image */ | ||||
| 
 | ||||
|     /* Kernel command line arguments (offset from this structure) */ | ||||
|     __u32       kernelParamsOffset; | ||||
| 
 | ||||
|     /* ALL BELOW NEW (vers. 4) */ | ||||
| 
 | ||||
|     /* This defines the physical memory. Valid with BOOT_ARCH_NUBUS flag
 | ||||
|        (non-PCI) only. On PCI, memory is contiguous and it's size is in the | ||||
|        device-tree. */ | ||||
|     boot_info_map_entry_t | ||||
|     	        physMemoryMap[MAX_MEM_MAP_SIZE]; /* Where the phys memory is */ | ||||
|     __u32       physMemoryMapSize;               /* How many entries in map */ | ||||
| 
 | ||||
| 
 | ||||
|     /* The framebuffer size (optional, currently 0) */ | ||||
|     __u32       frameBufferSize;         /* Represents a max size, can be 0. */ | ||||
| 
 | ||||
|     /* NEW (vers. 5) */ | ||||
| 
 | ||||
|     /* Total params size (args + colormap + device tree + ramdisk) */ | ||||
|     __u32       totalParamsSize; | ||||
| 
 | ||||
| } boot_infos_t; | ||||
| 
 | ||||
| 
 | ||||
| #ifdef macintosh | ||||
| #pragma options align=reset | ||||
| #endif | ||||
| 
 | ||||
| #endif /* _UAPI__ASM_BOOTX_H__ */ | ||||
							
								
								
									
										16
									
								
								arch/powerpc/include/uapi/asm/byteorder.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								arch/powerpc/include/uapi/asm/byteorder.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| #ifndef _ASM_POWERPC_BYTEORDER_H | ||||
| #define _ASM_POWERPC_BYTEORDER_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifdef __LITTLE_ENDIAN__ | ||||
| #include <linux/byteorder/little_endian.h> | ||||
| #else | ||||
| #include <linux/byteorder/big_endian.h> | ||||
| #endif | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_BYTEORDER_H */ | ||||
							
								
								
									
										46
									
								
								arch/powerpc/include/uapi/asm/cputable.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								arch/powerpc/include/uapi/asm/cputable.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,46 @@ | |||
| #ifndef _UAPI__ASM_POWERPC_CPUTABLE_H | ||||
| #define _UAPI__ASM_POWERPC_CPUTABLE_H | ||||
| 
 | ||||
| /* in AT_HWCAP */ | ||||
| #define PPC_FEATURE_32			0x80000000 | ||||
| #define PPC_FEATURE_64			0x40000000 | ||||
| #define PPC_FEATURE_601_INSTR		0x20000000 | ||||
| #define PPC_FEATURE_HAS_ALTIVEC		0x10000000 | ||||
| #define PPC_FEATURE_HAS_FPU		0x08000000 | ||||
| #define PPC_FEATURE_HAS_MMU		0x04000000 | ||||
| #define PPC_FEATURE_HAS_4xxMAC		0x02000000 | ||||
| #define PPC_FEATURE_UNIFIED_CACHE	0x01000000 | ||||
| #define PPC_FEATURE_HAS_SPE		0x00800000 | ||||
| #define PPC_FEATURE_HAS_EFP_SINGLE	0x00400000 | ||||
| #define PPC_FEATURE_HAS_EFP_DOUBLE	0x00200000 | ||||
| #define PPC_FEATURE_NO_TB		0x00100000 | ||||
| #define PPC_FEATURE_POWER4		0x00080000 | ||||
| #define PPC_FEATURE_POWER5		0x00040000 | ||||
| #define PPC_FEATURE_POWER5_PLUS		0x00020000 | ||||
| #define PPC_FEATURE_CELL		0x00010000 | ||||
| #define PPC_FEATURE_BOOKE		0x00008000 | ||||
| #define PPC_FEATURE_SMT			0x00004000 | ||||
| #define PPC_FEATURE_ICACHE_SNOOP	0x00002000 | ||||
| #define PPC_FEATURE_ARCH_2_05		0x00001000 | ||||
| #define PPC_FEATURE_PA6T		0x00000800 | ||||
| #define PPC_FEATURE_HAS_DFP		0x00000400 | ||||
| #define PPC_FEATURE_POWER6_EXT		0x00000200 | ||||
| #define PPC_FEATURE_ARCH_2_06		0x00000100 | ||||
| #define PPC_FEATURE_HAS_VSX		0x00000080 | ||||
| 
 | ||||
| #define PPC_FEATURE_PSERIES_PERFMON_COMPAT \ | ||||
| 					0x00000040 | ||||
| 
 | ||||
| #define PPC_FEATURE_TRUE_LE		0x00000002 | ||||
| #define PPC_FEATURE_PPC_LE		0x00000001 | ||||
| 
 | ||||
| /* in AT_HWCAP2 */ | ||||
| #define PPC_FEATURE2_ARCH_2_07		0x80000000 | ||||
| #define PPC_FEATURE2_HTM		0x40000000 | ||||
| #define PPC_FEATURE2_DSCR		0x20000000 | ||||
| #define PPC_FEATURE2_EBB		0x10000000 | ||||
| #define PPC_FEATURE2_ISEL		0x08000000 | ||||
| #define PPC_FEATURE2_TAR		0x04000000 | ||||
| #define PPC_FEATURE2_VEC_CRYPTO		0x02000000 | ||||
| 
 | ||||
| #endif /* _UAPI__ASM_POWERPC_CPUTABLE_H */ | ||||
							
								
								
									
										314
									
								
								arch/powerpc/include/uapi/asm/elf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										314
									
								
								arch/powerpc/include/uapi/asm/elf.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,314 @@ | |||
| /*
 | ||||
|  * ELF register definitions.. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifndef _UAPI_ASM_POWERPC_ELF_H | ||||
| #define _UAPI_ASM_POWERPC_ELF_H | ||||
| 
 | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| #include <asm/ptrace.h> | ||||
| #include <asm/cputable.h> | ||||
| #include <asm/auxvec.h> | ||||
| 
 | ||||
| /* PowerPC relocations defined by the ABIs */ | ||||
| #define R_PPC_NONE		0 | ||||
| #define R_PPC_ADDR32		1	/* 32bit absolute address */ | ||||
| #define R_PPC_ADDR24		2	/* 26bit address, 2 bits ignored.  */ | ||||
| #define R_PPC_ADDR16		3	/* 16bit absolute address */ | ||||
| #define R_PPC_ADDR16_LO		4	/* lower 16bit of absolute address */ | ||||
| #define R_PPC_ADDR16_HI		5	/* high 16bit of absolute address */ | ||||
| #define R_PPC_ADDR16_HA		6	/* adjusted high 16bit */ | ||||
| #define R_PPC_ADDR14		7	/* 16bit address, 2 bits ignored */ | ||||
| #define R_PPC_ADDR14_BRTAKEN	8 | ||||
| #define R_PPC_ADDR14_BRNTAKEN	9 | ||||
| #define R_PPC_REL24		10	/* PC relative 26 bit */ | ||||
| #define R_PPC_REL14		11	/* PC relative 16 bit */ | ||||
| #define R_PPC_REL14_BRTAKEN	12 | ||||
| #define R_PPC_REL14_BRNTAKEN	13 | ||||
| #define R_PPC_GOT16		14 | ||||
| #define R_PPC_GOT16_LO		15 | ||||
| #define R_PPC_GOT16_HI		16 | ||||
| #define R_PPC_GOT16_HA		17 | ||||
| #define R_PPC_PLTREL24		18 | ||||
| #define R_PPC_COPY		19 | ||||
| #define R_PPC_GLOB_DAT		20 | ||||
| #define R_PPC_JMP_SLOT		21 | ||||
| #define R_PPC_RELATIVE		22 | ||||
| #define R_PPC_LOCAL24PC		23 | ||||
| #define R_PPC_UADDR32		24 | ||||
| #define R_PPC_UADDR16		25 | ||||
| #define R_PPC_REL32		26 | ||||
| #define R_PPC_PLT32		27 | ||||
| #define R_PPC_PLTREL32		28 | ||||
| #define R_PPC_PLT16_LO		29 | ||||
| #define R_PPC_PLT16_HI		30 | ||||
| #define R_PPC_PLT16_HA		31 | ||||
| #define R_PPC_SDAREL16		32 | ||||
| #define R_PPC_SECTOFF		33 | ||||
| #define R_PPC_SECTOFF_LO	34 | ||||
| #define R_PPC_SECTOFF_HI	35 | ||||
| #define R_PPC_SECTOFF_HA	36 | ||||
| 
 | ||||
| /* PowerPC relocations defined for the TLS access ABI.  */ | ||||
| #define R_PPC_TLS		67 /* none	(sym+add)@tls */ | ||||
| #define R_PPC_DTPMOD32		68 /* word32	(sym+add)@dtpmod */ | ||||
| #define R_PPC_TPREL16		69 /* half16*	(sym+add)@tprel */ | ||||
| #define R_PPC_TPREL16_LO	70 /* half16	(sym+add)@tprel@l */ | ||||
| #define R_PPC_TPREL16_HI	71 /* half16	(sym+add)@tprel@h */ | ||||
| #define R_PPC_TPREL16_HA	72 /* half16	(sym+add)@tprel@ha */ | ||||
| #define R_PPC_TPREL32		73 /* word32	(sym+add)@tprel */ | ||||
| #define R_PPC_DTPREL16		74 /* half16*	(sym+add)@dtprel */ | ||||
| #define R_PPC_DTPREL16_LO	75 /* half16	(sym+add)@dtprel@l */ | ||||
| #define R_PPC_DTPREL16_HI	76 /* half16	(sym+add)@dtprel@h */ | ||||
| #define R_PPC_DTPREL16_HA	77 /* half16	(sym+add)@dtprel@ha */ | ||||
| #define R_PPC_DTPREL32		78 /* word32	(sym+add)@dtprel */ | ||||
| #define R_PPC_GOT_TLSGD16	79 /* half16*	(sym+add)@got@tlsgd */ | ||||
| #define R_PPC_GOT_TLSGD16_LO	80 /* half16	(sym+add)@got@tlsgd@l */ | ||||
| #define R_PPC_GOT_TLSGD16_HI	81 /* half16	(sym+add)@got@tlsgd@h */ | ||||
| #define R_PPC_GOT_TLSGD16_HA	82 /* half16	(sym+add)@got@tlsgd@ha */ | ||||
| #define R_PPC_GOT_TLSLD16	83 /* half16*	(sym+add)@got@tlsld */ | ||||
| #define R_PPC_GOT_TLSLD16_LO	84 /* half16	(sym+add)@got@tlsld@l */ | ||||
| #define R_PPC_GOT_TLSLD16_HI	85 /* half16	(sym+add)@got@tlsld@h */ | ||||
| #define R_PPC_GOT_TLSLD16_HA	86 /* half16	(sym+add)@got@tlsld@ha */ | ||||
| #define R_PPC_GOT_TPREL16	87 /* half16*	(sym+add)@got@tprel */ | ||||
| #define R_PPC_GOT_TPREL16_LO	88 /* half16	(sym+add)@got@tprel@l */ | ||||
| #define R_PPC_GOT_TPREL16_HI	89 /* half16	(sym+add)@got@tprel@h */ | ||||
| #define R_PPC_GOT_TPREL16_HA	90 /* half16	(sym+add)@got@tprel@ha */ | ||||
| #define R_PPC_GOT_DTPREL16	91 /* half16*	(sym+add)@got@dtprel */ | ||||
| #define R_PPC_GOT_DTPREL16_LO	92 /* half16*	(sym+add)@got@dtprel@l */ | ||||
| #define R_PPC_GOT_DTPREL16_HI	93 /* half16*	(sym+add)@got@dtprel@h */ | ||||
| #define R_PPC_GOT_DTPREL16_HA	94 /* half16*	(sym+add)@got@dtprel@ha */ | ||||
| 
 | ||||
| /* keep this the last entry. */ | ||||
| #define R_PPC_NUM		95 | ||||
| 
 | ||||
| 
 | ||||
| #define ELF_NGREG	48	/* includes nip, msr, lr, etc. */ | ||||
| #define ELF_NFPREG	33	/* includes fpscr */ | ||||
| 
 | ||||
| typedef unsigned long elf_greg_t64; | ||||
| typedef elf_greg_t64 elf_gregset_t64[ELF_NGREG]; | ||||
| 
 | ||||
| typedef unsigned int elf_greg_t32; | ||||
| typedef elf_greg_t32 elf_gregset_t32[ELF_NGREG]; | ||||
| typedef elf_gregset_t32 compat_elf_gregset_t; | ||||
| 
 | ||||
| /*
 | ||||
|  * ELF_ARCH, CLASS, and DATA are used to set parameters in the core dumps. | ||||
|  */ | ||||
| #ifdef __powerpc64__ | ||||
| # define ELF_NVRREG32	33	/* includes vscr & vrsave stuffed together */ | ||||
| # define ELF_NVRREG	34	/* includes vscr & vrsave in split vectors */ | ||||
| # define ELF_NVSRHALFREG 32	/* Half the vsx registers */ | ||||
| # define ELF_GREG_TYPE	elf_greg_t64 | ||||
| # define ELF_ARCH	EM_PPC64 | ||||
| # define ELF_CLASS	ELFCLASS64 | ||||
| typedef elf_greg_t64 elf_greg_t; | ||||
| typedef elf_gregset_t64 elf_gregset_t; | ||||
| #else | ||||
| # define ELF_NEVRREG	34	/* includes acc (as 2) */ | ||||
| # define ELF_NVRREG	33	/* includes vscr */ | ||||
| # define ELF_GREG_TYPE	elf_greg_t32 | ||||
| # define ELF_ARCH	EM_PPC | ||||
| # define ELF_CLASS	ELFCLASS32 | ||||
| typedef elf_greg_t32 elf_greg_t; | ||||
| typedef elf_gregset_t32 elf_gregset_t; | ||||
| #endif /* __powerpc64__ */ | ||||
| 
 | ||||
| #ifdef __BIG_ENDIAN__ | ||||
| #define ELF_DATA	ELFDATA2MSB | ||||
| #else | ||||
| #define ELF_DATA	ELFDATA2LSB | ||||
| #endif | ||||
| 
 | ||||
| /* Floating point registers */ | ||||
| typedef double elf_fpreg_t; | ||||
| typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; | ||||
| 
 | ||||
| /* Altivec registers */ | ||||
| /*
 | ||||
|  * The entries with indexes 0-31 contain the corresponding vector registers.  | ||||
|  * The entry with index 32 contains the vscr as the last word (offset 12)  | ||||
|  * within the quadword.  This allows the vscr to be stored as either a  | ||||
|  * quadword (since it must be copied via a vector register to/from storage)  | ||||
|  * or as a word.   | ||||
|  * | ||||
|  * 64-bit kernel notes: The entry at index 33 contains the vrsave as the first   | ||||
|  * word (offset 0) within the quadword. | ||||
|  * | ||||
|  * This definition of the VMX state is compatible with the current PPC32  | ||||
|  * ptrace interface.  This allows signal handling and ptrace to use the same  | ||||
|  * structures.  This also simplifies the implementation of a bi-arch  | ||||
|  * (combined (32- and 64-bit) gdb. | ||||
|  * | ||||
|  * Note that it's _not_ compatible with 32 bits ucontext which stuffs the | ||||
|  * vrsave along with vscr and so only uses 33 vectors for the register set | ||||
|  */ | ||||
| typedef __vector128 elf_vrreg_t; | ||||
| typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG]; | ||||
| #ifdef __powerpc64__ | ||||
| typedef elf_vrreg_t elf_vrregset_t32[ELF_NVRREG32]; | ||||
| typedef elf_fpreg_t elf_vsrreghalf_t32[ELF_NVSRHALFREG]; | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
|  * The requirements here are: | ||||
|  * - keep the final alignment of sp (sp & 0xf) | ||||
|  * - make sure the 32-bit value at the first 16 byte aligned position of | ||||
|  *   AUXV is greater than 16 for glibc compatibility. | ||||
|  *   AT_IGNOREPPC is used for that. | ||||
|  * - for compatibility with glibc ARCH_DLINFO must always be defined on PPC, | ||||
|  *   even if DLINFO_ARCH_ITEMS goes to zero or is undefined. | ||||
|  * update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes | ||||
|  */ | ||||
| #define ARCH_DLINFO							\ | ||||
| do {									\ | ||||
| 	/* Handle glibc compatibility. */				\ | ||||
| 	NEW_AUX_ENT(AT_IGNOREPPC, AT_IGNOREPPC);			\ | ||||
| 	NEW_AUX_ENT(AT_IGNOREPPC, AT_IGNOREPPC);			\ | ||||
| 	/* Cache size items */						\ | ||||
| 	NEW_AUX_ENT(AT_DCACHEBSIZE, dcache_bsize);			\ | ||||
| 	NEW_AUX_ENT(AT_ICACHEBSIZE, icache_bsize);			\ | ||||
| 	NEW_AUX_ENT(AT_UCACHEBSIZE, ucache_bsize);			\ | ||||
| 	VDSO_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso_base);	\ | ||||
| } while (0) | ||||
| 
 | ||||
| /* PowerPC64 relocations defined by the ABIs */ | ||||
| #define R_PPC64_NONE    R_PPC_NONE | ||||
| #define R_PPC64_ADDR32  R_PPC_ADDR32  /* 32bit absolute address.  */ | ||||
| #define R_PPC64_ADDR24  R_PPC_ADDR24  /* 26bit address, word aligned.  */ | ||||
| #define R_PPC64_ADDR16  R_PPC_ADDR16  /* 16bit absolute address. */ | ||||
| #define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of abs. address.  */ | ||||
| #define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of abs. address. */ | ||||
| #define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits.  */ | ||||
| #define R_PPC64_ADDR14 R_PPC_ADDR14   /* 16bit address, word aligned.  */ | ||||
| #define R_PPC64_ADDR14_BRTAKEN  R_PPC_ADDR14_BRTAKEN | ||||
| #define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN | ||||
| #define R_PPC64_REL24   R_PPC_REL24 /* PC relative 26 bit, word aligned.  */ | ||||
| #define R_PPC64_REL14   R_PPC_REL14 /* PC relative 16 bit. */ | ||||
| #define R_PPC64_REL14_BRTAKEN   R_PPC_REL14_BRTAKEN | ||||
| #define R_PPC64_REL14_BRNTAKEN  R_PPC_REL14_BRNTAKEN | ||||
| #define R_PPC64_GOT16     R_PPC_GOT16 | ||||
| #define R_PPC64_GOT16_LO  R_PPC_GOT16_LO | ||||
| #define R_PPC64_GOT16_HI  R_PPC_GOT16_HI | ||||
| #define R_PPC64_GOT16_HA  R_PPC_GOT16_HA | ||||
| 
 | ||||
| #define R_PPC64_COPY      R_PPC_COPY | ||||
| #define R_PPC64_GLOB_DAT  R_PPC_GLOB_DAT | ||||
| #define R_PPC64_JMP_SLOT  R_PPC_JMP_SLOT | ||||
| #define R_PPC64_RELATIVE  R_PPC_RELATIVE | ||||
| 
 | ||||
| #define R_PPC64_UADDR32   R_PPC_UADDR32 | ||||
| #define R_PPC64_UADDR16   R_PPC_UADDR16 | ||||
| #define R_PPC64_REL32     R_PPC_REL32 | ||||
| #define R_PPC64_PLT32     R_PPC_PLT32 | ||||
| #define R_PPC64_PLTREL32  R_PPC_PLTREL32 | ||||
| #define R_PPC64_PLT16_LO  R_PPC_PLT16_LO | ||||
| #define R_PPC64_PLT16_HI  R_PPC_PLT16_HI | ||||
| #define R_PPC64_PLT16_HA  R_PPC_PLT16_HA | ||||
| 
 | ||||
| #define R_PPC64_SECTOFF     R_PPC_SECTOFF | ||||
| #define R_PPC64_SECTOFF_LO  R_PPC_SECTOFF_LO | ||||
| #define R_PPC64_SECTOFF_HI  R_PPC_SECTOFF_HI | ||||
| #define R_PPC64_SECTOFF_HA  R_PPC_SECTOFF_HA | ||||
| #define R_PPC64_ADDR30          37  /* word30 (S + A - P) >> 2.  */ | ||||
| #define R_PPC64_ADDR64          38  /* doubleword64 S + A.  */ | ||||
| #define R_PPC64_ADDR16_HIGHER   39  /* half16 #higher(S + A).  */ | ||||
| #define R_PPC64_ADDR16_HIGHERA  40  /* half16 #highera(S + A).  */ | ||||
| #define R_PPC64_ADDR16_HIGHEST  41  /* half16 #highest(S + A).  */ | ||||
| #define R_PPC64_ADDR16_HIGHESTA 42  /* half16 #highesta(S + A). */ | ||||
| #define R_PPC64_UADDR64     43  /* doubleword64 S + A.  */ | ||||
| #define R_PPC64_REL64       44  /* doubleword64 S + A - P.  */ | ||||
| #define R_PPC64_PLT64       45  /* doubleword64 L + A.  */ | ||||
| #define R_PPC64_PLTREL64    46  /* doubleword64 L + A - P.  */ | ||||
| #define R_PPC64_TOC16       47  /* half16* S + A - .TOC.  */ | ||||
| #define R_PPC64_TOC16_LO    48  /* half16 #lo(S + A - .TOC.).  */ | ||||
| #define R_PPC64_TOC16_HI    49  /* half16 #hi(S + A - .TOC.).  */ | ||||
| #define R_PPC64_TOC16_HA    50  /* half16 #ha(S + A - .TOC.).  */ | ||||
| #define R_PPC64_TOC         51  /* doubleword64 .TOC. */ | ||||
| #define R_PPC64_PLTGOT16    52  /* half16* M + A.  */ | ||||
| #define R_PPC64_PLTGOT16_LO 53  /* half16 #lo(M + A).  */ | ||||
| #define R_PPC64_PLTGOT16_HI 54  /* half16 #hi(M + A).  */ | ||||
| #define R_PPC64_PLTGOT16_HA 55  /* half16 #ha(M + A).  */ | ||||
| 
 | ||||
| #define R_PPC64_ADDR16_DS      56 /* half16ds* (S + A) >> 2.  */ | ||||
| #define R_PPC64_ADDR16_LO_DS   57 /* half16ds  #lo(S + A) >> 2.  */ | ||||
| #define R_PPC64_GOT16_DS       58 /* half16ds* (G + A) >> 2.  */ | ||||
| #define R_PPC64_GOT16_LO_DS    59 /* half16ds  #lo(G + A) >> 2.  */ | ||||
| #define R_PPC64_PLT16_LO_DS    60 /* half16ds  #lo(L + A) >> 2.  */ | ||||
| #define R_PPC64_SECTOFF_DS     61 /* half16ds* (R + A) >> 2.  */ | ||||
| #define R_PPC64_SECTOFF_LO_DS  62 /* half16ds  #lo(R + A) >> 2.  */ | ||||
| #define R_PPC64_TOC16_DS       63 /* half16ds* (S + A - .TOC.) >> 2.  */ | ||||
| #define R_PPC64_TOC16_LO_DS    64 /* half16ds  #lo(S + A - .TOC.) >> 2.  */ | ||||
| #define R_PPC64_PLTGOT16_DS    65 /* half16ds* (M + A) >> 2.  */ | ||||
| #define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds  #lo(M + A) >> 2.  */ | ||||
| 
 | ||||
| /* PowerPC64 relocations defined for the TLS access ABI.  */ | ||||
| #define R_PPC64_TLS		67 /* none	(sym+add)@tls */ | ||||
| #define R_PPC64_DTPMOD64	68 /* doubleword64 (sym+add)@dtpmod */ | ||||
| #define R_PPC64_TPREL16		69 /* half16*	(sym+add)@tprel */ | ||||
| #define R_PPC64_TPREL16_LO	70 /* half16	(sym+add)@tprel@l */ | ||||
| #define R_PPC64_TPREL16_HI	71 /* half16	(sym+add)@tprel@h */ | ||||
| #define R_PPC64_TPREL16_HA	72 /* half16	(sym+add)@tprel@ha */ | ||||
| #define R_PPC64_TPREL64		73 /* doubleword64 (sym+add)@tprel */ | ||||
| #define R_PPC64_DTPREL16	74 /* half16*	(sym+add)@dtprel */ | ||||
| #define R_PPC64_DTPREL16_LO	75 /* half16	(sym+add)@dtprel@l */ | ||||
| #define R_PPC64_DTPREL16_HI	76 /* half16	(sym+add)@dtprel@h */ | ||||
| #define R_PPC64_DTPREL16_HA	77 /* half16	(sym+add)@dtprel@ha */ | ||||
| #define R_PPC64_DTPREL64	78 /* doubleword64 (sym+add)@dtprel */ | ||||
| #define R_PPC64_GOT_TLSGD16	79 /* half16*	(sym+add)@got@tlsgd */ | ||||
| #define R_PPC64_GOT_TLSGD16_LO	80 /* half16	(sym+add)@got@tlsgd@l */ | ||||
| #define R_PPC64_GOT_TLSGD16_HI	81 /* half16	(sym+add)@got@tlsgd@h */ | ||||
| #define R_PPC64_GOT_TLSGD16_HA	82 /* half16	(sym+add)@got@tlsgd@ha */ | ||||
| #define R_PPC64_GOT_TLSLD16	83 /* half16*	(sym+add)@got@tlsld */ | ||||
| #define R_PPC64_GOT_TLSLD16_LO	84 /* half16	(sym+add)@got@tlsld@l */ | ||||
| #define R_PPC64_GOT_TLSLD16_HI	85 /* half16	(sym+add)@got@tlsld@h */ | ||||
| #define R_PPC64_GOT_TLSLD16_HA	86 /* half16	(sym+add)@got@tlsld@ha */ | ||||
| #define R_PPC64_GOT_TPREL16_DS	87 /* half16ds*	(sym+add)@got@tprel */ | ||||
| #define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */ | ||||
| #define R_PPC64_GOT_TPREL16_HI	89 /* half16	(sym+add)@got@tprel@h */ | ||||
| #define R_PPC64_GOT_TPREL16_HA	90 /* half16	(sym+add)@got@tprel@ha */ | ||||
| #define R_PPC64_GOT_DTPREL16_DS	91 /* half16ds*	(sym+add)@got@dtprel */ | ||||
| #define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */ | ||||
| #define R_PPC64_GOT_DTPREL16_HI	93 /* half16	(sym+add)@got@dtprel@h */ | ||||
| #define R_PPC64_GOT_DTPREL16_HA	94 /* half16	(sym+add)@got@dtprel@ha */ | ||||
| #define R_PPC64_TPREL16_DS	95 /* half16ds*	(sym+add)@tprel */ | ||||
| #define R_PPC64_TPREL16_LO_DS	96 /* half16ds	(sym+add)@tprel@l */ | ||||
| #define R_PPC64_TPREL16_HIGHER	97 /* half16	(sym+add)@tprel@higher */ | ||||
| #define R_PPC64_TPREL16_HIGHERA	98 /* half16	(sym+add)@tprel@highera */ | ||||
| #define R_PPC64_TPREL16_HIGHEST	99 /* half16	(sym+add)@tprel@highest */ | ||||
| #define R_PPC64_TPREL16_HIGHESTA 100 /* half16	(sym+add)@tprel@highesta */ | ||||
| #define R_PPC64_DTPREL16_DS	101 /* half16ds* (sym+add)@dtprel */ | ||||
| #define R_PPC64_DTPREL16_LO_DS	102 /* half16ds	(sym+add)@dtprel@l */ | ||||
| #define R_PPC64_DTPREL16_HIGHER	103 /* half16	(sym+add)@dtprel@higher */ | ||||
| #define R_PPC64_DTPREL16_HIGHERA 104 /* half16	(sym+add)@dtprel@highera */ | ||||
| #define R_PPC64_DTPREL16_HIGHEST 105 /* half16	(sym+add)@dtprel@highest */ | ||||
| #define R_PPC64_DTPREL16_HIGHESTA 106 /* half16	(sym+add)@dtprel@highesta */ | ||||
| #define R_PPC64_TLSGD		107 | ||||
| #define R_PPC64_TLSLD		108 | ||||
| #define R_PPC64_TOCSAVE		109 | ||||
| 
 | ||||
| #define R_PPC64_REL16		249 | ||||
| #define R_PPC64_REL16_LO	250 | ||||
| #define R_PPC64_REL16_HI	251 | ||||
| #define R_PPC64_REL16_HA	252 | ||||
| 
 | ||||
| /* Keep this the last entry.  */ | ||||
| #define R_PPC64_NUM		253 | ||||
| 
 | ||||
| /* There's actually a third entry here, but it's unused */ | ||||
| struct ppc64_opd_entry | ||||
| { | ||||
| 	unsigned long funcaddr; | ||||
| 	unsigned long r2; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_ELF_H */ | ||||
							
								
								
									
										98
									
								
								arch/powerpc/include/uapi/asm/epapr_hcalls.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								arch/powerpc/include/uapi/asm/epapr_hcalls.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,98 @@ | |||
| /*
 | ||||
|  * ePAPR hcall interface | ||||
|  * | ||||
|  * Copyright 2008-2011 Freescale Semiconductor, Inc. | ||||
|  * | ||||
|  * Author: Timur Tabi <timur@freescale.com> | ||||
|  * | ||||
|  * This file is provided under a dual BSD/GPL license.  When using or | ||||
|  * redistributing this file, you may do so under either license. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  *     * Redistributions of source code must retain the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer. | ||||
|  *     * Redistributions in binary form must reproduce the above copyright | ||||
|  *       notice, this list of conditions and the following disclaimer in the | ||||
|  *       documentation and/or other materials provided with the distribution. | ||||
|  *     * Neither the name of Freescale Semiconductor nor the | ||||
|  *       names of its contributors may be used to endorse or promote products | ||||
|  *       derived from this software without specific prior written permission. | ||||
|  * | ||||
|  * | ||||
|  * ALTERNATIVELY, this software may be distributed under the terms of the | ||||
|  * GNU General Public License ("GPL") as published by the Free Software | ||||
|  * Foundation, either version 2 of that License or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||||
|  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||||
|  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
|  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
|  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
|  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
|  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _UAPI_ASM_POWERPC_EPAPR_HCALLS_H | ||||
| #define _UAPI_ASM_POWERPC_EPAPR_HCALLS_H | ||||
| 
 | ||||
| #define EV_BYTE_CHANNEL_SEND		1 | ||||
| #define EV_BYTE_CHANNEL_RECEIVE		2 | ||||
| #define EV_BYTE_CHANNEL_POLL		3 | ||||
| #define EV_INT_SET_CONFIG		4 | ||||
| #define EV_INT_GET_CONFIG		5 | ||||
| #define EV_INT_SET_MASK			6 | ||||
| #define EV_INT_GET_MASK			7 | ||||
| #define EV_INT_IACK			9 | ||||
| #define EV_INT_EOI			10 | ||||
| #define EV_INT_SEND_IPI			11 | ||||
| #define EV_INT_SET_TASK_PRIORITY	12 | ||||
| #define EV_INT_GET_TASK_PRIORITY	13 | ||||
| #define EV_DOORBELL_SEND		14 | ||||
| #define EV_MSGSND			15 | ||||
| #define EV_IDLE				16 | ||||
| 
 | ||||
| /* vendor ID: epapr */ | ||||
| #define EV_LOCAL_VENDOR_ID		0	/* for private use */ | ||||
| #define EV_EPAPR_VENDOR_ID		1 | ||||
| #define EV_FSL_VENDOR_ID		2	/* Freescale Semiconductor */ | ||||
| #define EV_IBM_VENDOR_ID		3	/* IBM */ | ||||
| #define EV_GHS_VENDOR_ID		4	/* Green Hills Software */ | ||||
| #define EV_ENEA_VENDOR_ID		5	/* Enea */ | ||||
| #define EV_WR_VENDOR_ID			6	/* Wind River Systems */ | ||||
| #define EV_AMCC_VENDOR_ID		7	/* Applied Micro Circuits */ | ||||
| #define EV_KVM_VENDOR_ID		42	/* KVM */ | ||||
| 
 | ||||
| /* The max number of bytes that a byte channel can send or receive per call */ | ||||
| #define EV_BYTE_CHANNEL_MAX_BYTES	16 | ||||
| 
 | ||||
| 
 | ||||
| #define _EV_HCALL_TOKEN(id, num) (((id) << 16) | (num)) | ||||
| #define EV_HCALL_TOKEN(hcall_num) _EV_HCALL_TOKEN(EV_EPAPR_VENDOR_ID, hcall_num) | ||||
| 
 | ||||
| /* epapr return codes */ | ||||
| #define EV_SUCCESS		0 | ||||
| #define EV_EPERM		1	/* Operation not permitted */ | ||||
| #define EV_ENOENT		2	/*  Entry Not Found */ | ||||
| #define EV_EIO			3	/* I/O error occured */ | ||||
| #define EV_EAGAIN		4	/* The operation had insufficient | ||||
| 					 * resources to complete and should be | ||||
| 					 * retried | ||||
| 					 */ | ||||
| #define EV_ENOMEM		5	/* There was insufficient memory to | ||||
| 					 * complete the operation */ | ||||
| #define EV_EFAULT		6	/* Bad guest address */ | ||||
| #define EV_ENODEV		7	/* No such device */ | ||||
| #define EV_EINVAL		8	/* An argument supplied to the hcall | ||||
| 					   was out of range or invalid */ | ||||
| #define EV_INTERNAL		9	/* An internal error occured */ | ||||
| #define EV_CONFIG		10	/* A configuration error was detected */ | ||||
| #define EV_INVALID_STATE	11	/* The object is in an invalid state */ | ||||
| #define EV_UNIMPLEMENTED	12	/* Unimplemented hypercall */ | ||||
| #define EV_BUFFER_OVERFLOW	13	/* Caller-supplied buffer too small */ | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_EPAPR_HCALLS_H */ | ||||
							
								
								
									
										11
									
								
								arch/powerpc/include/uapi/asm/errno.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								arch/powerpc/include/uapi/asm/errno.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| #ifndef _ASM_POWERPC_ERRNO_H | ||||
| #define _ASM_POWERPC_ERRNO_H | ||||
| 
 | ||||
| #include <asm-generic/errno.h> | ||||
| 
 | ||||
| #undef	EDEADLOCK | ||||
| #define	EDEADLOCK	58	/* File locking deadlock error */ | ||||
| 
 | ||||
| #define _LAST_ERRNO	516 | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_ERRNO_H */ | ||||
							
								
								
									
										11
									
								
								arch/powerpc/include/uapi/asm/fcntl.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								arch/powerpc/include/uapi/asm/fcntl.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| #ifndef _ASM_FCNTL_H | ||||
| #define _ASM_FCNTL_H | ||||
| 
 | ||||
| #define O_DIRECTORY      040000	/* must be a directory */ | ||||
| #define O_NOFOLLOW      0100000	/* don't follow links */ | ||||
| #define O_LARGEFILE     0200000 | ||||
| #define O_DIRECT	0400000	/* direct disk access hint */ | ||||
| 
 | ||||
| #include <asm-generic/fcntl.h> | ||||
| 
 | ||||
| #endif /* _ASM_FCNTL_H */ | ||||
							
								
								
									
										13
									
								
								arch/powerpc/include/uapi/asm/ioctl.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								arch/powerpc/include/uapi/asm/ioctl.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| #ifndef _ASM_POWERPC_IOCTL_H | ||||
| #define _ASM_POWERPC_IOCTL_H | ||||
| 
 | ||||
| #define _IOC_SIZEBITS	13 | ||||
| #define _IOC_DIRBITS	3 | ||||
| 
 | ||||
| #define _IOC_NONE	1U | ||||
| #define _IOC_READ	2U | ||||
| #define _IOC_WRITE	4U | ||||
| 
 | ||||
| #include <asm-generic/ioctl.h> | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_IOCTL_H */ | ||||
							
								
								
									
										119
									
								
								arch/powerpc/include/uapi/asm/ioctls.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								arch/powerpc/include/uapi/asm/ioctls.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,119 @@ | |||
| #ifndef _ASM_POWERPC_IOCTLS_H | ||||
| #define _ASM_POWERPC_IOCTLS_H | ||||
| 
 | ||||
| #include <asm/ioctl.h> | ||||
| 
 | ||||
| #define FIOCLEX		_IO('f', 1) | ||||
| #define FIONCLEX	_IO('f', 2) | ||||
| #define FIOASYNC	_IOW('f', 125, int) | ||||
| #define FIONBIO		_IOW('f', 126, int) | ||||
| #define FIONREAD	_IOR('f', 127, int) | ||||
| #define TIOCINQ		FIONREAD | ||||
| #define FIOQSIZE	_IOR('f', 128, loff_t) | ||||
| 
 | ||||
| #define TIOCGETP	_IOR('t', 8, struct sgttyb) | ||||
| #define TIOCSETP	_IOW('t', 9, struct sgttyb) | ||||
| #define TIOCSETN	_IOW('t', 10, struct sgttyb)	/* TIOCSETP wo flush */ | ||||
| 
 | ||||
| #define TIOCSETC	_IOW('t', 17, struct tchars) | ||||
| #define TIOCGETC	_IOR('t', 18, struct tchars) | ||||
| #define TCGETS		_IOR('t', 19, struct termios) | ||||
| #define TCSETS		_IOW('t', 20, struct termios) | ||||
| #define TCSETSW		_IOW('t', 21, struct termios) | ||||
| #define TCSETSF		_IOW('t', 22, struct termios) | ||||
| 
 | ||||
| #define TCGETA		_IOR('t', 23, struct termio) | ||||
| #define TCSETA		_IOW('t', 24, struct termio) | ||||
| #define TCSETAW		_IOW('t', 25, struct termio) | ||||
| #define TCSETAF		_IOW('t', 28, struct termio) | ||||
| 
 | ||||
| #define TCSBRK		_IO('t', 29) | ||||
| #define TCXONC		_IO('t', 30) | ||||
| #define TCFLSH		_IO('t', 31) | ||||
| 
 | ||||
| #define TIOCSWINSZ	_IOW('t', 103, struct winsize) | ||||
| #define TIOCGWINSZ	_IOR('t', 104, struct winsize) | ||||
| #define	TIOCSTART	_IO('t', 110)		/* start output, like ^Q */ | ||||
| #define	TIOCSTOP	_IO('t', 111)		/* stop output, like ^S */ | ||||
| #define TIOCOUTQ        _IOR('t', 115, int)     /* output queue size */ | ||||
| 
 | ||||
| #define TIOCGLTC	_IOR('t', 116, struct ltchars) | ||||
| #define TIOCSLTC	_IOW('t', 117, struct ltchars) | ||||
| #define TIOCSPGRP	_IOW('t', 118, int) | ||||
| #define TIOCGPGRP	_IOR('t', 119, int) | ||||
| 
 | ||||
| #define TIOCEXCL	0x540C | ||||
| #define TIOCNXCL	0x540D | ||||
| #define TIOCSCTTY	0x540E | ||||
| 
 | ||||
| #define TIOCSTI		0x5412 | ||||
| #define TIOCMGET	0x5415 | ||||
| #define TIOCMBIS	0x5416 | ||||
| #define TIOCMBIC	0x5417 | ||||
| #define TIOCMSET	0x5418 | ||||
| # define TIOCM_LE	0x001 | ||||
| # define TIOCM_DTR	0x002 | ||||
| # define TIOCM_RTS	0x004 | ||||
| # define TIOCM_ST	0x008 | ||||
| # define TIOCM_SR	0x010 | ||||
| # define TIOCM_CTS	0x020 | ||||
| # define TIOCM_CAR	0x040 | ||||
| # define TIOCM_RNG	0x080 | ||||
| # define TIOCM_DSR	0x100 | ||||
| # define TIOCM_CD	TIOCM_CAR | ||||
| # define TIOCM_RI	TIOCM_RNG | ||||
| #define TIOCM_OUT1	0x2000 | ||||
| #define TIOCM_OUT2	0x4000 | ||||
| #define TIOCM_LOOP	0x8000 | ||||
| 
 | ||||
| #define TIOCGSOFTCAR	0x5419 | ||||
| #define TIOCSSOFTCAR	0x541A | ||||
| #define TIOCLINUX	0x541C | ||||
| #define TIOCCONS	0x541D | ||||
| #define TIOCGSERIAL	0x541E | ||||
| #define TIOCSSERIAL	0x541F | ||||
| #define TIOCPKT		0x5420 | ||||
| # define TIOCPKT_DATA		 0 | ||||
| # define TIOCPKT_FLUSHREAD	 1 | ||||
| # define TIOCPKT_FLUSHWRITE	 2 | ||||
| # define TIOCPKT_STOP		 4 | ||||
| # define TIOCPKT_START		 8 | ||||
| # define TIOCPKT_NOSTOP		16 | ||||
| # define TIOCPKT_DOSTOP		32 | ||||
| # define TIOCPKT_IOCTL		64 | ||||
| 
 | ||||
| 
 | ||||
| #define TIOCNOTTY	0x5422 | ||||
| #define TIOCSETD	0x5423 | ||||
| #define TIOCGETD	0x5424 | ||||
| #define TCSBRKP		0x5425	/* Needed for POSIX tcsendbreak() */ | ||||
| #define TIOCSBRK	0x5427  /* BSD compatibility */ | ||||
| #define TIOCCBRK	0x5428  /* BSD compatibility */ | ||||
| #define TIOCGSID	0x5429  /* Return the session ID of FD */ | ||||
| #define TIOCGRS485	0x542e | ||||
| #define TIOCSRS485	0x542f | ||||
| #define TIOCGPTN	_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ | ||||
| #define TIOCSPTLCK	_IOW('T',0x31, int)  /* Lock/unlock Pty */ | ||||
| #define TIOCGDEV	_IOR('T',0x32, unsigned int) /* Get primary device node of /dev/console */ | ||||
| #define TIOCSIG		_IOW('T',0x36, int)  /* Generate signal on Pty slave */ | ||||
| #define TIOCVHANGUP	0x5437 | ||||
| #define TIOCGPKT	_IOR('T', 0x38, int) /* Get packet mode state */ | ||||
| #define TIOCGPTLCK	_IOR('T', 0x39, int) /* Get Pty lock state */ | ||||
| #define TIOCGEXCL	_IOR('T', 0x40, int) /* Get exclusive mode state */ | ||||
| 
 | ||||
| #define TIOCSERCONFIG	0x5453 | ||||
| #define TIOCSERGWILD	0x5454 | ||||
| #define TIOCSERSWILD	0x5455 | ||||
| #define TIOCGLCKTRMIOS	0x5456 | ||||
| #define TIOCSLCKTRMIOS	0x5457 | ||||
| #define TIOCSERGSTRUCT	0x5458 /* For debugging only */ | ||||
| #define TIOCSERGETLSR   0x5459 /* Get line status register */ | ||||
|   /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ | ||||
| # define TIOCSER_TEMT    0x01	/* Transmitter physically empty */ | ||||
| #define TIOCSERGETMULTI 0x545A /* Get multiport config  */ | ||||
| #define TIOCSERSETMULTI 0x545B /* Set multiport config */ | ||||
| 
 | ||||
| #define TIOCMIWAIT	0x545C	/* wait for a change on serial input line(s) */ | ||||
| #define TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */ | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_IOCTLS_H */ | ||||
							
								
								
									
										34
									
								
								arch/powerpc/include/uapi/asm/ipcbuf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								arch/powerpc/include/uapi/asm/ipcbuf.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| #ifndef _ASM_POWERPC_IPCBUF_H | ||||
| #define _ASM_POWERPC_IPCBUF_H | ||||
| 
 | ||||
| /*
 | ||||
|  * The ipc64_perm structure for the powerpc is identical to | ||||
|  * kern_ipc_perm as we have always had 32-bit UIDs and GIDs in the | ||||
|  * kernel.  Note extra padding because this structure is passed back | ||||
|  * and forth between kernel and user space.  Pad space is left for: | ||||
|  *	- 1 32-bit value to fill up for 8-byte alignment | ||||
|  *	- 2 miscellaneous 64-bit values | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| struct ipc64_perm | ||||
| { | ||||
| 	__kernel_key_t	key; | ||||
| 	__kernel_uid_t	uid; | ||||
| 	__kernel_gid_t	gid; | ||||
| 	__kernel_uid_t	cuid; | ||||
| 	__kernel_gid_t	cgid; | ||||
| 	__kernel_mode_t	mode; | ||||
| 	unsigned int	seq; | ||||
| 	unsigned int	__pad1; | ||||
| 	unsigned long long __unused1; | ||||
| 	unsigned long long __unused2; | ||||
| }; | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_IPCBUF_H */ | ||||
							
								
								
									
										603
									
								
								arch/powerpc/include/uapi/asm/kvm.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										603
									
								
								arch/powerpc/include/uapi/asm/kvm.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,603 @@ | |||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License, version 2, as | ||||
|  * published by the Free Software Foundation. | ||||
|  * | ||||
|  * This program 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 General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||
|  * | ||||
|  * Copyright IBM Corp. 2007 | ||||
|  * | ||||
|  * Authors: Hollis Blanchard <hollisb@us.ibm.com> | ||||
|  */ | ||||
| 
 | ||||
| #ifndef __LINUX_KVM_POWERPC_H | ||||
| #define __LINUX_KVM_POWERPC_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| /* Select powerpc specific features in <linux/kvm.h> */ | ||||
| #define __KVM_HAVE_SPAPR_TCE | ||||
| #define __KVM_HAVE_PPC_SMT | ||||
| #define __KVM_HAVE_IRQCHIP | ||||
| #define __KVM_HAVE_IRQ_LINE | ||||
| #define __KVM_HAVE_GUEST_DEBUG | ||||
| 
 | ||||
| struct kvm_regs { | ||||
| 	__u64 pc; | ||||
| 	__u64 cr; | ||||
| 	__u64 ctr; | ||||
| 	__u64 lr; | ||||
| 	__u64 xer; | ||||
| 	__u64 msr; | ||||
| 	__u64 srr0; | ||||
| 	__u64 srr1; | ||||
| 	__u64 pid; | ||||
| 
 | ||||
| 	__u64 sprg0; | ||||
| 	__u64 sprg1; | ||||
| 	__u64 sprg2; | ||||
| 	__u64 sprg3; | ||||
| 	__u64 sprg4; | ||||
| 	__u64 sprg5; | ||||
| 	__u64 sprg6; | ||||
| 	__u64 sprg7; | ||||
| 
 | ||||
| 	__u64 gpr[32]; | ||||
| }; | ||||
| 
 | ||||
| #define KVM_SREGS_E_IMPL_NONE	0 | ||||
| #define KVM_SREGS_E_IMPL_FSL	1 | ||||
| 
 | ||||
| #define KVM_SREGS_E_FSL_PIDn	(1 << 0) /* PID1/PID2 */ | ||||
| 
 | ||||
| /*
 | ||||
|  * Feature bits indicate which sections of the sregs struct are valid, | ||||
|  * both in KVM_GET_SREGS and KVM_SET_SREGS.  On KVM_SET_SREGS, registers | ||||
|  * corresponding to unset feature bits will not be modified.  This allows | ||||
|  * restoring a checkpoint made without that feature, while keeping the | ||||
|  * default values of the new registers. | ||||
|  * | ||||
|  * KVM_SREGS_E_BASE contains: | ||||
|  * CSRR0/1 (refers to SRR2/3 on 40x) | ||||
|  * ESR | ||||
|  * DEAR | ||||
|  * MCSR | ||||
|  * TSR | ||||
|  * TCR | ||||
|  * DEC | ||||
|  * TB | ||||
|  * VRSAVE (USPRG0) | ||||
|  */ | ||||
| #define KVM_SREGS_E_BASE		(1 << 0) | ||||
| 
 | ||||
| /*
 | ||||
|  * KVM_SREGS_E_ARCH206 contains: | ||||
|  * | ||||
|  * PIR | ||||
|  * MCSRR0/1 | ||||
|  * DECAR | ||||
|  * IVPR | ||||
|  */ | ||||
| #define KVM_SREGS_E_ARCH206		(1 << 1) | ||||
| 
 | ||||
| /*
 | ||||
|  * Contains EPCR, plus the upper half of 64-bit registers | ||||
|  * that are 32-bit on 32-bit implementations. | ||||
|  */ | ||||
| #define KVM_SREGS_E_64			(1 << 2) | ||||
| 
 | ||||
| #define KVM_SREGS_E_SPRG8		(1 << 3) | ||||
| #define KVM_SREGS_E_MCIVPR		(1 << 4) | ||||
| 
 | ||||
| /*
 | ||||
|  * IVORs are used -- contains IVOR0-15, plus additional IVORs | ||||
|  * in combination with an appropriate feature bit. | ||||
|  */ | ||||
| #define KVM_SREGS_E_IVOR		(1 << 5) | ||||
| 
 | ||||
| /*
 | ||||
|  * Contains MAS0-4, MAS6-7, TLBnCFG, MMUCFG. | ||||
|  * Also TLBnPS if MMUCFG[MAVN] = 1. | ||||
|  */ | ||||
| #define KVM_SREGS_E_ARCH206_MMU		(1 << 6) | ||||
| 
 | ||||
| /* DBSR, DBCR, IAC, DAC, DVC */ | ||||
| #define KVM_SREGS_E_DEBUG		(1 << 7) | ||||
| 
 | ||||
| /* Enhanced debug -- DSRR0/1, SPRG9 */ | ||||
| #define KVM_SREGS_E_ED			(1 << 8) | ||||
| 
 | ||||
| /* Embedded Floating Point (SPE) -- IVOR32-34 if KVM_SREGS_E_IVOR */ | ||||
| #define KVM_SREGS_E_SPE			(1 << 9) | ||||
| 
 | ||||
| /*
 | ||||
|  * DEPRECATED! USE ONE_REG FOR THIS ONE! | ||||
|  * External Proxy (EXP) -- EPR | ||||
|  */ | ||||
| #define KVM_SREGS_EXP			(1 << 10) | ||||
| 
 | ||||
| /* External PID (E.PD) -- EPSC/EPLC */ | ||||
| #define KVM_SREGS_E_PD			(1 << 11) | ||||
| 
 | ||||
| /* Processor Control (E.PC) -- IVOR36-37 if KVM_SREGS_E_IVOR */ | ||||
| #define KVM_SREGS_E_PC			(1 << 12) | ||||
| 
 | ||||
| /* Page table (E.PT) -- EPTCFG */ | ||||
| #define KVM_SREGS_E_PT			(1 << 13) | ||||
| 
 | ||||
| /* Embedded Performance Monitor (E.PM) -- IVOR35 if KVM_SREGS_E_IVOR */ | ||||
| #define KVM_SREGS_E_PM			(1 << 14) | ||||
| 
 | ||||
| /*
 | ||||
|  * Special updates: | ||||
|  * | ||||
|  * Some registers may change even while a vcpu is not running. | ||||
|  * To avoid losing these changes, by default these registers are | ||||
|  * not updated by KVM_SET_SREGS.  To force an update, set the bit | ||||
|  * in u.e.update_special corresponding to the register to be updated. | ||||
|  * | ||||
|  * The update_special field is zero on return from KVM_GET_SREGS. | ||||
|  * | ||||
|  * When restoring a checkpoint, the caller can set update_special | ||||
|  * to 0xffffffff to ensure that everything is restored, even new features | ||||
|  * that the caller doesn't know about. | ||||
|  */ | ||||
| #define KVM_SREGS_E_UPDATE_MCSR		(1 << 0) | ||||
| #define KVM_SREGS_E_UPDATE_TSR		(1 << 1) | ||||
| #define KVM_SREGS_E_UPDATE_DEC		(1 << 2) | ||||
| #define KVM_SREGS_E_UPDATE_DBSR		(1 << 3) | ||||
| 
 | ||||
| /*
 | ||||
|  * In KVM_SET_SREGS, reserved/pad fields must be left untouched from a | ||||
|  * previous KVM_GET_REGS. | ||||
|  * | ||||
|  * Unless otherwise indicated, setting any register with KVM_SET_SREGS | ||||
|  * directly sets its value.  It does not trigger any special semantics such | ||||
|  * as write-one-to-clear.  Calling KVM_SET_SREGS on an unmodified struct | ||||
|  * just received from KVM_GET_SREGS is always a no-op. | ||||
|  */ | ||||
| struct kvm_sregs { | ||||
| 	__u32 pvr; | ||||
| 	union { | ||||
| 		struct { | ||||
| 			__u64 sdr1; | ||||
| 			struct { | ||||
| 				struct { | ||||
| 					__u64 slbe; | ||||
| 					__u64 slbv; | ||||
| 				} slb[64]; | ||||
| 			} ppc64; | ||||
| 			struct { | ||||
| 				__u32 sr[16]; | ||||
| 				__u64 ibat[8]; | ||||
| 				__u64 dbat[8]; | ||||
| 			} ppc32; | ||||
| 		} s; | ||||
| 		struct { | ||||
| 			union { | ||||
| 				struct { /* KVM_SREGS_E_IMPL_FSL */ | ||||
| 					__u32 features; /* KVM_SREGS_E_FSL_ */ | ||||
| 					__u32 svr; | ||||
| 					__u64 mcar; | ||||
| 					__u32 hid0; | ||||
| 
 | ||||
| 					/* KVM_SREGS_E_FSL_PIDn */ | ||||
| 					__u32 pid1, pid2; | ||||
| 				} fsl; | ||||
| 				__u8 pad[256]; | ||||
| 			} impl; | ||||
| 
 | ||||
| 			__u32 features; /* KVM_SREGS_E_ */ | ||||
| 			__u32 impl_id;	/* KVM_SREGS_E_IMPL_ */ | ||||
| 			__u32 update_special; /* KVM_SREGS_E_UPDATE_ */ | ||||
| 			__u32 pir;	/* read-only */ | ||||
| 			__u64 sprg8; | ||||
| 			__u64 sprg9;	/* E.ED */ | ||||
| 			__u64 csrr0; | ||||
| 			__u64 dsrr0;	/* E.ED */ | ||||
| 			__u64 mcsrr0; | ||||
| 			__u32 csrr1; | ||||
| 			__u32 dsrr1;	/* E.ED */ | ||||
| 			__u32 mcsrr1; | ||||
| 			__u32 esr; | ||||
| 			__u64 dear; | ||||
| 			__u64 ivpr; | ||||
| 			__u64 mcivpr; | ||||
| 			__u64 mcsr;	/* KVM_SREGS_E_UPDATE_MCSR */ | ||||
| 
 | ||||
| 			__u32 tsr;	/* KVM_SREGS_E_UPDATE_TSR */ | ||||
| 			__u32 tcr; | ||||
| 			__u32 decar; | ||||
| 			__u32 dec;	/* KVM_SREGS_E_UPDATE_DEC */ | ||||
| 
 | ||||
| 			/*
 | ||||
| 			 * Userspace can read TB directly, but the | ||||
| 			 * value reported here is consistent with "dec". | ||||
| 			 * | ||||
| 			 * Read-only. | ||||
| 			 */ | ||||
| 			__u64 tb; | ||||
| 
 | ||||
| 			__u32 dbsr;	/* KVM_SREGS_E_UPDATE_DBSR */ | ||||
| 			__u32 dbcr[3]; | ||||
| 			/*
 | ||||
| 			 * iac/dac registers are 64bit wide, while this API | ||||
| 			 * interface provides only lower 32 bits on 64 bit | ||||
| 			 * processors. ONE_REG interface is added for 64bit | ||||
| 			 * iac/dac registers. | ||||
| 			 */ | ||||
| 			__u32 iac[4]; | ||||
| 			__u32 dac[2]; | ||||
| 			__u32 dvc[2]; | ||||
| 			__u8 num_iac;	/* read-only */ | ||||
| 			__u8 num_dac;	/* read-only */ | ||||
| 			__u8 num_dvc;	/* read-only */ | ||||
| 			__u8 pad; | ||||
| 
 | ||||
| 			__u32 epr;	/* EXP */ | ||||
| 			__u32 vrsave;	/* a.k.a. USPRG0 */ | ||||
| 			__u32 epcr;	/* KVM_SREGS_E_64 */ | ||||
| 
 | ||||
| 			__u32 mas0; | ||||
| 			__u32 mas1; | ||||
| 			__u64 mas2; | ||||
| 			__u64 mas7_3; | ||||
| 			__u32 mas4; | ||||
| 			__u32 mas6; | ||||
| 
 | ||||
| 			__u32 ivor_low[16]; /* IVOR0-15 */ | ||||
| 			__u32 ivor_high[18]; /* IVOR32+, plus room to expand */ | ||||
| 
 | ||||
| 			__u32 mmucfg;	/* read-only */ | ||||
| 			__u32 eptcfg;	/* E.PT, read-only */ | ||||
| 			__u32 tlbcfg[4];/* read-only */ | ||||
| 			__u32 tlbps[4]; /* read-only */ | ||||
| 
 | ||||
| 			__u32 eplc, epsc; /* E.PD */ | ||||
| 		} e; | ||||
| 		__u8 pad[1020]; | ||||
| 	} u; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_fpu { | ||||
| 	__u64 fpr[32]; | ||||
| }; | ||||
| 
 | ||||
| /*
 | ||||
|  * Defines for h/w breakpoint, watchpoint (read, write or both) and | ||||
|  * software breakpoint. | ||||
|  * These are used as "type" in KVM_SET_GUEST_DEBUG ioctl and "status" | ||||
|  * for KVM_DEBUG_EXIT. | ||||
|  */ | ||||
| #define KVMPPC_DEBUG_NONE		0x0 | ||||
| #define KVMPPC_DEBUG_BREAKPOINT		(1UL << 1) | ||||
| #define KVMPPC_DEBUG_WATCH_WRITE	(1UL << 2) | ||||
| #define KVMPPC_DEBUG_WATCH_READ		(1UL << 3) | ||||
| struct kvm_debug_exit_arch { | ||||
| 	__u64 address; | ||||
| 	/*
 | ||||
| 	 * exiting to userspace because of h/w breakpoint, watchpoint | ||||
| 	 * (read, write or both) and software breakpoint. | ||||
| 	 */ | ||||
| 	__u32 status; | ||||
| 	__u32 reserved; | ||||
| }; | ||||
| 
 | ||||
| /* for KVM_SET_GUEST_DEBUG */ | ||||
| struct kvm_guest_debug_arch { | ||||
| 	struct { | ||||
| 		/* H/W breakpoint/watchpoint address */ | ||||
| 		__u64 addr; | ||||
| 		/*
 | ||||
| 		 * Type denotes h/w breakpoint, read watchpoint, write | ||||
| 		 * watchpoint or watchpoint (both read and write). | ||||
| 		 */ | ||||
| 		__u32 type; | ||||
| 		__u32 reserved; | ||||
| 	} bp[16]; | ||||
| }; | ||||
| 
 | ||||
| /* Debug related defines */ | ||||
| /*
 | ||||
|  * kvm_guest_debug->control is a 32 bit field. The lower 16 bits are generic | ||||
|  * and upper 16 bits are architecture specific. Architecture specific defines | ||||
|  * that ioctl is for setting hardware breakpoint or software breakpoint. | ||||
|  */ | ||||
| #define KVM_GUESTDBG_USE_SW_BP		0x00010000 | ||||
| #define KVM_GUESTDBG_USE_HW_BP		0x00020000 | ||||
| 
 | ||||
| /* definition of registers in kvm_run */ | ||||
| struct kvm_sync_regs { | ||||
| }; | ||||
| 
 | ||||
| #define KVM_INTERRUPT_SET	-1U | ||||
| #define KVM_INTERRUPT_UNSET	-2U | ||||
| #define KVM_INTERRUPT_SET_LEVEL	-3U | ||||
| 
 | ||||
| #define KVM_CPU_440		1 | ||||
| #define KVM_CPU_E500V2		2 | ||||
| #define KVM_CPU_3S_32		3 | ||||
| #define KVM_CPU_3S_64		4 | ||||
| #define KVM_CPU_E500MC		5 | ||||
| 
 | ||||
| /* for KVM_CAP_SPAPR_TCE */ | ||||
| struct kvm_create_spapr_tce { | ||||
| 	__u64 liobn; | ||||
| 	__u32 window_size; | ||||
| }; | ||||
| 
 | ||||
| /* for KVM_ALLOCATE_RMA */ | ||||
| struct kvm_allocate_rma { | ||||
| 	__u64 rma_size; | ||||
| }; | ||||
| 
 | ||||
| /* for KVM_CAP_PPC_RTAS */ | ||||
| struct kvm_rtas_token_args { | ||||
| 	char name[120]; | ||||
| 	__u64 token;	/* Use a token of 0 to undefine a mapping */ | ||||
| }; | ||||
| 
 | ||||
| struct kvm_book3e_206_tlb_entry { | ||||
| 	__u32 mas8; | ||||
| 	__u32 mas1; | ||||
| 	__u64 mas2; | ||||
| 	__u64 mas7_3; | ||||
| }; | ||||
| 
 | ||||
| struct kvm_book3e_206_tlb_params { | ||||
| 	/*
 | ||||
| 	 * For mmu types KVM_MMU_FSL_BOOKE_NOHV and KVM_MMU_FSL_BOOKE_HV: | ||||
| 	 * | ||||
| 	 * - The number of ways of TLB0 must be a power of two between 2 and | ||||
| 	 *   16. | ||||
| 	 * - TLB1 must be fully associative. | ||||
| 	 * - The size of TLB0 must be a multiple of the number of ways, and | ||||
| 	 *   the number of sets must be a power of two. | ||||
| 	 * - The size of TLB1 may not exceed 64 entries. | ||||
| 	 * - TLB0 supports 4 KiB pages. | ||||
| 	 * - The page sizes supported by TLB1 are as indicated by | ||||
| 	 *   TLB1CFG (if MMUCFG[MAVN] = 0) or TLB1PS (if MMUCFG[MAVN] = 1) | ||||
| 	 *   as returned by KVM_GET_SREGS. | ||||
| 	 * - TLB2 and TLB3 are reserved, and their entries in tlb_sizes[] | ||||
| 	 *   and tlb_ways[] must be zero. | ||||
| 	 * | ||||
| 	 * tlb_ways[n] = tlb_sizes[n] means the array is fully associative. | ||||
| 	 * | ||||
| 	 * KVM will adjust TLBnCFG based on the sizes configured here, | ||||
| 	 * though arrays greater than 2048 entries will have TLBnCFG[NENTRY] | ||||
| 	 * set to zero. | ||||
| 	 */ | ||||
| 	__u32 tlb_sizes[4]; | ||||
| 	__u32 tlb_ways[4]; | ||||
| 	__u32 reserved[8]; | ||||
| }; | ||||
| 
 | ||||
| /* For KVM_PPC_GET_HTAB_FD */ | ||||
| struct kvm_get_htab_fd { | ||||
| 	__u64	flags; | ||||
| 	__u64	start_index; | ||||
| 	__u64	reserved[2]; | ||||
| }; | ||||
| 
 | ||||
| /* Values for kvm_get_htab_fd.flags */ | ||||
| #define KVM_GET_HTAB_BOLTED_ONLY	((__u64)0x1) | ||||
| #define KVM_GET_HTAB_WRITE		((__u64)0x2) | ||||
| 
 | ||||
| /*
 | ||||
|  * Data read on the file descriptor is formatted as a series of | ||||
|  * records, each consisting of a header followed by a series of | ||||
|  * `n_valid' HPTEs (16 bytes each), which are all valid.  Following | ||||
|  * those valid HPTEs there are `n_invalid' invalid HPTEs, which | ||||
|  * are not represented explicitly in the stream.  The same format | ||||
|  * is used for writing. | ||||
|  */ | ||||
| struct kvm_get_htab_header { | ||||
| 	__u32	index; | ||||
| 	__u16	n_valid; | ||||
| 	__u16	n_invalid; | ||||
| }; | ||||
| 
 | ||||
| /* Per-vcpu XICS interrupt controller state */ | ||||
| #define KVM_REG_PPC_ICP_STATE	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x8c) | ||||
| 
 | ||||
| #define  KVM_REG_PPC_ICP_CPPR_SHIFT	56	/* current proc priority */ | ||||
| #define  KVM_REG_PPC_ICP_CPPR_MASK	0xff | ||||
| #define  KVM_REG_PPC_ICP_XISR_SHIFT	32	/* interrupt status field */ | ||||
| #define  KVM_REG_PPC_ICP_XISR_MASK	0xffffff | ||||
| #define  KVM_REG_PPC_ICP_MFRR_SHIFT	24	/* pending IPI priority */ | ||||
| #define  KVM_REG_PPC_ICP_MFRR_MASK	0xff | ||||
| #define  KVM_REG_PPC_ICP_PPRI_SHIFT	16	/* pending irq priority */ | ||||
| #define  KVM_REG_PPC_ICP_PPRI_MASK	0xff | ||||
| 
 | ||||
| /* Device control API: PPC-specific devices */ | ||||
| #define KVM_DEV_MPIC_GRP_MISC		1 | ||||
| #define   KVM_DEV_MPIC_BASE_ADDR	0	/* 64-bit */ | ||||
| 
 | ||||
| #define KVM_DEV_MPIC_GRP_REGISTER	2	/* 32-bit */ | ||||
| #define KVM_DEV_MPIC_GRP_IRQ_ACTIVE	3	/* 32-bit */ | ||||
| 
 | ||||
| /* One-Reg API: PPC-specific registers */ | ||||
| #define KVM_REG_PPC_HIOR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x1) | ||||
| #define KVM_REG_PPC_IAC1	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x2) | ||||
| #define KVM_REG_PPC_IAC2	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x3) | ||||
| #define KVM_REG_PPC_IAC3	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x4) | ||||
| #define KVM_REG_PPC_IAC4	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x5) | ||||
| #define KVM_REG_PPC_DAC1	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x6) | ||||
| #define KVM_REG_PPC_DAC2	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x7) | ||||
| #define KVM_REG_PPC_DABR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x8) | ||||
| #define KVM_REG_PPC_DSCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x9) | ||||
| #define KVM_REG_PPC_PURR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa) | ||||
| #define KVM_REG_PPC_SPURR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb) | ||||
| #define KVM_REG_PPC_DAR		(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc) | ||||
| #define KVM_REG_PPC_DSISR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xd) | ||||
| #define KVM_REG_PPC_AMR		(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xe) | ||||
| #define KVM_REG_PPC_UAMOR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xf) | ||||
| 
 | ||||
| #define KVM_REG_PPC_MMCR0	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x10) | ||||
| #define KVM_REG_PPC_MMCR1	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x11) | ||||
| #define KVM_REG_PPC_MMCRA	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x12) | ||||
| #define KVM_REG_PPC_MMCR2	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x13) | ||||
| #define KVM_REG_PPC_MMCRS	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x14) | ||||
| #define KVM_REG_PPC_SIAR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x15) | ||||
| #define KVM_REG_PPC_SDAR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x16) | ||||
| #define KVM_REG_PPC_SIER	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x17) | ||||
| 
 | ||||
| #define KVM_REG_PPC_PMC1	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x18) | ||||
| #define KVM_REG_PPC_PMC2	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x19) | ||||
| #define KVM_REG_PPC_PMC3	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x1a) | ||||
| #define KVM_REG_PPC_PMC4	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x1b) | ||||
| #define KVM_REG_PPC_PMC5	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x1c) | ||||
| #define KVM_REG_PPC_PMC6	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x1d) | ||||
| #define KVM_REG_PPC_PMC7	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x1e) | ||||
| #define KVM_REG_PPC_PMC8	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x1f) | ||||
| 
 | ||||
| /* 32 floating-point registers */ | ||||
| #define KVM_REG_PPC_FPR0	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x20) | ||||
| #define KVM_REG_PPC_FPR(n)	(KVM_REG_PPC_FPR0 + (n)) | ||||
| #define KVM_REG_PPC_FPR31	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x3f) | ||||
| 
 | ||||
| /* 32 VMX/Altivec vector registers */ | ||||
| #define KVM_REG_PPC_VR0		(KVM_REG_PPC | KVM_REG_SIZE_U128 | 0x40) | ||||
| #define KVM_REG_PPC_VR(n)	(KVM_REG_PPC_VR0 + (n)) | ||||
| #define KVM_REG_PPC_VR31	(KVM_REG_PPC | KVM_REG_SIZE_U128 | 0x5f) | ||||
| 
 | ||||
| /* 32 double-width FP registers for VSX */ | ||||
| /* High-order halves overlap with FP regs */ | ||||
| #define KVM_REG_PPC_VSR0	(KVM_REG_PPC | KVM_REG_SIZE_U128 | 0x60) | ||||
| #define KVM_REG_PPC_VSR(n)	(KVM_REG_PPC_VSR0 + (n)) | ||||
| #define KVM_REG_PPC_VSR31	(KVM_REG_PPC | KVM_REG_SIZE_U128 | 0x7f) | ||||
| 
 | ||||
| /* FP and vector status/control registers */ | ||||
| #define KVM_REG_PPC_FPSCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x80) | ||||
| /*
 | ||||
|  * VSCR register is documented as a 32-bit register in the ISA, but it can | ||||
|  * only be accesses via a vector register. Expose VSCR as a 32-bit register | ||||
|  * even though the kernel represents it as a 128-bit vector. | ||||
|  */ | ||||
| #define KVM_REG_PPC_VSCR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x81) | ||||
| 
 | ||||
| /* Virtual processor areas */ | ||||
| /* For SLB & DTL, address in high (first) half, length in low half */ | ||||
| #define KVM_REG_PPC_VPA_ADDR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x82) | ||||
| #define KVM_REG_PPC_VPA_SLB	(KVM_REG_PPC | KVM_REG_SIZE_U128 | 0x83) | ||||
| #define KVM_REG_PPC_VPA_DTL	(KVM_REG_PPC | KVM_REG_SIZE_U128 | 0x84) | ||||
| 
 | ||||
| #define KVM_REG_PPC_EPCR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x85) | ||||
| #define KVM_REG_PPC_EPR		(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x86) | ||||
| 
 | ||||
| /* Timer Status Register OR/CLEAR interface */ | ||||
| #define KVM_REG_PPC_OR_TSR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x87) | ||||
| #define KVM_REG_PPC_CLEAR_TSR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x88) | ||||
| #define KVM_REG_PPC_TCR		(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x89) | ||||
| #define KVM_REG_PPC_TSR		(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x8a) | ||||
| 
 | ||||
| /* Debugging: Special instruction for software breakpoint */ | ||||
| #define KVM_REG_PPC_DEBUG_INST	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x8b) | ||||
| 
 | ||||
| /* MMU registers */ | ||||
| #define KVM_REG_PPC_MAS0	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x8c) | ||||
| #define KVM_REG_PPC_MAS1	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x8d) | ||||
| #define KVM_REG_PPC_MAS2	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x8e) | ||||
| #define KVM_REG_PPC_MAS7_3	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x8f) | ||||
| #define KVM_REG_PPC_MAS4	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x90) | ||||
| #define KVM_REG_PPC_MAS6	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x91) | ||||
| #define KVM_REG_PPC_MMUCFG	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x92) | ||||
| /*
 | ||||
|  * TLBnCFG fields TLBnCFG_N_ENTRY and TLBnCFG_ASSOC can be changed only using | ||||
|  * KVM_CAP_SW_TLB ioctl | ||||
|  */ | ||||
| #define KVM_REG_PPC_TLB0CFG	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x93) | ||||
| #define KVM_REG_PPC_TLB1CFG	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x94) | ||||
| #define KVM_REG_PPC_TLB2CFG	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x95) | ||||
| #define KVM_REG_PPC_TLB3CFG	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x96) | ||||
| #define KVM_REG_PPC_TLB0PS	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x97) | ||||
| #define KVM_REG_PPC_TLB1PS	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x98) | ||||
| #define KVM_REG_PPC_TLB2PS	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x99) | ||||
| #define KVM_REG_PPC_TLB3PS	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x9a) | ||||
| #define KVM_REG_PPC_EPTCFG	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x9b) | ||||
| 
 | ||||
| /* Timebase offset */ | ||||
| #define KVM_REG_PPC_TB_OFFSET	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x9c) | ||||
| 
 | ||||
| /* POWER8 registers */ | ||||
| #define KVM_REG_PPC_SPMC1	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x9d) | ||||
| #define KVM_REG_PPC_SPMC2	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x9e) | ||||
| #define KVM_REG_PPC_IAMR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0x9f) | ||||
| #define KVM_REG_PPC_TFHAR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa0) | ||||
| #define KVM_REG_PPC_TFIAR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa1) | ||||
| #define KVM_REG_PPC_TEXASR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa2) | ||||
| #define KVM_REG_PPC_FSCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa3) | ||||
| #define KVM_REG_PPC_PSPB	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xa4) | ||||
| #define KVM_REG_PPC_EBBHR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa5) | ||||
| #define KVM_REG_PPC_EBBRR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa6) | ||||
| #define KVM_REG_PPC_BESCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa7) | ||||
| #define KVM_REG_PPC_TAR		(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa8) | ||||
| #define KVM_REG_PPC_DPDES	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xa9) | ||||
| #define KVM_REG_PPC_DAWR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xaa) | ||||
| #define KVM_REG_PPC_DAWRX	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xab) | ||||
| #define KVM_REG_PPC_CIABR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xac) | ||||
| #define KVM_REG_PPC_IC		(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xad) | ||||
| #define KVM_REG_PPC_VTB		(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xae) | ||||
| #define KVM_REG_PPC_CSIGR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xaf) | ||||
| #define KVM_REG_PPC_TACR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb0) | ||||
| #define KVM_REG_PPC_TCSCR	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb1) | ||||
| #define KVM_REG_PPC_PID		(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb2) | ||||
| #define KVM_REG_PPC_ACOP	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb3) | ||||
| 
 | ||||
| #define KVM_REG_PPC_VRSAVE	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xb4) | ||||
| #define KVM_REG_PPC_LPCR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xb5) | ||||
| #define KVM_REG_PPC_LPCR_64	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb5) | ||||
| #define KVM_REG_PPC_PPR		(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb6) | ||||
| 
 | ||||
| /* Architecture compatibility level */ | ||||
| #define KVM_REG_PPC_ARCH_COMPAT	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xb7) | ||||
| 
 | ||||
| #define KVM_REG_PPC_DABRX	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xb8) | ||||
| #define KVM_REG_PPC_WORT	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xb9) | ||||
| #define KVM_REG_PPC_SPRG9	(KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xba) | ||||
| #define KVM_REG_PPC_DBSR	(KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xbb) | ||||
| 
 | ||||
| /* Transactional Memory checkpointed state:
 | ||||
|  * This is all GPRs, all VSX regs and a subset of SPRs | ||||
|  */ | ||||
| #define KVM_REG_PPC_TM		(KVM_REG_PPC | 0x80000000) | ||||
| /* TM GPRs */ | ||||
| #define KVM_REG_PPC_TM_GPR0	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0) | ||||
| #define KVM_REG_PPC_TM_GPR(n)	(KVM_REG_PPC_TM_GPR0 + (n)) | ||||
| #define KVM_REG_PPC_TM_GPR31	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x1f) | ||||
| /* TM VSX */ | ||||
| #define KVM_REG_PPC_TM_VSR0	(KVM_REG_PPC_TM | KVM_REG_SIZE_U128 | 0x20) | ||||
| #define KVM_REG_PPC_TM_VSR(n)	(KVM_REG_PPC_TM_VSR0 + (n)) | ||||
| #define KVM_REG_PPC_TM_VSR63	(KVM_REG_PPC_TM | KVM_REG_SIZE_U128 | 0x5f) | ||||
| /* TM SPRS */ | ||||
| #define KVM_REG_PPC_TM_CR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x60) | ||||
| #define KVM_REG_PPC_TM_LR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x61) | ||||
| #define KVM_REG_PPC_TM_CTR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x62) | ||||
| #define KVM_REG_PPC_TM_FPSCR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x63) | ||||
| #define KVM_REG_PPC_TM_AMR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x64) | ||||
| #define KVM_REG_PPC_TM_PPR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x65) | ||||
| #define KVM_REG_PPC_TM_VRSAVE	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x66) | ||||
| #define KVM_REG_PPC_TM_VSCR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U32 | 0x67) | ||||
| #define KVM_REG_PPC_TM_DSCR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x68) | ||||
| #define KVM_REG_PPC_TM_TAR	(KVM_REG_PPC_TM | KVM_REG_SIZE_U64 | 0x69) | ||||
| 
 | ||||
| /* PPC64 eXternal Interrupt Controller Specification */ | ||||
| #define KVM_DEV_XICS_GRP_SOURCES	1	/* 64-bit source attributes */ | ||||
| 
 | ||||
| /* Layout of 64-bit source attribute values */ | ||||
| #define  KVM_XICS_DESTINATION_SHIFT	0 | ||||
| #define  KVM_XICS_DESTINATION_MASK	0xffffffffULL | ||||
| #define  KVM_XICS_PRIORITY_SHIFT	32 | ||||
| #define  KVM_XICS_PRIORITY_MASK		0xff | ||||
| #define  KVM_XICS_LEVEL_SENSITIVE	(1ULL << 40) | ||||
| #define  KVM_XICS_MASKED		(1ULL << 41) | ||||
| #define  KVM_XICS_PENDING		(1ULL << 42) | ||||
| 
 | ||||
| #endif /* __LINUX_KVM_POWERPC_H */ | ||||
							
								
								
									
										97
									
								
								arch/powerpc/include/uapi/asm/kvm_para.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								arch/powerpc/include/uapi/asm/kvm_para.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | |||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License, version 2, as | ||||
|  * published by the Free Software Foundation. | ||||
|  * | ||||
|  * This program 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 General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||
|  * | ||||
|  * Copyright IBM Corp. 2008 | ||||
|  * | ||||
|  * Authors: Hollis Blanchard <hollisb@us.ibm.com> | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _UAPI__POWERPC_KVM_PARA_H__ | ||||
| #define _UAPI__POWERPC_KVM_PARA_H__ | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| /*
 | ||||
|  * Additions to this struct must only occur at the end, and should be | ||||
|  * accompanied by a KVM_MAGIC_FEAT flag to advertise that they are present | ||||
|  * (albeit not necessarily relevant to the current target hardware platform). | ||||
|  * | ||||
|  * Struct fields are always 32 or 64 bit aligned, depending on them being 32 | ||||
|  * or 64 bit wide respectively. | ||||
|  * | ||||
|  * See Documentation/virtual/kvm/ppc-pv.txt | ||||
|  */ | ||||
| struct kvm_vcpu_arch_shared { | ||||
| 	__u64 scratch1; | ||||
| 	__u64 scratch2; | ||||
| 	__u64 scratch3; | ||||
| 	__u64 critical;		/* Guest may not get interrupts if == r1 */ | ||||
| 	__u64 sprg0; | ||||
| 	__u64 sprg1; | ||||
| 	__u64 sprg2; | ||||
| 	__u64 sprg3; | ||||
| 	__u64 srr0; | ||||
| 	__u64 srr1; | ||||
| 	__u64 dar;		/* dear on BookE */ | ||||
| 	__u64 msr; | ||||
| 	__u32 dsisr; | ||||
| 	__u32 int_pending;	/* Tells the guest if we have an interrupt */ | ||||
| 	__u32 sr[16]; | ||||
| 	__u32 mas0; | ||||
| 	__u32 mas1; | ||||
| 	__u64 mas7_3; | ||||
| 	__u64 mas2; | ||||
| 	__u32 mas4; | ||||
| 	__u32 mas6; | ||||
| 	__u32 esr; | ||||
| 	__u32 pir; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * SPRG4-7 are user-readable, so we can only keep these consistent | ||||
| 	 * between the shared area and the real registers when there's an | ||||
| 	 * intervening exit to KVM.  This also applies to SPRG3 on some | ||||
| 	 * chips. | ||||
| 	 * | ||||
| 	 * This suffices for access by guest userspace, since in PR-mode | ||||
| 	 * KVM, an exit must occur when changing the guest's MSR[PR]. | ||||
| 	 * If the guest kernel writes to SPRG3-7 via the shared area, it | ||||
| 	 * must also use the shared area for reading while in kernel space. | ||||
| 	 */ | ||||
| 	__u64 sprg4; | ||||
| 	__u64 sprg5; | ||||
| 	__u64 sprg6; | ||||
| 	__u64 sprg7; | ||||
| }; | ||||
| 
 | ||||
| #define KVM_SC_MAGIC_R0		0x4b564d21 /* "KVM!" */ | ||||
| 
 | ||||
| #define KVM_HCALL_TOKEN(num)     _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, num) | ||||
| 
 | ||||
| #include <asm/epapr_hcalls.h> | ||||
| 
 | ||||
| #define KVM_FEATURE_MAGIC_PAGE	1 | ||||
| 
 | ||||
| /* Magic page flags from host to guest */ | ||||
| 
 | ||||
| #define KVM_MAGIC_FEAT_SR		(1 << 0) | ||||
| 
 | ||||
| /* MASn, ESR, PIR, and high SPRGs */ | ||||
| #define KVM_MAGIC_FEAT_MAS0_TO_SPRG7	(1 << 1) | ||||
| 
 | ||||
| /* Magic page flags from guest to host */ | ||||
| 
 | ||||
| #define MAGIC_PAGE_FLAG_NOT_MAPPED_NX	(1 << 0) | ||||
| 
 | ||||
| 
 | ||||
| #endif /* _UAPI__POWERPC_KVM_PARA_H__ */ | ||||
							
								
								
									
										31
									
								
								arch/powerpc/include/uapi/asm/mman.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								arch/powerpc/include/uapi/asm/mman.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifndef _UAPI_ASM_POWERPC_MMAN_H | ||||
| #define _UAPI_ASM_POWERPC_MMAN_H | ||||
| 
 | ||||
| #include <asm-generic/mman-common.h> | ||||
| 
 | ||||
| 
 | ||||
| #define PROT_SAO	0x10		/* Strong Access Ordering */ | ||||
| 
 | ||||
| #define MAP_RENAME      MAP_ANONYMOUS   /* In SunOS terminology */ | ||||
| #define MAP_NORESERVE   0x40            /* don't reserve swap pages */ | ||||
| #define MAP_LOCKED	0x80 | ||||
| 
 | ||||
| #define MAP_GROWSDOWN	0x0100		/* stack-like segment */ | ||||
| #define MAP_DENYWRITE	0x0800		/* ETXTBSY */ | ||||
| #define MAP_EXECUTABLE	0x1000		/* mark it as an executable */ | ||||
| 
 | ||||
| #define MCL_CURRENT     0x2000          /* lock all currently mapped pages */ | ||||
| #define MCL_FUTURE      0x4000          /* lock all additions to address space */ | ||||
| 
 | ||||
| #define MAP_POPULATE	0x8000		/* populate (prefault) pagetables */ | ||||
| #define MAP_NONBLOCK	0x10000		/* do not block on IO */ | ||||
| #define MAP_STACK	0x20000		/* give out an address that is best suited for process/thread stacks */ | ||||
| #define MAP_HUGETLB	0x40000		/* create a huge page mapping */ | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_MMAN_H */ | ||||
							
								
								
									
										33
									
								
								arch/powerpc/include/uapi/asm/msgbuf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								arch/powerpc/include/uapi/asm/msgbuf.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | |||
| #ifndef _ASM_POWERPC_MSGBUF_H | ||||
| #define _ASM_POWERPC_MSGBUF_H | ||||
| 
 | ||||
| /*
 | ||||
|  * The msqid64_ds structure for the PowerPC architecture. | ||||
|  * Note extra padding because this structure is passed back and forth | ||||
|  * between kernel and user space. | ||||
|  */ | ||||
| 
 | ||||
| struct msqid64_ds { | ||||
| 	struct ipc64_perm msg_perm; | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned int	__unused1; | ||||
| #endif | ||||
| 	__kernel_time_t msg_stime;	/* last msgsnd time */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned int	__unused2; | ||||
| #endif | ||||
| 	__kernel_time_t msg_rtime;	/* last msgrcv time */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned int	__unused3; | ||||
| #endif | ||||
| 	__kernel_time_t msg_ctime;	/* last change time */ | ||||
| 	unsigned long  msg_cbytes;	/* current number of bytes on queue */ | ||||
| 	unsigned long  msg_qnum;	/* number of messages in queue */ | ||||
| 	unsigned long  msg_qbytes;	/* max number of bytes on queue */ | ||||
| 	__kernel_pid_t msg_lspid;	/* pid of last msgsnd */ | ||||
| 	__kernel_pid_t msg_lrpid;	/* last receive pid */ | ||||
| 	unsigned long  __unused4; | ||||
| 	unsigned long  __unused5; | ||||
| }; | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_MSGBUF_H */ | ||||
							
								
								
									
										62
									
								
								arch/powerpc/include/uapi/asm/nvram.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								arch/powerpc/include/uapi/asm/nvram.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | |||
| /*
 | ||||
|  * NVRAM definitions and access functions. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _UAPI_ASM_POWERPC_NVRAM_H | ||||
| #define _UAPI_ASM_POWERPC_NVRAM_H | ||||
| 
 | ||||
| /* Signatures for nvram partitions */ | ||||
| #define NVRAM_SIG_SP	0x02	/* support processor */ | ||||
| #define NVRAM_SIG_OF	0x50	/* open firmware config */ | ||||
| #define NVRAM_SIG_FW	0x51	/* general firmware */ | ||||
| #define NVRAM_SIG_HW	0x52	/* hardware (VPD) */ | ||||
| #define NVRAM_SIG_FLIP	0x5a	/* Apple flip/flop header */ | ||||
| #define NVRAM_SIG_APPL	0x5f	/* Apple "system" (???) */ | ||||
| #define NVRAM_SIG_SYS	0x70	/* system env vars */ | ||||
| #define NVRAM_SIG_CFG	0x71	/* config data */ | ||||
| #define NVRAM_SIG_ELOG	0x72	/* error log */ | ||||
| #define NVRAM_SIG_VEND	0x7e	/* vendor defined */ | ||||
| #define NVRAM_SIG_FREE	0x7f	/* Free space */ | ||||
| #define NVRAM_SIG_OS	0xa0	/* OS defined */ | ||||
| #define NVRAM_SIG_PANIC	0xa1	/* Apple OSX "panic" */ | ||||
| 
 | ||||
| 
 | ||||
| /* PowerMac specific nvram stuffs */ | ||||
| 
 | ||||
| enum { | ||||
| 	pmac_nvram_OF,		/* Open Firmware partition */ | ||||
| 	pmac_nvram_XPRAM,	/* MacOS XPRAM partition */ | ||||
| 	pmac_nvram_NR		/* MacOS Name Registry partition */ | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| /* Some offsets in XPRAM */ | ||||
| #define PMAC_XPRAM_MACHINE_LOC	0xe4 | ||||
| #define PMAC_XPRAM_SOUND_VOLUME	0x08 | ||||
| 
 | ||||
| /* Machine location structure in PowerMac XPRAM */ | ||||
| struct pmac_machine_location { | ||||
| 	unsigned int	latitude;	/* 2+30 bit Fractional number */ | ||||
| 	unsigned int	longitude;	/* 2+30 bit Fractional number */ | ||||
| 	unsigned int	delta;		/* mix of GMT delta and DLS */ | ||||
| }; | ||||
| 
 | ||||
| /*
 | ||||
|  * /dev/nvram ioctls | ||||
|  * | ||||
|  * Note that PMAC_NVRAM_GET_OFFSET is still supported, but is | ||||
|  * definitely obsolete. Do not use it if you can avoid it | ||||
|  */ | ||||
| 
 | ||||
| #define OBSOLETE_PMAC_NVRAM_GET_OFFSET \ | ||||
| 				_IOWR('p', 0x40, int) | ||||
| 
 | ||||
| #define IOC_NVRAM_GET_OFFSET	_IOWR('p', 0x42, int)	/* Get NVRAM partition offset */ | ||||
| #define IOC_NVRAM_SYNC		_IO('p', 0x43)		/* Sync NVRAM image */ | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_NVRAM_H */ | ||||
							
								
								
									
										1
									
								
								arch/powerpc/include/uapi/asm/param.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								arch/powerpc/include/uapi/asm/param.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| #include <asm-generic/param.h> | ||||
							
								
								
									
										18
									
								
								arch/powerpc/include/uapi/asm/perf_event.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								arch/powerpc/include/uapi/asm/perf_event.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| /*
 | ||||
|  * Copyright 2013 Michael Ellerman, IBM Corp. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; version 2 of the | ||||
|  * License. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _UAPI_ASM_POWERPC_PERF_EVENT_H | ||||
| #define _UAPI_ASM_POWERPC_PERF_EVENT_H | ||||
| 
 | ||||
| /*
 | ||||
|  * We use bit 63 of perf_event_attr.config as a flag to request EBB. | ||||
|  */ | ||||
| #define PERF_EVENT_CONFIG_EBB_SHIFT	63 | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_PERF_EVENT_H */ | ||||
							
								
								
									
										1
									
								
								arch/powerpc/include/uapi/asm/poll.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								arch/powerpc/include/uapi/asm/poll.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| #include <asm-generic/poll.h> | ||||
							
								
								
									
										25
									
								
								arch/powerpc/include/uapi/asm/posix_types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								arch/powerpc/include/uapi/asm/posix_types.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | |||
| #ifndef _ASM_POWERPC_POSIX_TYPES_H | ||||
| #define _ASM_POWERPC_POSIX_TYPES_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This file is generally used by user-level software, so you need to | ||||
|  * be a little careful about namespace pollution etc.  Also, we cannot | ||||
|  * assume GCC is being used. | ||||
|  */ | ||||
| 
 | ||||
| #ifdef __powerpc64__ | ||||
| typedef unsigned long	__kernel_old_dev_t; | ||||
| #define __kernel_old_dev_t __kernel_old_dev_t | ||||
| #else | ||||
| typedef unsigned int	__kernel_size_t; | ||||
| typedef int		__kernel_ssize_t; | ||||
| typedef long		__kernel_ptrdiff_t; | ||||
| #define __kernel_size_t __kernel_size_t | ||||
| 
 | ||||
| typedef short		__kernel_ipc_pid_t; | ||||
| #define __kernel_ipc_pid_t __kernel_ipc_pid_t | ||||
| #endif | ||||
| 
 | ||||
| #include <asm-generic/posix_types.h> | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_POSIX_TYPES_H */ | ||||
							
								
								
									
										45
									
								
								arch/powerpc/include/uapi/asm/ps3fb.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								arch/powerpc/include/uapi/asm/ps3fb.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | |||
| /*
 | ||||
|  * Copyright (C) 2006 Sony Computer Entertainment Inc. | ||||
|  * Copyright 2006, 2007 Sony Corporation | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or modify it | ||||
|  * under the terms of the GNU General Public License as published | ||||
|  * by the Free Software Foundation; version 2 of the License. | ||||
|  * | ||||
|  * This program 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 | ||||
|  * General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License along | ||||
|  * with this program; if not, write to the Free Software Foundation, Inc., | ||||
|  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _ASM_POWERPC_PS3FB_H_ | ||||
| #define _ASM_POWERPC_PS3FB_H_ | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/ioctl.h> | ||||
| 
 | ||||
| /* ioctl */ | ||||
| #define PS3FB_IOCTL_SETMODE       _IOW('r',  1, int) /* set video mode */ | ||||
| #define PS3FB_IOCTL_GETMODE       _IOR('r',  2, int) /* get video mode */ | ||||
| #define PS3FB_IOCTL_SCREENINFO    _IOR('r',  3, int) /* get screen info */ | ||||
| #define PS3FB_IOCTL_ON            _IO('r', 4)        /* use IOCTL_FSEL */ | ||||
| #define PS3FB_IOCTL_OFF           _IO('r', 5)        /* return to normal-flip */ | ||||
| #define PS3FB_IOCTL_FSEL          _IOW('r', 6, int)  /* blit and flip request */ | ||||
| 
 | ||||
| #ifndef FBIO_WAITFORVSYNC | ||||
| #define FBIO_WAITFORVSYNC         _IOW('F', 0x20, __u32) /* wait for vsync */ | ||||
| #endif | ||||
| 
 | ||||
| struct ps3fb_ioctl_res { | ||||
| 	__u32 xres; /* frame buffer x_size */ | ||||
| 	__u32 yres; /* frame buffer y_size */ | ||||
| 	__u32 xoff; /* margine x  */ | ||||
| 	__u32 yoff; /* margine y */ | ||||
| 	__u32 num_frames; /* num of frame buffers */ | ||||
| }; | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_PS3FB_H_ */ | ||||
							
								
								
									
										261
									
								
								arch/powerpc/include/uapi/asm/ptrace.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										261
									
								
								arch/powerpc/include/uapi/asm/ptrace.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,261 @@ | |||
| /*
 | ||||
|  * Copyright (C) 2001 PPC64 Team, IBM Corp | ||||
|  * | ||||
|  * This struct defines the way the registers are stored on the | ||||
|  * kernel stack during a system call or other kernel entry. | ||||
|  * | ||||
|  * this should only contain volatile regs | ||||
|  * since we can keep non-volatile in the thread_struct | ||||
|  * should set this up when only volatiles are saved | ||||
|  * by intr code. | ||||
|  * | ||||
|  * Since this is going on the stack, *CARE MUST BE TAKEN* to insure | ||||
|  * that the overall structure is a multiple of 16 bytes in length. | ||||
|  * | ||||
|  * Note that the offsets of the fields in this struct correspond with | ||||
|  * the PT_* values below.  This simplifies arch/powerpc/kernel/ptrace.c. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifndef _UAPI_ASM_POWERPC_PTRACE_H | ||||
| #define _UAPI_ASM_POWERPC_PTRACE_H | ||||
| 
 | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| #ifndef __ASSEMBLY__ | ||||
| 
 | ||||
| struct pt_regs { | ||||
| 	unsigned long gpr[32]; | ||||
| 	unsigned long nip; | ||||
| 	unsigned long msr; | ||||
| 	unsigned long orig_gpr3;	/* Used for restarting system calls */ | ||||
| 	unsigned long ctr; | ||||
| 	unsigned long link; | ||||
| 	unsigned long xer; | ||||
| 	unsigned long ccr; | ||||
| #ifdef __powerpc64__ | ||||
| 	unsigned long softe;		/* Soft enabled/disabled */ | ||||
| #else | ||||
| 	unsigned long mq;		/* 601 only (not used at present) */ | ||||
| 					/* Used on APUS to hold IPL value. */ | ||||
| #endif | ||||
| 	unsigned long trap;		/* Reason for being here */ | ||||
| 	/* N.B. for critical exceptions on 4xx, the dar and dsisr
 | ||||
| 	   fields are overloaded to hold srr0 and srr1. */ | ||||
| 	unsigned long dar;		/* Fault registers */ | ||||
| 	unsigned long dsisr;		/* on 4xx/Book-E used for ESR */ | ||||
| 	unsigned long result;		/* Result of a system call */ | ||||
| }; | ||||
| 
 | ||||
| #endif /* __ASSEMBLY__ */ | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
|  * Offsets used by 'ptrace' system call interface. | ||||
|  * These can't be changed without breaking binary compatibility | ||||
|  * with MkLinux, etc. | ||||
|  */ | ||||
| #define PT_R0	0 | ||||
| #define PT_R1	1 | ||||
| #define PT_R2	2 | ||||
| #define PT_R3	3 | ||||
| #define PT_R4	4 | ||||
| #define PT_R5	5 | ||||
| #define PT_R6	6 | ||||
| #define PT_R7	7 | ||||
| #define PT_R8	8 | ||||
| #define PT_R9	9 | ||||
| #define PT_R10	10 | ||||
| #define PT_R11	11 | ||||
| #define PT_R12	12 | ||||
| #define PT_R13	13 | ||||
| #define PT_R14	14 | ||||
| #define PT_R15	15 | ||||
| #define PT_R16	16 | ||||
| #define PT_R17	17 | ||||
| #define PT_R18	18 | ||||
| #define PT_R19	19 | ||||
| #define PT_R20	20 | ||||
| #define PT_R21	21 | ||||
| #define PT_R22	22 | ||||
| #define PT_R23	23 | ||||
| #define PT_R24	24 | ||||
| #define PT_R25	25 | ||||
| #define PT_R26	26 | ||||
| #define PT_R27	27 | ||||
| #define PT_R28	28 | ||||
| #define PT_R29	29 | ||||
| #define PT_R30	30 | ||||
| #define PT_R31	31 | ||||
| 
 | ||||
| #define PT_NIP	32 | ||||
| #define PT_MSR	33 | ||||
| #define PT_ORIG_R3 34 | ||||
| #define PT_CTR	35 | ||||
| #define PT_LNK	36 | ||||
| #define PT_XER	37 | ||||
| #define PT_CCR	38 | ||||
| #ifndef __powerpc64__ | ||||
| #define PT_MQ	39 | ||||
| #else | ||||
| #define PT_SOFTE 39 | ||||
| #endif | ||||
| #define PT_TRAP	40 | ||||
| #define PT_DAR	41 | ||||
| #define PT_DSISR 42 | ||||
| #define PT_RESULT 43 | ||||
| #define PT_DSCR 44 | ||||
| #define PT_REGS_COUNT 44 | ||||
| 
 | ||||
| #define PT_FPR0	48	/* each FP reg occupies 2 slots in this space */ | ||||
| 
 | ||||
| #ifndef __powerpc64__ | ||||
| 
 | ||||
| #define PT_FPR31 (PT_FPR0 + 2*31) | ||||
| #define PT_FPSCR (PT_FPR0 + 2*32 + 1) | ||||
| 
 | ||||
| #else /* __powerpc64__ */ | ||||
| 
 | ||||
| #define PT_FPSCR (PT_FPR0 + 32)	/* each FP reg occupies 1 slot in 64-bit space */ | ||||
| 
 | ||||
| 
 | ||||
| #define PT_VR0 82	/* each Vector reg occupies 2 slots in 64-bit */ | ||||
| #define PT_VSCR (PT_VR0 + 32*2 + 1) | ||||
| #define PT_VRSAVE (PT_VR0 + 33*2) | ||||
| 
 | ||||
| 
 | ||||
| /*
 | ||||
|  * Only store first 32 VSRs here. The second 32 VSRs in VR0-31 | ||||
|  */ | ||||
| #define PT_VSR0 150	/* each VSR reg occupies 2 slots in 64-bit */ | ||||
| #define PT_VSR31 (PT_VSR0 + 2*31) | ||||
| #endif /* __powerpc64__ */ | ||||
| 
 | ||||
| /*
 | ||||
|  * Get/set all the altivec registers vr0..vr31, vscr, vrsave, in one go. | ||||
|  * The transfer totals 34 quadword.  Quadwords 0-31 contain the | ||||
|  * corresponding vector registers.  Quadword 32 contains the vscr as the | ||||
|  * last word (offset 12) within that quadword.  Quadword 33 contains the | ||||
|  * vrsave as the first word (offset 0) within the quadword. | ||||
|  * | ||||
|  * This definition of the VMX state is compatible with the current PPC32 | ||||
|  * ptrace interface.  This allows signal handling and ptrace to use the same | ||||
|  * structures.  This also simplifies the implementation of a bi-arch | ||||
|  * (combined (32- and 64-bit) gdb. | ||||
|  */ | ||||
| #define PTRACE_GETVRREGS	0x12 | ||||
| #define PTRACE_SETVRREGS	0x13 | ||||
| 
 | ||||
| /* Get/set all the upper 32-bits of the SPE registers, accumulator, and
 | ||||
|  * spefscr, in one go */ | ||||
| #define PTRACE_GETEVRREGS	0x14 | ||||
| #define PTRACE_SETEVRREGS	0x15 | ||||
| 
 | ||||
| /* Get the first 32 128bit VSX registers */ | ||||
| #define PTRACE_GETVSRREGS	0x1b | ||||
| #define PTRACE_SETVSRREGS	0x1c | ||||
| 
 | ||||
| /*
 | ||||
|  * Get or set a debug register. The first 16 are DABR registers and the | ||||
|  * second 16 are IABR registers. | ||||
|  */ | ||||
| #define PTRACE_GET_DEBUGREG	0x19 | ||||
| #define PTRACE_SET_DEBUGREG	0x1a | ||||
| 
 | ||||
| /* (new) PTRACE requests using the same numbers as x86 and the same
 | ||||
|  * argument ordering. Additionally, they support more registers too | ||||
|  */ | ||||
| #define PTRACE_GETREGS            0xc | ||||
| #define PTRACE_SETREGS            0xd | ||||
| #define PTRACE_GETFPREGS          0xe | ||||
| #define PTRACE_SETFPREGS          0xf | ||||
| #define PTRACE_GETREGS64	  0x16 | ||||
| #define PTRACE_SETREGS64	  0x17 | ||||
| 
 | ||||
| /* Calls to trace a 64bit program from a 32bit program */ | ||||
| #define PPC_PTRACE_PEEKTEXT_3264 0x95 | ||||
| #define PPC_PTRACE_PEEKDATA_3264 0x94 | ||||
| #define PPC_PTRACE_POKETEXT_3264 0x93 | ||||
| #define PPC_PTRACE_POKEDATA_3264 0x92 | ||||
| #define PPC_PTRACE_PEEKUSR_3264  0x91 | ||||
| #define PPC_PTRACE_POKEUSR_3264  0x90 | ||||
| 
 | ||||
| #define PTRACE_SINGLEBLOCK	0x100	/* resume execution until next branch */ | ||||
| 
 | ||||
| #define PPC_PTRACE_GETHWDBGINFO	0x89 | ||||
| #define PPC_PTRACE_SETHWDEBUG	0x88 | ||||
| #define PPC_PTRACE_DELHWDEBUG	0x87 | ||||
| 
 | ||||
| #ifndef __ASSEMBLY__ | ||||
| 
 | ||||
| struct ppc_debug_info { | ||||
| 	__u32 version;			/* Only version 1 exists to date */ | ||||
| 	__u32 num_instruction_bps; | ||||
| 	__u32 num_data_bps; | ||||
| 	__u32 num_condition_regs; | ||||
| 	__u32 data_bp_alignment; | ||||
| 	__u32 sizeof_condition;		/* size of the DVC register */ | ||||
| 	__u64 features; | ||||
| }; | ||||
| 
 | ||||
| #endif /* __ASSEMBLY__ */ | ||||
| 
 | ||||
| /*
 | ||||
|  * features will have bits indication whether there is support for: | ||||
|  */ | ||||
| #define PPC_DEBUG_FEATURE_INSN_BP_RANGE		0x0000000000000001 | ||||
| #define PPC_DEBUG_FEATURE_INSN_BP_MASK		0x0000000000000002 | ||||
| #define PPC_DEBUG_FEATURE_DATA_BP_RANGE		0x0000000000000004 | ||||
| #define PPC_DEBUG_FEATURE_DATA_BP_MASK		0x0000000000000008 | ||||
| #define PPC_DEBUG_FEATURE_DATA_BP_DAWR		0x0000000000000010 | ||||
| 
 | ||||
| #ifndef __ASSEMBLY__ | ||||
| 
 | ||||
| struct ppc_hw_breakpoint { | ||||
| 	__u32 version;		/* currently, version must be 1 */ | ||||
| 	__u32 trigger_type;	/* only some combinations allowed */ | ||||
| 	__u32 addr_mode;	/* address match mode */ | ||||
| 	__u32 condition_mode;	/* break/watchpoint condition flags */ | ||||
| 	__u64 addr;		/* break/watchpoint address */ | ||||
| 	__u64 addr2;		/* range end or mask */ | ||||
| 	__u64 condition_value;	/* contents of the DVC register */ | ||||
| }; | ||||
| 
 | ||||
| #endif /* __ASSEMBLY__ */ | ||||
| 
 | ||||
| /*
 | ||||
|  * Trigger Type | ||||
|  */ | ||||
| #define PPC_BREAKPOINT_TRIGGER_EXECUTE	0x00000001 | ||||
| #define PPC_BREAKPOINT_TRIGGER_READ	0x00000002 | ||||
| #define PPC_BREAKPOINT_TRIGGER_WRITE	0x00000004 | ||||
| #define PPC_BREAKPOINT_TRIGGER_RW	\ | ||||
| 	(PPC_BREAKPOINT_TRIGGER_READ | PPC_BREAKPOINT_TRIGGER_WRITE) | ||||
| 
 | ||||
| /*
 | ||||
|  * Address Mode | ||||
|  */ | ||||
| #define PPC_BREAKPOINT_MODE_EXACT		0x00000000 | ||||
| #define PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE	0x00000001 | ||||
| #define PPC_BREAKPOINT_MODE_RANGE_EXCLUSIVE	0x00000002 | ||||
| #define PPC_BREAKPOINT_MODE_MASK		0x00000003 | ||||
| 
 | ||||
| /*
 | ||||
|  * Condition Mode | ||||
|  */ | ||||
| #define PPC_BREAKPOINT_CONDITION_MODE	0x00000003 | ||||
| #define PPC_BREAKPOINT_CONDITION_NONE	0x00000000 | ||||
| #define PPC_BREAKPOINT_CONDITION_AND	0x00000001 | ||||
| #define PPC_BREAKPOINT_CONDITION_EXACT	PPC_BREAKPOINT_CONDITION_AND | ||||
| #define PPC_BREAKPOINT_CONDITION_OR	0x00000002 | ||||
| #define PPC_BREAKPOINT_CONDITION_AND_OR	0x00000003 | ||||
| #define PPC_BREAKPOINT_CONDITION_BE_ALL	0x00ff0000 | ||||
| #define PPC_BREAKPOINT_CONDITION_BE_SHIFT	16 | ||||
| #define PPC_BREAKPOINT_CONDITION_BE(n)	\ | ||||
| 	(1<<((n)+PPC_BREAKPOINT_CONDITION_BE_SHIFT)) | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_PTRACE_H */ | ||||
							
								
								
									
										1
									
								
								arch/powerpc/include/uapi/asm/resource.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								arch/powerpc/include/uapi/asm/resource.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| #include <asm-generic/resource.h> | ||||
							
								
								
									
										16
									
								
								arch/powerpc/include/uapi/asm/seccomp.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								arch/powerpc/include/uapi/asm/seccomp.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| #ifndef _ASM_POWERPC_SECCOMP_H | ||||
| #define _ASM_POWERPC_SECCOMP_H | ||||
| 
 | ||||
| #include <linux/unistd.h> | ||||
| 
 | ||||
| #define __NR_seccomp_read __NR_read | ||||
| #define __NR_seccomp_write __NR_write | ||||
| #define __NR_seccomp_exit __NR_exit | ||||
| #define __NR_seccomp_sigreturn __NR_rt_sigreturn | ||||
| 
 | ||||
| #define __NR_seccomp_read_32 __NR_read | ||||
| #define __NR_seccomp_write_32 __NR_write | ||||
| #define __NR_seccomp_exit_32 __NR_exit | ||||
| #define __NR_seccomp_sigreturn_32 __NR_sigreturn | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_SECCOMP_H */ | ||||
							
								
								
									
										36
									
								
								arch/powerpc/include/uapi/asm/sembuf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								arch/powerpc/include/uapi/asm/sembuf.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| #ifndef _ASM_POWERPC_SEMBUF_H | ||||
| #define _ASM_POWERPC_SEMBUF_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| /*
 | ||||
|  * The semid64_ds structure for PPC architecture. | ||||
|  * Note extra padding because this structure is passed back and forth | ||||
|  * between kernel and user space. | ||||
|  * | ||||
|  * Pad space is left for: | ||||
|  * - 64-bit time_t to solve y2038 problem | ||||
|  * - 2 miscellaneous 32-bit values | ||||
|  */ | ||||
| 
 | ||||
| struct semid64_ds { | ||||
| 	struct ipc64_perm sem_perm;	/* permissions .. see ipc.h */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned long	__unused1; | ||||
| #endif | ||||
| 	__kernel_time_t	sem_otime;	/* last semop time */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned long	__unused2; | ||||
| #endif | ||||
| 	__kernel_time_t	sem_ctime;	/* last change time */ | ||||
| 	unsigned long	sem_nsems;	/* no. of semaphores in array */ | ||||
| 	unsigned long	__unused3; | ||||
| 	unsigned long	__unused4; | ||||
| }; | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_SEMBUF_H */ | ||||
							
								
								
									
										6
									
								
								arch/powerpc/include/uapi/asm/setup.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								arch/powerpc/include/uapi/asm/setup.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| #ifndef _UAPI_ASM_POWERPC_SETUP_H | ||||
| #define _UAPI_ASM_POWERPC_SETUP_H | ||||
| 
 | ||||
| #define COMMAND_LINE_SIZE	2048 | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_SETUP_H */ | ||||
							
								
								
									
										59
									
								
								arch/powerpc/include/uapi/asm/shmbuf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								arch/powerpc/include/uapi/asm/shmbuf.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,59 @@ | |||
| #ifndef _ASM_POWERPC_SHMBUF_H | ||||
| #define _ASM_POWERPC_SHMBUF_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| /*
 | ||||
|  * The shmid64_ds structure for PPC architecture. | ||||
|  * | ||||
|  * Note extra padding because this structure is passed back and forth | ||||
|  * between kernel and user space. | ||||
|  * | ||||
|  * Pad space is left for: | ||||
|  * - 64-bit time_t to solve y2038 problem | ||||
|  * - 2 miscellaneous 32-bit values | ||||
|  */ | ||||
| 
 | ||||
| struct shmid64_ds { | ||||
| 	struct ipc64_perm	shm_perm;	/* operation perms */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned long		__unused1; | ||||
| #endif | ||||
| 	__kernel_time_t		shm_atime;	/* last attach time */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned long		__unused2; | ||||
| #endif | ||||
| 	__kernel_time_t		shm_dtime;	/* last detach time */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned long		__unused3; | ||||
| #endif | ||||
| 	__kernel_time_t		shm_ctime;	/* last change time */ | ||||
| #ifndef __powerpc64__ | ||||
| 	unsigned long		__unused4; | ||||
| #endif | ||||
| 	size_t			shm_segsz;	/* size of segment (bytes) */ | ||||
| 	__kernel_pid_t		shm_cpid;	/* pid of creator */ | ||||
| 	__kernel_pid_t		shm_lpid;	/* pid of last operator */ | ||||
| 	unsigned long		shm_nattch;	/* no. of current attaches */ | ||||
| 	unsigned long		__unused5; | ||||
| 	unsigned long		__unused6; | ||||
| }; | ||||
| 
 | ||||
| struct shminfo64 { | ||||
| 	unsigned long	shmmax; | ||||
| 	unsigned long	shmmin; | ||||
| 	unsigned long	shmmni; | ||||
| 	unsigned long	shmseg; | ||||
| 	unsigned long	shmall; | ||||
| 	unsigned long	__unused1; | ||||
| 	unsigned long	__unused2; | ||||
| 	unsigned long	__unused3; | ||||
| 	unsigned long	__unused4; | ||||
| }; | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_SHMBUF_H */ | ||||
							
								
								
									
										87
									
								
								arch/powerpc/include/uapi/asm/sigcontext.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								arch/powerpc/include/uapi/asm/sigcontext.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,87 @@ | |||
| #ifndef _ASM_POWERPC_SIGCONTEXT_H | ||||
| #define _ASM_POWERPC_SIGCONTEXT_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #include <linux/compiler.h> | ||||
| #include <asm/ptrace.h> | ||||
| #ifdef __powerpc64__ | ||||
| #include <asm/elf.h> | ||||
| #endif | ||||
| 
 | ||||
| struct sigcontext { | ||||
| 	unsigned long	_unused[4]; | ||||
| 	int		signal; | ||||
| #ifdef __powerpc64__ | ||||
| 	int		_pad0; | ||||
| #endif | ||||
| 	unsigned long	handler; | ||||
| 	unsigned long	oldmask; | ||||
| 	struct pt_regs	__user *regs; | ||||
| #ifdef __powerpc64__ | ||||
| 	elf_gregset_t	gp_regs; | ||||
| 	elf_fpregset_t	fp_regs; | ||||
| /*
 | ||||
|  * To maintain compatibility with current implementations the sigcontext is | ||||
|  * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t) | ||||
|  * followed by an unstructured (vmx_reserve) field of 69 doublewords.  This | ||||
|  * allows the array of vector registers to be quadword aligned independent of | ||||
|  * the alignment of the containing sigcontext or ucontext. It is the | ||||
|  * responsibility of the code setting the sigcontext to set this pointer to | ||||
|  * either NULL (if this processor does not support the VMX feature) or the | ||||
|  * address of the first quadword within the allocated (vmx_reserve) area. | ||||
|  * | ||||
|  * The pointer (v_regs) of vector type (elf_vrreg_t) is type compatible with | ||||
|  * an array of 34 quadword entries (elf_vrregset_t).  The entries with | ||||
|  * indexes 0-31 contain the corresponding vector registers.  The entry with | ||||
|  * index 32 contains the vscr as the last word (offset 12) within the | ||||
|  * quadword.  This allows the vscr to be stored as either a quadword (since | ||||
|  * it must be copied via a vector register to/from storage) or as a word. | ||||
|  * The entry with index 33 contains the vrsave as the first word (offset 0) | ||||
|  * within the quadword. | ||||
|  * | ||||
|  * Part of the VSX data is stored here also by extending vmx_restore | ||||
|  * by an additional 32 double words.  Architecturally the layout of | ||||
|  * the VSR registers and how they overlap on top of the legacy FPR and | ||||
|  * VR registers is shown below: | ||||
|  * | ||||
|  *                    VSR doubleword 0               VSR doubleword 1 | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[0]  |             FPR[0]            |                              | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[1]  |             FPR[1]            |                              | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *           |              ...              |                              | | ||||
|  *           |              ...              |                              | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[30] |             FPR[30]           |                              | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[31] |             FPR[31]           |                              | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[32] |                             VR[0]                            | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[33] |                             VR[1]                            | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *           |                              ...                             | | ||||
|  *           |                              ...                             | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[62] |                             VR[30]                           | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  *   VSR[63] |                             VR[31]                           | | ||||
|  *           ---------------------------------------------------------------- | ||||
|  * | ||||
|  * FPR/VSR 0-31 doubleword 0 is stored in fp_regs, and VMX/VSR 32-63 | ||||
|  * is stored at the start of vmx_reserve.  vmx_reserve is extended for | ||||
|  * backwards compatility to store VSR 0-31 doubleword 1 after the VMX | ||||
|  * registers and vscr/vrsave. | ||||
|  */ | ||||
| 	elf_vrreg_t	__user *v_regs; | ||||
| 	long		vmx_reserve[ELF_NVRREG+ELF_NVRREG+32+1]; | ||||
| #endif | ||||
| }; | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_SIGCONTEXT_H */ | ||||
							
								
								
									
										20
									
								
								arch/powerpc/include/uapi/asm/siginfo.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								arch/powerpc/include/uapi/asm/siginfo.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| #ifndef _ASM_POWERPC_SIGINFO_H | ||||
| #define _ASM_POWERPC_SIGINFO_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| #ifdef __powerpc64__ | ||||
| #    define __ARCH_SI_PREAMBLE_SIZE	(4 * sizeof(int)) | ||||
| #endif | ||||
| 
 | ||||
| #include <asm-generic/siginfo.h> | ||||
| 
 | ||||
| #undef NSIGTRAP | ||||
| #define NSIGTRAP	4 | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_SIGINFO_H */ | ||||
							
								
								
									
										137
									
								
								arch/powerpc/include/uapi/asm/signal.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								arch/powerpc/include/uapi/asm/signal.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,137 @@ | |||
| #ifndef _UAPI_ASM_POWERPC_SIGNAL_H | ||||
| #define _UAPI_ASM_POWERPC_SIGNAL_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| #define _NSIG		64 | ||||
| #ifdef __powerpc64__ | ||||
| #define _NSIG_BPW	64 | ||||
| #else | ||||
| #define _NSIG_BPW	32 | ||||
| #endif | ||||
| #define _NSIG_WORDS	(_NSIG / _NSIG_BPW) | ||||
| 
 | ||||
| typedef unsigned long old_sigset_t;		/* at least 32 bits */ | ||||
| 
 | ||||
| typedef struct { | ||||
| 	unsigned long sig[_NSIG_WORDS]; | ||||
| } sigset_t; | ||||
| 
 | ||||
| #define SIGHUP		 1 | ||||
| #define SIGINT		 2 | ||||
| #define SIGQUIT		 3 | ||||
| #define SIGILL		 4 | ||||
| #define SIGTRAP		 5 | ||||
| #define SIGABRT		 6 | ||||
| #define SIGIOT		 6 | ||||
| #define SIGBUS		 7 | ||||
| #define SIGFPE		 8 | ||||
| #define SIGKILL		 9 | ||||
| #define SIGUSR1		10 | ||||
| #define SIGSEGV		11 | ||||
| #define SIGUSR2		12 | ||||
| #define SIGPIPE		13 | ||||
| #define SIGALRM		14 | ||||
| #define SIGTERM		15 | ||||
| #define SIGSTKFLT	16 | ||||
| #define SIGCHLD		17 | ||||
| #define SIGCONT		18 | ||||
| #define SIGSTOP		19 | ||||
| #define SIGTSTP		20 | ||||
| #define SIGTTIN		21 | ||||
| #define SIGTTOU		22 | ||||
| #define SIGURG		23 | ||||
| #define SIGXCPU		24 | ||||
| #define SIGXFSZ		25 | ||||
| #define SIGVTALRM	26 | ||||
| #define SIGPROF		27 | ||||
| #define SIGWINCH	28 | ||||
| #define SIGIO		29 | ||||
| #define SIGPOLL		SIGIO | ||||
| /*
 | ||||
| #define SIGLOST		29 | ||||
| */ | ||||
| #define SIGPWR		30 | ||||
| #define SIGSYS		31 | ||||
| #define	SIGUNUSED	31 | ||||
| 
 | ||||
| /* These should not be considered constants from userland.  */ | ||||
| #define SIGRTMIN	32 | ||||
| #define SIGRTMAX	_NSIG | ||||
| 
 | ||||
| /*
 | ||||
|  * SA_FLAGS values: | ||||
|  * | ||||
|  * SA_ONSTACK is not currently supported, but will allow sigaltstack(2). | ||||
|  * SA_RESTART flag to get restarting signals (which were the default long ago) | ||||
|  * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. | ||||
|  * SA_RESETHAND clears the handler when the signal is delivered. | ||||
|  * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. | ||||
|  * SA_NODEFER prevents the current signal from being masked in the handler. | ||||
|  * | ||||
|  * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single | ||||
|  * Unix names RESETHAND and NODEFER respectively. | ||||
|  */ | ||||
| #define SA_NOCLDSTOP	0x00000001U | ||||
| #define SA_NOCLDWAIT	0x00000002U | ||||
| #define SA_SIGINFO	0x00000004U | ||||
| #define SA_ONSTACK	0x08000000U | ||||
| #define SA_RESTART	0x10000000U | ||||
| #define SA_NODEFER	0x40000000U | ||||
| #define SA_RESETHAND	0x80000000U | ||||
| 
 | ||||
| #define SA_NOMASK	SA_NODEFER | ||||
| #define SA_ONESHOT	SA_RESETHAND | ||||
| 
 | ||||
| #define SA_RESTORER	0x04000000U | ||||
| 
 | ||||
| #define MINSIGSTKSZ	2048 | ||||
| #define SIGSTKSZ	8192 | ||||
| 
 | ||||
| #include <asm-generic/signal-defs.h> | ||||
| 
 | ||||
| #ifndef __KERNEL__ | ||||
| struct old_sigaction { | ||||
| 	__sighandler_t sa_handler; | ||||
| 	old_sigset_t sa_mask; | ||||
| 	unsigned long sa_flags; | ||||
| 	__sigrestore_t sa_restorer; | ||||
| }; | ||||
| 
 | ||||
| struct sigaction { | ||||
| 	__sighandler_t sa_handler; | ||||
| 	unsigned long sa_flags; | ||||
| 	__sigrestore_t sa_restorer; | ||||
| 	sigset_t sa_mask;		/* mask last for extensibility */ | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| typedef struct sigaltstack { | ||||
| 	void __user *ss_sp; | ||||
| 	int ss_flags; | ||||
| 	size_t ss_size; | ||||
| } stack_t; | ||||
| 
 | ||||
| 
 | ||||
| #ifndef __powerpc64__ | ||||
| /*
 | ||||
|  * These are parameters to dbg_sigreturn syscall.  They enable or | ||||
|  * disable certain debugging things that can be done from signal | ||||
|  * handlers.  The dbg_sigreturn syscall *must* be called from a | ||||
|  * SA_SIGINFO signal so the ucontext can be passed to it.  It takes an | ||||
|  * array of struct sig_dbg_op, which has the debug operations to | ||||
|  * perform before returning from the signal. | ||||
|  */ | ||||
| struct sig_dbg_op { | ||||
| 	int dbg_type; | ||||
| 	unsigned long dbg_value; | ||||
| }; | ||||
| 
 | ||||
| /* Enable or disable single-stepping.  The value sets the state. */ | ||||
| #define SIG_DBG_SINGLE_STEPPING		1 | ||||
| 
 | ||||
| /* Enable or disable branch tracing.  The value sets the state. */ | ||||
| #define SIG_DBG_BRANCH_TRACING		2 | ||||
| #endif /* ! __powerpc64__ */ | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_SIGNAL_H */ | ||||
							
								
								
									
										90
									
								
								arch/powerpc/include/uapi/asm/socket.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								arch/powerpc/include/uapi/asm/socket.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | |||
| #ifndef _ASM_POWERPC_SOCKET_H | ||||
| #define _ASM_POWERPC_SOCKET_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| #include <asm/sockios.h> | ||||
| 
 | ||||
| /* For setsockopt(2) */ | ||||
| #define SOL_SOCKET	1 | ||||
| 
 | ||||
| #define SO_DEBUG	1 | ||||
| #define SO_REUSEADDR	2 | ||||
| #define SO_TYPE		3 | ||||
| #define SO_ERROR	4 | ||||
| #define SO_DONTROUTE	5 | ||||
| #define SO_BROADCAST	6 | ||||
| #define SO_SNDBUF	7 | ||||
| #define SO_RCVBUF	8 | ||||
| #define SO_SNDBUFFORCE	32 | ||||
| #define SO_RCVBUFFORCE	33 | ||||
| #define SO_KEEPALIVE	9 | ||||
| #define SO_OOBINLINE	10 | ||||
| #define SO_NO_CHECK	11 | ||||
| #define SO_PRIORITY	12 | ||||
| #define SO_LINGER	13 | ||||
| #define SO_BSDCOMPAT	14 | ||||
| #define SO_REUSEPORT	15 | ||||
| #define SO_RCVLOWAT	16 | ||||
| #define SO_SNDLOWAT	17 | ||||
| #define SO_RCVTIMEO	18 | ||||
| #define SO_SNDTIMEO	19 | ||||
| #define SO_PASSCRED	20 | ||||
| #define SO_PEERCRED	21 | ||||
| 
 | ||||
| /* Security levels - as per NRL IPv6 - don't actually do anything */ | ||||
| #define SO_SECURITY_AUTHENTICATION		22 | ||||
| #define SO_SECURITY_ENCRYPTION_TRANSPORT	23 | ||||
| #define SO_SECURITY_ENCRYPTION_NETWORK		24 | ||||
| 
 | ||||
| #define SO_BINDTODEVICE	25 | ||||
| 
 | ||||
| /* Socket filtering */ | ||||
| #define SO_ATTACH_FILTER	26 | ||||
| #define SO_DETACH_FILTER	27 | ||||
| #define SO_GET_FILTER		SO_ATTACH_FILTER | ||||
| 
 | ||||
| #define SO_PEERNAME		28 | ||||
| #define SO_TIMESTAMP		29 | ||||
| #define SCM_TIMESTAMP		SO_TIMESTAMP | ||||
| 
 | ||||
| #define SO_ACCEPTCONN		30 | ||||
| 
 | ||||
| #define SO_PEERSEC		31 | ||||
| #define SO_PASSSEC		34 | ||||
| #define SO_TIMESTAMPNS		35 | ||||
| #define SCM_TIMESTAMPNS		SO_TIMESTAMPNS | ||||
| 
 | ||||
| #define SO_MARK			36 | ||||
| 
 | ||||
| #define SO_TIMESTAMPING		37 | ||||
| #define SCM_TIMESTAMPING	SO_TIMESTAMPING | ||||
| 
 | ||||
| #define SO_PROTOCOL		38 | ||||
| #define SO_DOMAIN		39 | ||||
| 
 | ||||
| #define SO_RXQ_OVFL             40 | ||||
| 
 | ||||
| #define SO_WIFI_STATUS		41 | ||||
| #define SCM_WIFI_STATUS		SO_WIFI_STATUS | ||||
| #define SO_PEEK_OFF		42 | ||||
| 
 | ||||
| /* Instruct lower device to use last 4-bytes of skb data as FCS */ | ||||
| #define SO_NOFCS		43 | ||||
| 
 | ||||
| #define SO_LOCK_FILTER		44 | ||||
| 
 | ||||
| #define SO_SELECT_ERR_QUEUE	45 | ||||
| 
 | ||||
| #define SO_BUSY_POLL		46 | ||||
| 
 | ||||
| #define SO_MAX_PACING_RATE	47 | ||||
| 
 | ||||
| #define SO_BPF_EXTENSIONS	48 | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_SOCKET_H */ | ||||
							
								
								
									
										20
									
								
								arch/powerpc/include/uapi/asm/sockios.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								arch/powerpc/include/uapi/asm/sockios.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| #ifndef _ASM_POWERPC_SOCKIOS_H | ||||
| #define _ASM_POWERPC_SOCKIOS_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| /* Socket-level I/O control calls. */ | ||||
| #define FIOSETOWN 	0x8901 | ||||
| #define SIOCSPGRP	0x8902 | ||||
| #define FIOGETOWN	0x8903 | ||||
| #define SIOCGPGRP	0x8904 | ||||
| #define SIOCATMARK	0x8905 | ||||
| #define SIOCGSTAMP	0x8906		/* Get stamp (timeval) */ | ||||
| #define SIOCGSTAMPNS	0x8907		/* Get stamp (timespec) */ | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_SOCKIOS_H */ | ||||
							
								
								
									
										53
									
								
								arch/powerpc/include/uapi/asm/spu_info.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								arch/powerpc/include/uapi/asm/spu_info.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,53 @@ | |||
| /*
 | ||||
|  * SPU info structures | ||||
|  * | ||||
|  * (C) Copyright 2006 IBM Corp. | ||||
|  * | ||||
|  * Author: Dwayne Grant McConnell <decimal@us.ibm.com> | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation; either version 2, or (at your option) | ||||
|  * any later version. | ||||
|  * | ||||
|  * This program 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 General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef _UAPI_SPU_INFO_H | ||||
| #define _UAPI_SPU_INFO_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| #ifndef __KERNEL__ | ||||
| struct mfc_cq_sr { | ||||
| 	__u64 mfc_cq_data0_RW; | ||||
| 	__u64 mfc_cq_data1_RW; | ||||
| 	__u64 mfc_cq_data2_RW; | ||||
| 	__u64 mfc_cq_data3_RW; | ||||
| }; | ||||
| #endif /* __KERNEL__ */ | ||||
| 
 | ||||
| struct spu_dma_info { | ||||
| 	__u64 dma_info_type; | ||||
| 	__u64 dma_info_mask; | ||||
| 	__u64 dma_info_status; | ||||
| 	__u64 dma_info_stall_and_notify; | ||||
| 	__u64 dma_info_atomic_command_status; | ||||
| 	struct mfc_cq_sr dma_info_command_data[16]; | ||||
| }; | ||||
| 
 | ||||
| struct spu_proxydma_info { | ||||
| 	__u64 proxydma_info_type; | ||||
| 	__u64 proxydma_info_mask; | ||||
| 	__u64 proxydma_info_status; | ||||
| 	struct mfc_cq_sr proxydma_info_command_data[8]; | ||||
| }; | ||||
| 
 | ||||
| #endif /* _UAPI_SPU_INFO_H */ | ||||
							
								
								
									
										81
									
								
								arch/powerpc/include/uapi/asm/stat.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								arch/powerpc/include/uapi/asm/stat.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,81 @@ | |||
| #ifndef _ASM_POWERPC_STAT_H | ||||
| #define _ASM_POWERPC_STAT_H | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #include <linux/types.h> | ||||
| 
 | ||||
| #define STAT_HAVE_NSEC 1 | ||||
| 
 | ||||
| #ifndef __powerpc64__ | ||||
| struct __old_kernel_stat { | ||||
| 	unsigned short st_dev; | ||||
| 	unsigned short st_ino; | ||||
| 	unsigned short st_mode; | ||||
| 	unsigned short st_nlink; | ||||
| 	unsigned short st_uid; | ||||
| 	unsigned short st_gid; | ||||
| 	unsigned short st_rdev; | ||||
| 	unsigned long  st_size; | ||||
| 	unsigned long  st_atime; | ||||
| 	unsigned long  st_mtime; | ||||
| 	unsigned long  st_ctime; | ||||
| }; | ||||
| #endif /* !__powerpc64__ */ | ||||
| 
 | ||||
| struct stat { | ||||
| 	unsigned long	st_dev; | ||||
| 	ino_t		st_ino; | ||||
| #ifdef __powerpc64__ | ||||
| 	unsigned long	st_nlink; | ||||
| 	mode_t		st_mode; | ||||
| #else | ||||
| 	mode_t		st_mode; | ||||
| 	unsigned short	st_nlink; | ||||
| #endif | ||||
| 	uid_t		st_uid; | ||||
| 	gid_t		st_gid; | ||||
| 	unsigned long	st_rdev; | ||||
| 	off_t		st_size; | ||||
| 	unsigned long	st_blksize; | ||||
| 	unsigned long	st_blocks; | ||||
| 	unsigned long	st_atime; | ||||
| 	unsigned long	st_atime_nsec; | ||||
| 	unsigned long	st_mtime; | ||||
| 	unsigned long	st_mtime_nsec; | ||||
| 	unsigned long	st_ctime; | ||||
| 	unsigned long	st_ctime_nsec; | ||||
| 	unsigned long	__unused4; | ||||
| 	unsigned long	__unused5; | ||||
| #ifdef __powerpc64__ | ||||
| 	unsigned long	__unused6; | ||||
| #endif | ||||
| }; | ||||
| 
 | ||||
| /* This matches struct stat64 in glibc2.1. Only used for 32 bit. */ | ||||
| struct stat64 { | ||||
| 	unsigned long long st_dev;		/* Device.  */ | ||||
| 	unsigned long long st_ino;		/* File serial number.  */ | ||||
| 	unsigned int	st_mode;	/* File mode.  */ | ||||
| 	unsigned int	st_nlink;	/* Link count.  */ | ||||
| 	unsigned int	st_uid;		/* User ID of the file's owner.  */ | ||||
| 	unsigned int	st_gid;		/* Group ID of the file's group. */ | ||||
| 	unsigned long long st_rdev;	/* Device number, if device.  */ | ||||
| 	unsigned short	__pad2; | ||||
| 	long long	st_size;	/* Size of file, in bytes.  */ | ||||
| 	int		st_blksize;	/* Optimal block size for I/O.  */ | ||||
| 	long long	st_blocks;	/* Number 512-byte blocks allocated. */ | ||||
| 	int		st_atime;	/* Time of last access.  */ | ||||
| 	unsigned int	st_atime_nsec; | ||||
| 	int		st_mtime;	/* Time of last modification.  */ | ||||
| 	unsigned int	st_mtime_nsec; | ||||
| 	int		st_ctime;	/* Time of last status change.  */ | ||||
| 	unsigned int	st_ctime_nsec; | ||||
| 	unsigned int	__unused4; | ||||
| 	unsigned int	__unused5; | ||||
| }; | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_STAT_H */ | ||||
							
								
								
									
										6
									
								
								arch/powerpc/include/uapi/asm/statfs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								arch/powerpc/include/uapi/asm/statfs.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| #ifndef _ASM_POWERPC_STATFS_H | ||||
| #define _ASM_POWERPC_STATFS_H | ||||
| 
 | ||||
| #include <asm-generic/statfs.h> | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										23
									
								
								arch/powerpc/include/uapi/asm/swab.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								arch/powerpc/include/uapi/asm/swab.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifndef _UAPI_ASM_POWERPC_SWAB_H | ||||
| #define _UAPI_ASM_POWERPC_SWAB_H | ||||
| 
 | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/compiler.h> | ||||
| 
 | ||||
| #ifdef __GNUC__ | ||||
| 
 | ||||
| #ifndef __powerpc64__ | ||||
| #define __SWAB_64_THRU_32__ | ||||
| #endif /* __powerpc64__ */ | ||||
| 
 | ||||
| 
 | ||||
| #endif /* __GNUC__ */ | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_SWAB_H */ | ||||
							
								
								
									
										210
									
								
								arch/powerpc/include/uapi/asm/termbits.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								arch/powerpc/include/uapi/asm/termbits.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,210 @@ | |||
| #ifndef _ASM_POWERPC_TERMBITS_H | ||||
| #define _ASM_POWERPC_TERMBITS_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| 
 | ||||
| typedef unsigned char	cc_t; | ||||
| typedef unsigned int	speed_t; | ||||
| typedef unsigned int	tcflag_t; | ||||
| 
 | ||||
| /*
 | ||||
|  * termios type and macro definitions.  Be careful about adding stuff | ||||
|  * to this file since it's used in GNU libc and there are strict rules | ||||
|  * concerning namespace pollution. | ||||
|  */ | ||||
| 
 | ||||
| #define NCCS 19 | ||||
| struct termios { | ||||
| 	tcflag_t c_iflag;		/* input mode flags */ | ||||
| 	tcflag_t c_oflag;		/* output mode flags */ | ||||
| 	tcflag_t c_cflag;		/* control mode flags */ | ||||
| 	tcflag_t c_lflag;		/* local mode flags */ | ||||
| 	cc_t c_cc[NCCS];		/* control characters */ | ||||
| 	cc_t c_line;			/* line discipline (== c_cc[19]) */ | ||||
| 	speed_t c_ispeed;		/* input speed */ | ||||
| 	speed_t c_ospeed;		/* output speed */ | ||||
| }; | ||||
| 
 | ||||
| /* For PowerPC the termios and ktermios are the same */ | ||||
| 
 | ||||
| struct ktermios { | ||||
| 	tcflag_t c_iflag;		/* input mode flags */ | ||||
| 	tcflag_t c_oflag;		/* output mode flags */ | ||||
| 	tcflag_t c_cflag;		/* control mode flags */ | ||||
| 	tcflag_t c_lflag;		/* local mode flags */ | ||||
| 	cc_t c_cc[NCCS];		/* control characters */ | ||||
| 	cc_t c_line;			/* line discipline (== c_cc[19]) */ | ||||
| 	speed_t c_ispeed;		/* input speed */ | ||||
| 	speed_t c_ospeed;		/* output speed */ | ||||
| }; | ||||
| 
 | ||||
| /* c_cc characters */ | ||||
| #define VINTR 	         0 | ||||
| #define VQUIT 	         1 | ||||
| #define VERASE 	         2 | ||||
| #define VKILL	         3 | ||||
| #define VEOF	         4 | ||||
| #define VMIN	         5 | ||||
| #define VEOL	         6 | ||||
| #define VTIME	         7 | ||||
| #define VEOL2	         8 | ||||
| #define VSWTC	         9 | ||||
| #define VWERASE 	10 | ||||
| #define VREPRINT	11 | ||||
| #define VSUSP 		12 | ||||
| #define VSTART		13 | ||||
| #define VSTOP		14 | ||||
| #define VLNEXT		15 | ||||
| #define VDISCARD	16 | ||||
| 
 | ||||
| /* c_iflag bits */ | ||||
| #define IGNBRK	0000001 | ||||
| #define BRKINT	0000002 | ||||
| #define IGNPAR	0000004 | ||||
| #define PARMRK	0000010 | ||||
| #define INPCK	0000020 | ||||
| #define ISTRIP	0000040 | ||||
| #define INLCR	0000100 | ||||
| #define IGNCR	0000200 | ||||
| #define ICRNL	0000400 | ||||
| #define IXON	0001000 | ||||
| #define IXOFF	0002000 | ||||
| #define IXANY	0004000 | ||||
| #define IUCLC	0010000 | ||||
| #define IMAXBEL	0020000 | ||||
| #define	IUTF8	0040000 | ||||
| 
 | ||||
| /* c_oflag bits */ | ||||
| #define OPOST	0000001 | ||||
| #define ONLCR	0000002 | ||||
| #define OLCUC	0000004 | ||||
| 
 | ||||
| #define OCRNL	0000010 | ||||
| #define ONOCR	0000020 | ||||
| #define ONLRET	0000040 | ||||
| 
 | ||||
| #define OFILL	00000100 | ||||
| #define OFDEL	00000200 | ||||
| #define NLDLY	00001400 | ||||
| #define   NL0	00000000 | ||||
| #define   NL1	00000400 | ||||
| #define   NL2	00001000 | ||||
| #define   NL3	00001400 | ||||
| #define TABDLY	00006000 | ||||
| #define   TAB0	00000000 | ||||
| #define   TAB1	00002000 | ||||
| #define   TAB2	00004000 | ||||
| #define   TAB3	00006000 | ||||
| #define   XTABS	00006000	/* required by POSIX to == TAB3 */ | ||||
| #define CRDLY	00030000 | ||||
| #define   CR0	00000000 | ||||
| #define   CR1	00010000 | ||||
| #define   CR2	00020000 | ||||
| #define   CR3	00030000 | ||||
| #define FFDLY	00040000 | ||||
| #define   FF0	00000000 | ||||
| #define   FF1	00040000 | ||||
| #define BSDLY	00100000 | ||||
| #define   BS0	00000000 | ||||
| #define   BS1	00100000 | ||||
| #define VTDLY	00200000 | ||||
| #define   VT0	00000000 | ||||
| #define   VT1	00200000 | ||||
| 
 | ||||
| /* c_cflag bit meaning */ | ||||
| #define CBAUD	0000377 | ||||
| #define  B0	0000000		/* hang up */ | ||||
| #define  B50	0000001 | ||||
| #define  B75	0000002 | ||||
| #define  B110	0000003 | ||||
| #define  B134	0000004 | ||||
| #define  B150	0000005 | ||||
| #define  B200	0000006 | ||||
| #define  B300	0000007 | ||||
| #define  B600	0000010 | ||||
| #define  B1200	0000011 | ||||
| #define  B1800	0000012 | ||||
| #define  B2400	0000013 | ||||
| #define  B4800	0000014 | ||||
| #define  B9600	0000015 | ||||
| #define  B19200	0000016 | ||||
| #define  B38400	0000017 | ||||
| #define  EXTA   B19200 | ||||
| #define  EXTB   B38400 | ||||
| #define  CBAUDEX 0000000 | ||||
| #define  B57600   00020 | ||||
| #define  B115200  00021 | ||||
| #define  B230400  00022 | ||||
| #define  B460800  00023 | ||||
| #define  B500000  00024 | ||||
| #define  B576000  00025 | ||||
| #define  B921600  00026 | ||||
| #define B1000000  00027 | ||||
| #define B1152000  00030 | ||||
| #define B1500000  00031 | ||||
| #define B2000000  00032 | ||||
| #define B2500000  00033 | ||||
| #define B3000000  00034 | ||||
| #define B3500000  00035 | ||||
| #define B4000000  00036 | ||||
| #define   BOTHER  00037 | ||||
| 
 | ||||
| #define CIBAUD	077600000 | ||||
| #define IBSHIFT	16		/* Shift from CBAUD to CIBAUD */ | ||||
| 
 | ||||
| #define CSIZE	00001400 | ||||
| #define   CS5	00000000 | ||||
| #define   CS6	00000400 | ||||
| #define   CS7	00001000 | ||||
| #define   CS8	00001400 | ||||
| 
 | ||||
| #define CSTOPB	00002000 | ||||
| #define CREAD	00004000 | ||||
| #define PARENB	00010000 | ||||
| #define PARODD	00020000 | ||||
| #define HUPCL	00040000 | ||||
| 
 | ||||
| #define CLOCAL	00100000 | ||||
| #define CMSPAR	  010000000000		/* mark or space (stick) parity */ | ||||
| #define CRTSCTS	  020000000000		/* flow control */ | ||||
| 
 | ||||
| /* c_lflag bits */ | ||||
| #define ISIG	0x00000080 | ||||
| #define ICANON	0x00000100 | ||||
| #define XCASE	0x00004000 | ||||
| #define ECHO	0x00000008 | ||||
| #define ECHOE	0x00000002 | ||||
| #define ECHOK	0x00000004 | ||||
| #define ECHONL	0x00000010 | ||||
| #define NOFLSH	0x80000000 | ||||
| #define TOSTOP	0x00400000 | ||||
| #define ECHOCTL	0x00000040 | ||||
| #define ECHOPRT	0x00000020 | ||||
| #define ECHOKE	0x00000001 | ||||
| #define FLUSHO	0x00800000 | ||||
| #define PENDIN	0x20000000 | ||||
| #define IEXTEN	0x00000400 | ||||
| #define EXTPROC	0x10000000 | ||||
| 
 | ||||
| /* Values for the ACTION argument to `tcflow'.  */ | ||||
| #define	TCOOFF		0 | ||||
| #define	TCOON		1 | ||||
| #define	TCIOFF		2 | ||||
| #define	TCION		3 | ||||
| 
 | ||||
| /* Values for the QUEUE_SELECTOR argument to `tcflush'.  */ | ||||
| #define	TCIFLUSH	0 | ||||
| #define	TCOFLUSH	1 | ||||
| #define	TCIOFLUSH	2 | ||||
| 
 | ||||
| /* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */ | ||||
| #define	TCSANOW		0 | ||||
| #define	TCSADRAIN	1 | ||||
| #define	TCSAFLUSH	2 | ||||
| 
 | ||||
| #endif	/* _ASM_POWERPC_TERMBITS_H */ | ||||
							
								
								
									
										76
									
								
								arch/powerpc/include/uapi/asm/termios.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								arch/powerpc/include/uapi/asm/termios.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,76 @@ | |||
| /*
 | ||||
|  * Liberally adapted from alpha/termios.h.  In particular, the c_cc[] | ||||
|  * fields have been reordered so that termio & termios share the | ||||
|  * common subset in the same order (for brain dead programs that don't | ||||
|  * know or care about the differences). | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifndef _UAPI_ASM_POWERPC_TERMIOS_H | ||||
| #define _UAPI_ASM_POWERPC_TERMIOS_H | ||||
| 
 | ||||
| 
 | ||||
| #include <asm/ioctls.h> | ||||
| #include <asm/termbits.h> | ||||
| 
 | ||||
| struct sgttyb { | ||||
| 	char	sg_ispeed; | ||||
| 	char	sg_ospeed; | ||||
| 	char	sg_erase; | ||||
| 	char	sg_kill; | ||||
| 	short	sg_flags; | ||||
| }; | ||||
| 
 | ||||
| struct tchars { | ||||
| 	char	t_intrc; | ||||
| 	char	t_quitc; | ||||
| 	char	t_startc; | ||||
| 	char	t_stopc; | ||||
| 	char	t_eofc; | ||||
| 	char	t_brkc; | ||||
| }; | ||||
| 
 | ||||
| struct ltchars { | ||||
| 	char	t_suspc; | ||||
| 	char	t_dsuspc; | ||||
| 	char	t_rprntc; | ||||
| 	char	t_flushc; | ||||
| 	char	t_werasc; | ||||
| 	char	t_lnextc; | ||||
| }; | ||||
| 
 | ||||
| struct winsize { | ||||
| 	unsigned short ws_row; | ||||
| 	unsigned short ws_col; | ||||
| 	unsigned short ws_xpixel; | ||||
| 	unsigned short ws_ypixel; | ||||
| }; | ||||
| 
 | ||||
| #define NCC 10 | ||||
| struct termio { | ||||
| 	unsigned short c_iflag;		/* input mode flags */ | ||||
| 	unsigned short c_oflag;		/* output mode flags */ | ||||
| 	unsigned short c_cflag;		/* control mode flags */ | ||||
| 	unsigned short c_lflag;		/* local mode flags */ | ||||
| 	unsigned char c_line;		/* line discipline */ | ||||
| 	unsigned char c_cc[NCC];	/* control characters */ | ||||
| }; | ||||
| 
 | ||||
| /* c_cc characters */ | ||||
| #define _VINTR	0 | ||||
| #define _VQUIT	1 | ||||
| #define _VERASE	2 | ||||
| #define _VKILL	3 | ||||
| #define _VEOF	4 | ||||
| #define _VMIN	5 | ||||
| #define _VEOL	6 | ||||
| #define _VTIME	7 | ||||
| #define _VEOL2	8 | ||||
| #define _VSWTC	9 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_TERMIOS_H */ | ||||
							
								
								
									
										20
									
								
								arch/powerpc/include/uapi/asm/tm.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								arch/powerpc/include/uapi/asm/tm.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| #ifndef _ASM_POWERPC_TM_H | ||||
| #define _ASM_POWERPC_TM_H | ||||
| 
 | ||||
| /* Reason codes describing kernel causes for transaction aborts.  By
 | ||||
|  * convention, bit0 is copied to TEXASR[56] (IBM bit 7) which is set if | ||||
|  * the failure is persistent.  PAPR saves 0xff-0xe0 for the hypervisor. | ||||
|  */ | ||||
| #define TM_CAUSE_PERSISTENT	0x01 | ||||
| #define TM_CAUSE_KVM_RESCHED	0xe0  /* From PAPR */ | ||||
| #define TM_CAUSE_KVM_FAC_UNAV	0xe2  /* From PAPR */ | ||||
| #define TM_CAUSE_RESCHED	0xde | ||||
| #define TM_CAUSE_TLBI		0xdc | ||||
| #define TM_CAUSE_FAC_UNAV	0xda | ||||
| #define TM_CAUSE_SYSCALL	0xd8  /* future use */ | ||||
| #define TM_CAUSE_MISC		0xd6  /* future use */ | ||||
| #define TM_CAUSE_SIGNAL		0xd4 | ||||
| #define TM_CAUSE_ALIGNMENT	0xd2 | ||||
| #define TM_CAUSE_EMULATE	0xd0 | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										40
									
								
								arch/powerpc/include/uapi/asm/types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								arch/powerpc/include/uapi/asm/types.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| /*
 | ||||
|  * This file is never included by application software unless | ||||
|  * explicitly requested (e.g., via linux/types.h) in which case the | ||||
|  * application is Linux specific so (user-) name space pollution is | ||||
|  * not a major issue.  However, for interoperability, libraries still | ||||
|  * need to be careful to avoid a name clashes. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifndef _UAPI_ASM_POWERPC_TYPES_H | ||||
| #define _UAPI_ASM_POWERPC_TYPES_H | ||||
| 
 | ||||
| /*
 | ||||
|  * This is here because we used to use l64 for 64bit powerpc | ||||
|  * and we don't want to impact user mode with our change to ll64 | ||||
|  * in the kernel. | ||||
|  * | ||||
|  * However, some user programs are fine with this.  They can | ||||
|  * flag __SANE_USERSPACE_TYPES__ to get int-ll64.h here. | ||||
|  */ | ||||
| #if !defined(__SANE_USERSPACE_TYPES__) && defined(__powerpc64__) && !defined(__KERNEL__) | ||||
| # include <asm-generic/int-l64.h> | ||||
| #else | ||||
| # include <asm-generic/int-ll64.h> | ||||
| #endif | ||||
| 
 | ||||
| #ifndef __ASSEMBLY__ | ||||
| 
 | ||||
| 
 | ||||
| typedef struct { | ||||
| 	__u32 u[4]; | ||||
| } __attribute__((aligned(16))) __vector128; | ||||
| 
 | ||||
| #endif /* __ASSEMBLY__ */ | ||||
| 
 | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_TYPES_H */ | ||||
							
								
								
									
										40
									
								
								arch/powerpc/include/uapi/asm/ucontext.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								arch/powerpc/include/uapi/asm/ucontext.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | |||
| #ifndef _ASM_POWERPC_UCONTEXT_H | ||||
| #define _ASM_POWERPC_UCONTEXT_H | ||||
| 
 | ||||
| #ifdef __powerpc64__ | ||||
| #include <asm/sigcontext.h> | ||||
| #else | ||||
| #include <asm/elf.h> | ||||
| #endif | ||||
| #include <asm/signal.h> | ||||
| 
 | ||||
| #ifndef __powerpc64__ | ||||
| struct mcontext { | ||||
| 	elf_gregset_t	mc_gregs; | ||||
| 	elf_fpregset_t	mc_fregs; | ||||
| 	unsigned long	mc_pad[2]; | ||||
| 	elf_vrregset_t	mc_vregs __attribute__((__aligned__(16))); | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| struct ucontext { | ||||
| 	unsigned long	uc_flags; | ||||
| 	struct ucontext __user *uc_link; | ||||
| 	stack_t		uc_stack; | ||||
| #ifndef __powerpc64__ | ||||
| 	int		uc_pad[7]; | ||||
| 	struct mcontext	__user *uc_regs;/* points to uc_mcontext field */ | ||||
| #endif | ||||
| 	sigset_t	uc_sigmask; | ||||
| 	/* glibc has 1024-bit signal masks, ours are 64-bit */ | ||||
| #ifdef __powerpc64__ | ||||
| 	sigset_t	__unused[15];	/* Allow for uc_sigmask growth */ | ||||
| 	struct sigcontext uc_mcontext;	/* last for extensibility */ | ||||
| #else | ||||
| 	int		uc_maskext[30]; | ||||
| 	int		uc_pad2[3]; | ||||
| 	struct mcontext	uc_mcontext; | ||||
| #endif | ||||
| }; | ||||
| 
 | ||||
| #endif /* _ASM_POWERPC_UCONTEXT_H */ | ||||
							
								
								
									
										388
									
								
								arch/powerpc/include/uapi/asm/unistd.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										388
									
								
								arch/powerpc/include/uapi/asm/unistd.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,388 @@ | |||
| /*
 | ||||
|  * This file contains the system call numbers. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License | ||||
|  * as published by the Free Software Foundation; either version | ||||
|  * 2 of the License, or (at your option) any later version. | ||||
|  */ | ||||
| #ifndef _UAPI_ASM_POWERPC_UNISTD_H_ | ||||
| #define _UAPI_ASM_POWERPC_UNISTD_H_ | ||||
| 
 | ||||
| 
 | ||||
| #define __NR_restart_syscall	  0 | ||||
| #define __NR_exit		  1 | ||||
| #define __NR_fork		  2 | ||||
| #define __NR_read		  3 | ||||
| #define __NR_write		  4 | ||||
| #define __NR_open		  5 | ||||
| #define __NR_close		  6 | ||||
| #define __NR_waitpid		  7 | ||||
| #define __NR_creat		  8 | ||||
| #define __NR_link		  9 | ||||
| #define __NR_unlink		 10 | ||||
| #define __NR_execve		 11 | ||||
| #define __NR_chdir		 12 | ||||
| #define __NR_time		 13 | ||||
| #define __NR_mknod		 14 | ||||
| #define __NR_chmod		 15 | ||||
| #define __NR_lchown		 16 | ||||
| #define __NR_break		 17 | ||||
| #define __NR_oldstat		 18 | ||||
| #define __NR_lseek		 19 | ||||
| #define __NR_getpid		 20 | ||||
| #define __NR_mount		 21 | ||||
| #define __NR_umount		 22 | ||||
| #define __NR_setuid		 23 | ||||
| #define __NR_getuid		 24 | ||||
| #define __NR_stime		 25 | ||||
| #define __NR_ptrace		 26 | ||||
| #define __NR_alarm		 27 | ||||
| #define __NR_oldfstat		 28 | ||||
| #define __NR_pause		 29 | ||||
| #define __NR_utime		 30 | ||||
| #define __NR_stty		 31 | ||||
| #define __NR_gtty		 32 | ||||
| #define __NR_access		 33 | ||||
| #define __NR_nice		 34 | ||||
| #define __NR_ftime		 35 | ||||
| #define __NR_sync		 36 | ||||
| #define __NR_kill		 37 | ||||
| #define __NR_rename		 38 | ||||
| #define __NR_mkdir		 39 | ||||
| #define __NR_rmdir		 40 | ||||
| #define __NR_dup		 41 | ||||
| #define __NR_pipe		 42 | ||||
| #define __NR_times		 43 | ||||
| #define __NR_prof		 44 | ||||
| #define __NR_brk		 45 | ||||
| #define __NR_setgid		 46 | ||||
| #define __NR_getgid		 47 | ||||
| #define __NR_signal		 48 | ||||
| #define __NR_geteuid		 49 | ||||
| #define __NR_getegid		 50 | ||||
| #define __NR_acct		 51 | ||||
| #define __NR_umount2		 52 | ||||
| #define __NR_lock		 53 | ||||
| #define __NR_ioctl		 54 | ||||
| #define __NR_fcntl		 55 | ||||
| #define __NR_mpx		 56 | ||||
| #define __NR_setpgid		 57 | ||||
| #define __NR_ulimit		 58 | ||||
| #define __NR_oldolduname	 59 | ||||
| #define __NR_umask		 60 | ||||
| #define __NR_chroot		 61 | ||||
| #define __NR_ustat		 62 | ||||
| #define __NR_dup2		 63 | ||||
| #define __NR_getppid		 64 | ||||
| #define __NR_getpgrp		 65 | ||||
| #define __NR_setsid		 66 | ||||
| #define __NR_sigaction		 67 | ||||
| #define __NR_sgetmask		 68 | ||||
| #define __NR_ssetmask		 69 | ||||
| #define __NR_setreuid		 70 | ||||
| #define __NR_setregid		 71 | ||||
| #define __NR_sigsuspend		 72 | ||||
| #define __NR_sigpending		 73 | ||||
| #define __NR_sethostname	 74 | ||||
| #define __NR_setrlimit		 75 | ||||
| #define __NR_getrlimit		 76 | ||||
| #define __NR_getrusage		 77 | ||||
| #define __NR_gettimeofday	 78 | ||||
| #define __NR_settimeofday	 79 | ||||
| #define __NR_getgroups		 80 | ||||
| #define __NR_setgroups		 81 | ||||
| #define __NR_select		 82 | ||||
| #define __NR_symlink		 83 | ||||
| #define __NR_oldlstat		 84 | ||||
| #define __NR_readlink		 85 | ||||
| #define __NR_uselib		 86 | ||||
| #define __NR_swapon		 87 | ||||
| #define __NR_reboot		 88 | ||||
| #define __NR_readdir		 89 | ||||
| #define __NR_mmap		 90 | ||||
| #define __NR_munmap		 91 | ||||
| #define __NR_truncate		 92 | ||||
| #define __NR_ftruncate		 93 | ||||
| #define __NR_fchmod		 94 | ||||
| #define __NR_fchown		 95 | ||||
| #define __NR_getpriority	 96 | ||||
| #define __NR_setpriority	 97 | ||||
| #define __NR_profil		 98 | ||||
| #define __NR_statfs		 99 | ||||
| #define __NR_fstatfs		100 | ||||
| #define __NR_ioperm		101 | ||||
| #define __NR_socketcall		102 | ||||
| #define __NR_syslog		103 | ||||
| #define __NR_setitimer		104 | ||||
| #define __NR_getitimer		105 | ||||
| #define __NR_stat		106 | ||||
| #define __NR_lstat		107 | ||||
| #define __NR_fstat		108 | ||||
| #define __NR_olduname		109 | ||||
| #define __NR_iopl		110 | ||||
| #define __NR_vhangup		111 | ||||
| #define __NR_idle		112 | ||||
| #define __NR_vm86		113 | ||||
| #define __NR_wait4		114 | ||||
| #define __NR_swapoff		115 | ||||
| #define __NR_sysinfo		116 | ||||
| #define __NR_ipc		117 | ||||
| #define __NR_fsync		118 | ||||
| #define __NR_sigreturn		119 | ||||
| #define __NR_clone		120 | ||||
| #define __NR_setdomainname	121 | ||||
| #define __NR_uname		122 | ||||
| #define __NR_modify_ldt		123 | ||||
| #define __NR_adjtimex		124 | ||||
| #define __NR_mprotect		125 | ||||
| #define __NR_sigprocmask	126 | ||||
| #define __NR_create_module	127 | ||||
| #define __NR_init_module	128 | ||||
| #define __NR_delete_module	129 | ||||
| #define __NR_get_kernel_syms	130 | ||||
| #define __NR_quotactl		131 | ||||
| #define __NR_getpgid		132 | ||||
| #define __NR_fchdir		133 | ||||
| #define __NR_bdflush		134 | ||||
| #define __NR_sysfs		135 | ||||
| #define __NR_personality	136 | ||||
| #define __NR_afs_syscall	137 /* Syscall for Andrew File System */ | ||||
| #define __NR_setfsuid		138 | ||||
| #define __NR_setfsgid		139 | ||||
| #define __NR__llseek		140 | ||||
| #define __NR_getdents		141 | ||||
| #define __NR__newselect		142 | ||||
| #define __NR_flock		143 | ||||
| #define __NR_msync		144 | ||||
| #define __NR_readv		145 | ||||
| #define __NR_writev		146 | ||||
| #define __NR_getsid		147 | ||||
| #define __NR_fdatasync		148 | ||||
| #define __NR__sysctl		149 | ||||
| #define __NR_mlock		150 | ||||
| #define __NR_munlock		151 | ||||
| #define __NR_mlockall		152 | ||||
| #define __NR_munlockall		153 | ||||
| #define __NR_sched_setparam		154 | ||||
| #define __NR_sched_getparam		155 | ||||
| #define __NR_sched_setscheduler		156 | ||||
| #define __NR_sched_getscheduler		157 | ||||
| #define __NR_sched_yield		158 | ||||
| #define __NR_sched_get_priority_max	159 | ||||
| #define __NR_sched_get_priority_min	160 | ||||
| #define __NR_sched_rr_get_interval	161 | ||||
| #define __NR_nanosleep		162 | ||||
| #define __NR_mremap		163 | ||||
| #define __NR_setresuid		164 | ||||
| #define __NR_getresuid		165 | ||||
| #define __NR_query_module	166 | ||||
| #define __NR_poll		167 | ||||
| #define __NR_nfsservctl		168 | ||||
| #define __NR_setresgid		169 | ||||
| #define __NR_getresgid		170 | ||||
| #define __NR_prctl		171 | ||||
| #define __NR_rt_sigreturn	172 | ||||
| #define __NR_rt_sigaction	173 | ||||
| #define __NR_rt_sigprocmask	174 | ||||
| #define __NR_rt_sigpending	175 | ||||
| #define __NR_rt_sigtimedwait	176 | ||||
| #define __NR_rt_sigqueueinfo	177 | ||||
| #define __NR_rt_sigsuspend	178 | ||||
| #define __NR_pread64		179 | ||||
| #define __NR_pwrite64		180 | ||||
| #define __NR_chown		181 | ||||
| #define __NR_getcwd		182 | ||||
| #define __NR_capget		183 | ||||
| #define __NR_capset		184 | ||||
| #define __NR_sigaltstack	185 | ||||
| #define __NR_sendfile		186 | ||||
| #define __NR_getpmsg		187	/* some people actually want streams */ | ||||
| #define __NR_putpmsg		188	/* some people actually want streams */ | ||||
| #define __NR_vfork		189 | ||||
| #define __NR_ugetrlimit		190	/* SuS compliant getrlimit */ | ||||
| #define __NR_readahead		191 | ||||
| #ifndef __powerpc64__			/* these are 32-bit only */ | ||||
| #define __NR_mmap2		192 | ||||
| #define __NR_truncate64		193 | ||||
| #define __NR_ftruncate64	194 | ||||
| #define __NR_stat64		195 | ||||
| #define __NR_lstat64		196 | ||||
| #define __NR_fstat64		197 | ||||
| #endif | ||||
| #define __NR_pciconfig_read	198 | ||||
| #define __NR_pciconfig_write	199 | ||||
| #define __NR_pciconfig_iobase	200 | ||||
| #define __NR_multiplexer	201 | ||||
| #define __NR_getdents64		202 | ||||
| #define __NR_pivot_root		203 | ||||
| #ifndef __powerpc64__ | ||||
| #define __NR_fcntl64		204 | ||||
| #endif | ||||
| #define __NR_madvise		205 | ||||
| #define __NR_mincore		206 | ||||
| #define __NR_gettid		207 | ||||
| #define __NR_tkill		208 | ||||
| #define __NR_setxattr		209 | ||||
| #define __NR_lsetxattr		210 | ||||
| #define __NR_fsetxattr		211 | ||||
| #define __NR_getxattr		212 | ||||
| #define __NR_lgetxattr		213 | ||||
| #define __NR_fgetxattr		214 | ||||
| #define __NR_listxattr		215 | ||||
| #define __NR_llistxattr		216 | ||||
| #define __NR_flistxattr		217 | ||||
| #define __NR_removexattr	218 | ||||
| #define __NR_lremovexattr	219 | ||||
| #define __NR_fremovexattr	220 | ||||
| #define __NR_futex		221 | ||||
| #define __NR_sched_setaffinity	222 | ||||
| #define __NR_sched_getaffinity	223 | ||||
| /* 224 currently unused */ | ||||
| #define __NR_tuxcall		225 | ||||
| #ifndef __powerpc64__ | ||||
| #define __NR_sendfile64		226 | ||||
| #endif | ||||
| #define __NR_io_setup		227 | ||||
| #define __NR_io_destroy		228 | ||||
| #define __NR_io_getevents	229 | ||||
| #define __NR_io_submit		230 | ||||
| #define __NR_io_cancel		231 | ||||
| #define __NR_set_tid_address	232 | ||||
| #define __NR_fadvise64		233 | ||||
| #define __NR_exit_group		234 | ||||
| #define __NR_lookup_dcookie	235 | ||||
| #define __NR_epoll_create	236 | ||||
| #define __NR_epoll_ctl		237 | ||||
| #define __NR_epoll_wait		238 | ||||
| #define __NR_remap_file_pages	239 | ||||
| #define __NR_timer_create	240 | ||||
| #define __NR_timer_settime	241 | ||||
| #define __NR_timer_gettime	242 | ||||
| #define __NR_timer_getoverrun	243 | ||||
| #define __NR_timer_delete	244 | ||||
| #define __NR_clock_settime	245 | ||||
| #define __NR_clock_gettime	246 | ||||
| #define __NR_clock_getres	247 | ||||
| #define __NR_clock_nanosleep	248 | ||||
| #define __NR_swapcontext	249 | ||||
| #define __NR_tgkill		250 | ||||
| #define __NR_utimes		251 | ||||
| #define __NR_statfs64		252 | ||||
| #define __NR_fstatfs64		253 | ||||
| #ifndef __powerpc64__ | ||||
| #define __NR_fadvise64_64	254 | ||||
| #endif | ||||
| #define __NR_rtas		255 | ||||
| #define __NR_sys_debug_setcontext 256 | ||||
| /* Number 257 is reserved for vserver */ | ||||
| #define __NR_migrate_pages	258 | ||||
| #define __NR_mbind		259 | ||||
| #define __NR_get_mempolicy	260 | ||||
| #define __NR_set_mempolicy	261 | ||||
| #define __NR_mq_open		262 | ||||
| #define __NR_mq_unlink		263 | ||||
| #define __NR_mq_timedsend	264 | ||||
| #define __NR_mq_timedreceive	265 | ||||
| #define __NR_mq_notify		266 | ||||
| #define __NR_mq_getsetattr	267 | ||||
| #define __NR_kexec_load		268 | ||||
| #define __NR_add_key		269 | ||||
| #define __NR_request_key	270 | ||||
| #define __NR_keyctl		271 | ||||
| #define __NR_waitid		272 | ||||
| #define __NR_ioprio_set		273 | ||||
| #define __NR_ioprio_get		274 | ||||
| #define __NR_inotify_init	275 | ||||
| #define __NR_inotify_add_watch	276 | ||||
| #define __NR_inotify_rm_watch	277 | ||||
| #define __NR_spu_run		278 | ||||
| #define __NR_spu_create		279 | ||||
| #define __NR_pselect6		280 | ||||
| #define __NR_ppoll		281 | ||||
| #define __NR_unshare		282 | ||||
| #define __NR_splice		283 | ||||
| #define __NR_tee		284 | ||||
| #define __NR_vmsplice		285 | ||||
| #define __NR_openat		286 | ||||
| #define __NR_mkdirat		287 | ||||
| #define __NR_mknodat		288 | ||||
| #define __NR_fchownat		289 | ||||
| #define __NR_futimesat		290 | ||||
| #ifdef __powerpc64__ | ||||
| #define __NR_newfstatat		291 | ||||
| #else | ||||
| #define __NR_fstatat64		291 | ||||
| #endif | ||||
| #define __NR_unlinkat		292 | ||||
| #define __NR_renameat		293 | ||||
| #define __NR_linkat		294 | ||||
| #define __NR_symlinkat		295 | ||||
| #define __NR_readlinkat		296 | ||||
| #define __NR_fchmodat		297 | ||||
| #define __NR_faccessat		298 | ||||
| #define __NR_get_robust_list	299 | ||||
| #define __NR_set_robust_list	300 | ||||
| #define __NR_move_pages		301 | ||||
| #define __NR_getcpu		302 | ||||
| #define __NR_epoll_pwait	303 | ||||
| #define __NR_utimensat		304 | ||||
| #define __NR_signalfd		305 | ||||
| #define __NR_timerfd_create	306 | ||||
| #define __NR_eventfd		307 | ||||
| #define __NR_sync_file_range2	308 | ||||
| #define __NR_fallocate		309 | ||||
| #define __NR_subpage_prot	310 | ||||
| #define __NR_timerfd_settime	311 | ||||
| #define __NR_timerfd_gettime	312 | ||||
| #define __NR_signalfd4		313 | ||||
| #define __NR_eventfd2		314 | ||||
| #define __NR_epoll_create1	315 | ||||
| #define __NR_dup3		316 | ||||
| #define __NR_pipe2		317 | ||||
| #define __NR_inotify_init1	318 | ||||
| #define __NR_perf_event_open	319 | ||||
| #define __NR_preadv		320 | ||||
| #define __NR_pwritev		321 | ||||
| #define __NR_rt_tgsigqueueinfo	322 | ||||
| #define __NR_fanotify_init	323 | ||||
| #define __NR_fanotify_mark	324 | ||||
| #define __NR_prlimit64		325 | ||||
| #define __NR_socket		326 | ||||
| #define __NR_bind		327 | ||||
| #define __NR_connect		328 | ||||
| #define __NR_listen		329 | ||||
| #define __NR_accept		330 | ||||
| #define __NR_getsockname	331 | ||||
| #define __NR_getpeername	332 | ||||
| #define __NR_socketpair		333 | ||||
| #define __NR_send		334 | ||||
| #define __NR_sendto		335 | ||||
| #define __NR_recv		336 | ||||
| #define __NR_recvfrom		337 | ||||
| #define __NR_shutdown		338 | ||||
| #define __NR_setsockopt		339 | ||||
| #define __NR_getsockopt		340 | ||||
| #define __NR_sendmsg		341 | ||||
| #define __NR_recvmsg		342 | ||||
| #define __NR_recvmmsg		343 | ||||
| #define __NR_accept4		344 | ||||
| #define __NR_name_to_handle_at	345 | ||||
| #define __NR_open_by_handle_at	346 | ||||
| #define __NR_clock_adjtime	347 | ||||
| #define __NR_syncfs		348 | ||||
| #define __NR_sendmmsg		349 | ||||
| #define __NR_setns		350 | ||||
| #define __NR_process_vm_readv	351 | ||||
| #define __NR_process_vm_writev	352 | ||||
| #define __NR_finit_module	353 | ||||
| #define __NR_kcmp		354 | ||||
| #define __NR_sched_setattr	355 | ||||
| #define __NR_sched_getattr	356 | ||||
| #define __NR_renameat2		357 | ||||
| #define __NR_seccomp		358 | ||||
| #define __NR_getrandom		359 | ||||
| #define __NR_memfd_create	360 | ||||
| #define __NR_bpf		361 | ||||
| 
 | ||||
| #endif /* _UAPI_ASM_POWERPC_UNISTD_H_ */ | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 awab228
						awab228