Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+108 -75
-8
arch/arc/include/asm/Kbuild
··· 1 - include include/asm-generic/Kbuild.asm 2 - 3 - # 7-Oct-12: Jeremy Bennett <jeremy.bennett@embecosm.com>. Some of these 4 - # headers, beyond those specified in the generic set are needed by user code. 5 - 6 - header-y += page.h 7 - header-y += cachectl.h 8 - 9 1 generic-y += auxvec.h 10 2 generic-y += bugs.h 11 3 generic-y += bitsperlong.h
arch/arc/include/asm/byteorder.h arch/arc/include/uapi/asm/byteorder.h
arch/arc/include/asm/cachectl.h arch/arc/include/uapi/asm/cachectl.h
+1 -29
arch/arc/include/asm/page.h
··· 5 5 * it under the terms of the GNU General Public License version 2 as 6 6 * published by the Free Software Foundation. 7 7 */ 8 - 9 8 #ifndef __ASM_ARC_PAGE_H 10 9 #define __ASM_ARC_PAGE_H 11 10 12 - /* PAGE_SHIFT determines the page size */ 13 - #if defined(CONFIG_ARC_PAGE_SIZE_16K) 14 - #define PAGE_SHIFT 14 15 - #elif defined(CONFIG_ARC_PAGE_SIZE_4K) 16 - #define PAGE_SHIFT 12 17 - #else 18 - /* 19 - * Default 8k 20 - * done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc 21 - * user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o 22 - * using the correct uClibc header and in their build our autoconf.h is 23 - * not available 24 - */ 25 - #define PAGE_SHIFT 13 26 - #endif 11 + #include <uapi/asm/page.h> 27 12 28 - #ifdef __ASSEMBLY__ 29 - #define PAGE_SIZE (1 << PAGE_SHIFT) 30 - #define PAGE_OFFSET (0x80000000) 31 - #else 32 - #define PAGE_SIZE (1UL << PAGE_SHIFT) /* Default 8K */ 33 - #define PAGE_OFFSET (0x80000000UL) /* Kernel starts at 2G onwards */ 34 - #endif 35 - 36 - #define PAGE_MASK (~(PAGE_SIZE-1)) 37 - 38 - #ifdef __KERNEL__ 39 13 40 14 #ifndef __ASSEMBLY__ 41 15 ··· 102 128 #include <asm-generic/getorder.h> 103 129 104 130 #endif /* !__ASSEMBLY__ */ 105 - 106 - #endif /* __KERNEL__ */ 107 131 108 132 #endif
+1 -37
arch/arc/include/asm/ptrace.h
··· 7 7 * 8 8 * Amit Bhor, Sameer Dhavale: Codito Technologies 2004 9 9 */ 10 - 11 10 #ifndef __ASM_ARC_PTRACE_H 12 11 #define __ASM_ARC_PTRACE_H 13 12 14 - #ifdef __KERNEL__ 13 + #include <uapi/asm/ptrace.h> 15 14 16 15 #ifndef __ASSEMBLY__ 17 16 ··· 126 127 #define orig_r8_IS_EXCPN 0x0004 127 128 #define orig_r8_IS_IRQ1 0x0010 128 129 #define orig_r8_IS_IRQ2 0x0020 129 - 130 - #endif /* __KERNEL__ */ 131 - 132 - #ifndef __ASSEMBLY__ 133 - /* 134 - * Userspace ABI: Register state needed by 135 - * -ptrace (gdbserver) 136 - * -sigcontext (SA_SIGNINFO signal frame) 137 - * 138 - * This is to decouple pt_regs from user-space ABI, to be able to change it 139 - * w/o affecting the ABI. 140 - * Although the layout (initial padding) is similar to pt_regs to have some 141 - * optimizations when copying pt_regs to/from user_regs_struct. 142 - * 143 - * Also, sigcontext only care about the scratch regs as that is what we really 144 - * save/restore for signal handling. 145 - */ 146 - struct user_regs_struct { 147 - 148 - struct scratch { 149 - long pad; 150 - long bta, lp_start, lp_end, lp_count; 151 - long status32, ret, blink, fp, gp; 152 - long r12, r11, r10, r9, r8, r7, r6, r5, r4, r3, r2, r1, r0; 153 - long sp; 154 - } scratch; 155 - struct callee { 156 - long pad; 157 - long r25, r24, r23, r22, r21, r20; 158 - long r19, r18, r17, r16, r15, r14, r13; 159 - } callee; 160 - long efa; /* break pt addr, for break points in delay slots */ 161 - long stop_pc; /* give dbg stop_pc directly after checking orig_r8 */ 162 - }; 163 - #endif /* !__ASSEMBLY__ */ 164 130 165 131 #endif /* __ASM_PTRACE_H */
+2 -1
arch/arc/include/asm/setup.h
··· 5 5 * it under the terms of the GNU General Public License version 2 as 6 6 * published by the Free Software Foundation. 7 7 */ 8 - 9 8 #ifndef __ASMARC_SETUP_H 10 9 #define __ASMARC_SETUP_H 11 10 11 + 12 12 #include <linux/types.h> 13 + #include <uapi/asm/setup.h> 13 14 14 15 #define COMMAND_LINE_SIZE 256 15 16
arch/arc/include/asm/sigcontext.h arch/arc/include/uapi/asm/sigcontext.h
arch/arc/include/asm/signal.h arch/arc/include/uapi/asm/signal.h
arch/arc/include/asm/swab.h arch/arc/include/uapi/asm/swab.h
arch/arc/include/asm/unistd.h arch/arc/include/uapi/asm/unistd.h
+11
arch/arc/include/uapi/asm/Kbuild
··· 1 + # UAPI Header export list 2 + include include/uapi/asm-generic/Kbuild.asm 3 + header-y += page.h 4 + header-y += setup.h 5 + header-y += byteorder.h 6 + header-y += cachectl.h 7 + header-y += ptrace.h 8 + header-y += sigcontext.h 9 + header-y += signal.h 10 + header-y += swab.h 11 + header-y += unistd.h
+39
arch/arc/include/uapi/asm/page.h
··· 1 + /* 2 + * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 as 6 + * published by the Free Software Foundation. 7 + */ 8 + 9 + #ifndef _UAPI__ASM_ARC_PAGE_H 10 + #define _UAPI__ASM_ARC_PAGE_H 11 + 12 + /* PAGE_SHIFT determines the page size */ 13 + #if defined(CONFIG_ARC_PAGE_SIZE_16K) 14 + #define PAGE_SHIFT 14 15 + #elif defined(CONFIG_ARC_PAGE_SIZE_4K) 16 + #define PAGE_SHIFT 12 17 + #else 18 + /* 19 + * Default 8k 20 + * done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc 21 + * user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o 22 + * using the correct uClibc header and in their build our autoconf.h is 23 + * not available 24 + */ 25 + #define PAGE_SHIFT 13 26 + #endif 27 + 28 + #ifdef __ASSEMBLY__ 29 + #define PAGE_SIZE (1 << PAGE_SHIFT) 30 + #define PAGE_OFFSET (0x80000000) 31 + #else 32 + #define PAGE_SIZE (1UL << PAGE_SHIFT) /* Default 8K */ 33 + #define PAGE_OFFSET (0x80000000UL) /* Kernel starts at 2G onwards */ 34 + #endif 35 + 36 + #define PAGE_MASK (~(PAGE_SIZE-1)) 37 + 38 + 39 + #endif /* _UAPI__ASM_ARC_PAGE_H */
+48
arch/arc/include/uapi/asm/ptrace.h
··· 1 + /* 2 + * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 as 6 + * published by the Free Software Foundation. 7 + * 8 + * Amit Bhor, Sameer Dhavale: Codito Technologies 2004 9 + */ 10 + 11 + #ifndef _UAPI__ASM_ARC_PTRACE_H 12 + #define _UAPI__ASM_ARC_PTRACE_H 13 + 14 + 15 + #ifndef __ASSEMBLY__ 16 + /* 17 + * Userspace ABI: Register state needed by 18 + * -ptrace (gdbserver) 19 + * -sigcontext (SA_SIGNINFO signal frame) 20 + * 21 + * This is to decouple pt_regs from user-space ABI, to be able to change it 22 + * w/o affecting the ABI. 23 + * Although the layout (initial padding) is similar to pt_regs to have some 24 + * optimizations when copying pt_regs to/from user_regs_struct. 25 + * 26 + * Also, sigcontext only care about the scratch regs as that is what we really 27 + * save/restore for signal handling. 28 + */ 29 + struct user_regs_struct { 30 + 31 + struct scratch { 32 + long pad; 33 + long bta, lp_start, lp_end, lp_count; 34 + long status32, ret, blink, fp, gp; 35 + long r12, r11, r10, r9, r8, r7, r6, r5, r4, r3, r2, r1, r0; 36 + long sp; 37 + } scratch; 38 + struct callee { 39 + long pad; 40 + long r25, r24, r23, r22, r21, r20; 41 + long r19, r18, r17, r16, r15, r14, r13; 42 + } callee; 43 + long efa; /* break pt addr, for break points in delay slots */ 44 + long stop_pc; /* give dbg stop_pc directly after checking orig_r8 */ 45 + }; 46 + #endif /* !__ASSEMBLY__ */ 47 + 48 + #endif /* _UAPI__ASM_ARC_PTRACE_H */
+6
arch/arc/include/uapi/asm/setup.h
··· 1 + /* 2 + * setup.h is part of userspace header ABI so UAPI scripts have to generate it 3 + * even if there's nothing to export - causing empty <uapi/asm/setup.h> 4 + * However to prevent "patch" from discarding it we add this placeholder 5 + * comment 6 + */