diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-02-11 19:55:33 +0530 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-02-15 23:16:11 +0530 |
commit | 8c2f4a8dd0e0fc9dcaf14c768544039eddfa7375 (patch) | |
tree | 2cee072559f4686dd070fdeb930b05e2aafa8449 | |
parent | cbe056f76a386708f3807b274322f78269aee0f6 (diff) | |
download | lwn-8c2f4a8dd0e0fc9dcaf14c768544039eddfa7375.tar.gz lwn-8c2f4a8dd0e0fc9dcaf14c768544039eddfa7375.zip |
ARC: UAPI Disintegrate arch/arc/include/asm
1. ./genfilelist.pl arch/arc/include/asm/
2. Create arch/arc/include/uapi/asm/Kbuild as follows
+# UAPI Header export list
+include include/uapi/asm-generic/Kbuild.asm
3. ./disintegrate-one.pl arch/arc/include/{,uapi/}asm/<above-list>
4. Edit arch/arc/include/asm/Kbuild to remove ref to
asm-generic/Kbuild.asm
- To work around empty uapi/asm/setup.h added a placholder comment.
- Also a manual #ifdef __ASSEMBLY__ for a late ptrace change
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: David Howells <dhowells@redhat.com>
-rw-r--r-- | arch/arc/include/asm/Kbuild | 8 | ||||
-rw-r--r-- | arch/arc/include/asm/page.h | 30 | ||||
-rw-r--r-- | arch/arc/include/asm/ptrace.h | 38 | ||||
-rw-r--r-- | arch/arc/include/asm/setup.h | 3 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/Kbuild | 11 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/byteorder.h (renamed from arch/arc/include/asm/byteorder.h) | 0 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/cachectl.h (renamed from arch/arc/include/asm/cachectl.h) | 0 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/page.h | 39 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/ptrace.h | 48 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/setup.h | 6 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/sigcontext.h (renamed from arch/arc/include/asm/sigcontext.h) | 0 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/signal.h (renamed from arch/arc/include/asm/signal.h) | 0 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/swab.h (renamed from arch/arc/include/asm/swab.h) | 0 | ||||
-rw-r--r-- | arch/arc/include/uapi/asm/unistd.h (renamed from arch/arc/include/asm/unistd.h) | 0 |
14 files changed, 108 insertions, 75 deletions
diff --git a/arch/arc/include/asm/Kbuild b/arch/arc/include/asm/Kbuild index b24089c974a9..48af742f8b5a 100644 --- a/arch/arc/include/asm/Kbuild +++ b/arch/arc/include/asm/Kbuild @@ -1,11 +1,3 @@ -include include/asm-generic/Kbuild.asm - -# 7-Oct-12: Jeremy Bennett <jeremy.bennett@embecosm.com>. Some of these -# headers, beyond those specified in the generic set are needed by user code. - -header-y += page.h -header-y += cachectl.h - generic-y += auxvec.h generic-y += bugs.h generic-y += bitsperlong.h diff --git a/arch/arc/include/asm/page.h b/arch/arc/include/asm/page.h index d111d0cea9cc..dfe1f8a95f1d 100644 --- a/arch/arc/include/asm/page.h +++ b/arch/arc/include/asm/page.h @@ -5,37 +5,11 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ - #ifndef __ASM_ARC_PAGE_H #define __ASM_ARC_PAGE_H -/* PAGE_SHIFT determines the page size */ -#if defined(CONFIG_ARC_PAGE_SIZE_16K) -#define PAGE_SHIFT 14 -#elif defined(CONFIG_ARC_PAGE_SIZE_4K) -#define PAGE_SHIFT 12 -#else -/* - * Default 8k - * done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc - * user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o - * using the correct uClibc header and in their build our autoconf.h is - * not available - */ -#define PAGE_SHIFT 13 -#endif - -#ifdef __ASSEMBLY__ -#define PAGE_SIZE (1 << PAGE_SHIFT) -#define PAGE_OFFSET (0x80000000) -#else -#define PAGE_SIZE (1UL << PAGE_SHIFT) /* Default 8K */ -#define PAGE_OFFSET (0x80000000UL) /* Kernel starts at 2G onwards */ -#endif +#include <uapi/asm/page.h> -#define PAGE_MASK (~(PAGE_SIZE-1)) - -#ifdef __KERNEL__ #ifndef __ASSEMBLY__ @@ -129,6 +103,4 @@ typedef unsigned long pgtable_t; #endif /* !__ASSEMBLY__ */ -#endif /* __KERNEL__ */ - #endif diff --git a/arch/arc/include/asm/ptrace.h b/arch/arc/include/asm/ptrace.h index df5b95213776..8ae783d20a81 100644 --- a/arch/arc/include/asm/ptrace.h +++ b/arch/arc/include/asm/ptrace.h @@ -7,11 +7,10 @@ * * Amit Bhor, Sameer Dhavale: Codito Technologies 2004 */ - #ifndef __ASM_ARC_PTRACE_H #define __ASM_ARC_PTRACE_H -#ifdef __KERNEL__ +#include <uapi/asm/ptrace.h> #ifndef __ASSEMBLY__ @@ -128,39 +127,4 @@ static inline long regs_return_value(struct pt_regs *regs) #define orig_r8_IS_IRQ1 0x0010 #define orig_r8_IS_IRQ2 0x0020 -#endif /* __KERNEL__ */ - -#ifndef __ASSEMBLY__ -/* - * Userspace ABI: Register state needed by - * -ptrace (gdbserver) - * -sigcontext (SA_SIGNINFO signal frame) - * - * This is to decouple pt_regs from user-space ABI, to be able to change it - * w/o affecting the ABI. - * Although the layout (initial padding) is similar to pt_regs to have some - * optimizations when copying pt_regs to/from user_regs_struct. - * - * Also, sigcontext only care about the scratch regs as that is what we really - * save/restore for signal handling. -*/ -struct user_regs_struct { - - struct scratch { - long pad; - long bta, lp_start, lp_end, lp_count; - long status32, ret, blink, fp, gp; - long r12, r11, r10, r9, r8, r7, r6, r5, r4, r3, r2, r1, r0; - long sp; - } scratch; - struct callee { - long pad; - long r25, r24, r23, r22, r21, r20; - long r19, r18, r17, r16, r15, r14, r13; - } callee; - long efa; /* break pt addr, for break points in delay slots */ - long stop_pc; /* give dbg stop_pc directly after checking orig_r8 */ -}; -#endif /* !__ASSEMBLY__ */ - #endif /* __ASM_PTRACE_H */ diff --git a/arch/arc/include/asm/setup.h b/arch/arc/include/asm/setup.h index fc97411269fe..229e50681497 100644 --- a/arch/arc/include/asm/setup.h +++ b/arch/arc/include/asm/setup.h @@ -5,11 +5,12 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ - #ifndef __ASMARC_SETUP_H #define __ASMARC_SETUP_H + #include <linux/types.h> +#include <uapi/asm/setup.h> #define COMMAND_LINE_SIZE 256 diff --git a/arch/arc/include/uapi/asm/Kbuild b/arch/arc/include/uapi/asm/Kbuild new file mode 100644 index 000000000000..27362446c710 --- /dev/null +++ b/arch/arc/include/uapi/asm/Kbuild @@ -0,0 +1,11 @@ +# UAPI Header export list +include include/uapi/asm-generic/Kbuild.asm +header-y += page.h +header-y += setup.h +header-y += byteorder.h +header-y += cachectl.h +header-y += ptrace.h +header-y += sigcontext.h +header-y += signal.h +header-y += swab.h +header-y += unistd.h diff --git a/arch/arc/include/asm/byteorder.h b/arch/arc/include/uapi/asm/byteorder.h index 9da71d415c38..9da71d415c38 100644 --- a/arch/arc/include/asm/byteorder.h +++ b/arch/arc/include/uapi/asm/byteorder.h diff --git a/arch/arc/include/asm/cachectl.h b/arch/arc/include/uapi/asm/cachectl.h index 51c73f0255b3..51c73f0255b3 100644 --- a/arch/arc/include/asm/cachectl.h +++ b/arch/arc/include/uapi/asm/cachectl.h diff --git a/arch/arc/include/uapi/asm/page.h b/arch/arc/include/uapi/asm/page.h new file mode 100644 index 000000000000..e5d41e08240c --- /dev/null +++ b/arch/arc/include/uapi/asm/page.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) + * + * 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. + */ + +#ifndef _UAPI__ASM_ARC_PAGE_H +#define _UAPI__ASM_ARC_PAGE_H + +/* PAGE_SHIFT determines the page size */ +#if defined(CONFIG_ARC_PAGE_SIZE_16K) +#define PAGE_SHIFT 14 +#elif defined(CONFIG_ARC_PAGE_SIZE_4K) +#define PAGE_SHIFT 12 +#else +/* + * Default 8k + * done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc + * user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o + * using the correct uClibc header and in their build our autoconf.h is + * not available + */ +#define PAGE_SHIFT 13 +#endif + +#ifdef __ASSEMBLY__ +#define PAGE_SIZE (1 << PAGE_SHIFT) +#define PAGE_OFFSET (0x80000000) +#else +#define PAGE_SIZE (1UL << PAGE_SHIFT) /* Default 8K */ +#define PAGE_OFFSET (0x80000000UL) /* Kernel starts at 2G onwards */ +#endif + +#define PAGE_MASK (~(PAGE_SIZE-1)) + + +#endif /* _UAPI__ASM_ARC_PAGE_H */ diff --git a/arch/arc/include/uapi/asm/ptrace.h b/arch/arc/include/uapi/asm/ptrace.h new file mode 100644 index 000000000000..6afa4f702075 --- /dev/null +++ b/arch/arc/include/uapi/asm/ptrace.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) + * + * 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. + * + * Amit Bhor, Sameer Dhavale: Codito Technologies 2004 + */ + +#ifndef _UAPI__ASM_ARC_PTRACE_H +#define _UAPI__ASM_ARC_PTRACE_H + + +#ifndef __ASSEMBLY__ +/* + * Userspace ABI: Register state needed by + * -ptrace (gdbserver) + * -sigcontext (SA_SIGNINFO signal frame) + * + * This is to decouple pt_regs from user-space ABI, to be able to change it + * w/o affecting the ABI. + * Although the layout (initial padding) is similar to pt_regs to have some + * optimizations when copying pt_regs to/from user_regs_struct. + * + * Also, sigcontext only care about the scratch regs as that is what we really + * save/restore for signal handling. +*/ +struct user_regs_struct { + + struct scratch { + long pad; + long bta, lp_start, lp_end, lp_count; + long status32, ret, blink, fp, gp; + long r12, r11, r10, r9, r8, r7, r6, r5, r4, r3, r2, r1, r0; + long sp; + } scratch; + struct callee { + long pad; + long r25, r24, r23, r22, r21, r20; + long r19, r18, r17, r16, r15, r14, r13; + } callee; + long efa; /* break pt addr, for break points in delay slots */ + long stop_pc; /* give dbg stop_pc directly after checking orig_r8 */ +}; +#endif /* !__ASSEMBLY__ */ + +#endif /* _UAPI__ASM_ARC_PTRACE_H */ diff --git a/arch/arc/include/uapi/asm/setup.h b/arch/arc/include/uapi/asm/setup.h new file mode 100644 index 000000000000..a6d4e44938be --- /dev/null +++ b/arch/arc/include/uapi/asm/setup.h @@ -0,0 +1,6 @@ +/* + * setup.h is part of userspace header ABI so UAPI scripts have to generate it + * even if there's nothing to export - causing empty <uapi/asm/setup.h> + * However to prevent "patch" from discarding it we add this placeholder + * comment + */ diff --git a/arch/arc/include/asm/sigcontext.h b/arch/arc/include/uapi/asm/sigcontext.h index 9678a11fc158..9678a11fc158 100644 --- a/arch/arc/include/asm/sigcontext.h +++ b/arch/arc/include/uapi/asm/sigcontext.h diff --git a/arch/arc/include/asm/signal.h b/arch/arc/include/uapi/asm/signal.h index fad62f7f42d6..fad62f7f42d6 100644 --- a/arch/arc/include/asm/signal.h +++ b/arch/arc/include/uapi/asm/signal.h diff --git a/arch/arc/include/asm/swab.h b/arch/arc/include/uapi/asm/swab.h index 095599a73195..095599a73195 100644 --- a/arch/arc/include/asm/swab.h +++ b/arch/arc/include/uapi/asm/swab.h diff --git a/arch/arc/include/asm/unistd.h b/arch/arc/include/uapi/asm/unistd.h index 6f30484f34b7..6f30484f34b7 100644 --- a/arch/arc/include/asm/unistd.h +++ b/arch/arc/include/uapi/asm/unistd.h |