diff options
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/Kbuild | 17 | ||||
-rw-r--r-- | arch/arm/include/asm/auxvec.h | 4 | ||||
-rw-r--r-- | arch/arm/include/asm/bitsperlong.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/bug.h | 55 | ||||
-rw-r--r-- | arch/arm/include/asm/cachetype.h | 5 | ||||
-rw-r--r-- | arch/arm/include/asm/cputime.h | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/device.h | 3 | ||||
-rw-r--r-- | arch/arm/include/asm/emergency-restart.h | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/errno.h | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/io.h | 11 | ||||
-rw-r--r-- | arch/arm/include/asm/ioctl.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/irq_regs.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/kdebug.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/local.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/local64.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/mach/arch.h | 3 | ||||
-rw-r--r-- | arch/arm/include/asm/percpu.h | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/poll.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/resource.h | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/sections.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/siginfo.h | 6 | ||||
-rw-r--r-- | arch/arm/include/asm/sizes.h | 21 | ||||
-rw-r--r-- | arch/arm/include/asm/system.h | 4 |
23 files changed, 79 insertions, 88 deletions
diff --git a/arch/arm/include/asm/Kbuild b/arch/arm/include/asm/Kbuild index 6550db3aa5c7..960abceb8e14 100644 --- a/arch/arm/include/asm/Kbuild +++ b/arch/arm/include/asm/Kbuild | |||
@@ -1,3 +1,20 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | header-y += hwcap.h | 3 | header-y += hwcap.h |
4 | |||
5 | generic-y += auxvec.h | ||
6 | generic-y += bitsperlong.h | ||
7 | generic-y += cputime.h | ||
8 | generic-y += emergency-restart.h | ||
9 | generic-y += errno.h | ||
10 | generic-y += ioctl.h | ||
11 | generic-y += irq_regs.h | ||
12 | generic-y += kdebug.h | ||
13 | generic-y += local.h | ||
14 | generic-y += local64.h | ||
15 | generic-y += percpu.h | ||
16 | generic-y += poll.h | ||
17 | generic-y += resource.h | ||
18 | generic-y += sections.h | ||
19 | generic-y += siginfo.h | ||
20 | generic-y += sizes.h | ||
diff --git a/arch/arm/include/asm/auxvec.h b/arch/arm/include/asm/auxvec.h deleted file mode 100644 index c0536f6b29a7..000000000000 --- a/arch/arm/include/asm/auxvec.h +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | #ifndef __ASMARM_AUXVEC_H | ||
2 | #define __ASMARM_AUXVEC_H | ||
3 | |||
4 | #endif | ||
diff --git a/arch/arm/include/asm/bitsperlong.h b/arch/arm/include/asm/bitsperlong.h deleted file mode 100644 index 6dc0bb0c13b2..000000000000 --- a/arch/arm/include/asm/bitsperlong.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/bitsperlong.h> | ||
diff --git a/arch/arm/include/asm/bug.h b/arch/arm/include/asm/bug.h index 4d88425a4169..9abe7a07d5ac 100644 --- a/arch/arm/include/asm/bug.h +++ b/arch/arm/include/asm/bug.h | |||
@@ -3,21 +3,58 @@ | |||
3 | 3 | ||
4 | 4 | ||
5 | #ifdef CONFIG_BUG | 5 | #ifdef CONFIG_BUG |
6 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
7 | extern void __bug(const char *file, int line) __attribute__((noreturn)); | ||
8 | |||
9 | /* give file/line information */ | ||
10 | #define BUG() __bug(__FILE__, __LINE__) | ||
11 | 6 | ||
7 | /* | ||
8 | * Use a suitable undefined instruction to use for ARM/Thumb2 bug handling. | ||
9 | * We need to be careful not to conflict with those used by other modules and | ||
10 | * the register_undef_hook() system. | ||
11 | */ | ||
12 | #ifdef CONFIG_THUMB2_KERNEL | ||
13 | #define BUG_INSTR_VALUE 0xde02 | ||
14 | #define BUG_INSTR_TYPE ".hword " | ||
12 | #else | 15 | #else |
16 | #define BUG_INSTR_VALUE 0xe7f001f2 | ||
17 | #define BUG_INSTR_TYPE ".word " | ||
18 | #endif | ||
13 | 19 | ||
14 | /* this just causes an oops */ | ||
15 | #define BUG() do { *(int *)0 = 0; } while (1) | ||
16 | 20 | ||
17 | #endif | 21 | #define BUG() _BUG(__FILE__, __LINE__, BUG_INSTR_VALUE) |
22 | #define _BUG(file, line, value) __BUG(file, line, value) | ||
23 | |||
24 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
25 | |||
26 | /* | ||
27 | * The extra indirection is to ensure that the __FILE__ string comes through | ||
28 | * OK. Many version of gcc do not support the asm %c parameter which would be | ||
29 | * preferable to this unpleasantness. We use mergeable string sections to | ||
30 | * avoid multiple copies of the string appearing in the kernel image. | ||
31 | */ | ||
32 | |||
33 | #define __BUG(__file, __line, __value) \ | ||
34 | do { \ | ||
35 | BUILD_BUG_ON(sizeof(struct bug_entry) != 12); \ | ||
36 | asm volatile("1:\t" BUG_INSTR_TYPE #__value "\n" \ | ||
37 | ".pushsection .rodata.str, \"aMS\", %progbits, 1\n" \ | ||
38 | "2:\t.asciz " #__file "\n" \ | ||
39 | ".popsection\n" \ | ||
40 | ".pushsection __bug_table,\"a\"\n" \ | ||
41 | "3:\t.word 1b, 2b\n" \ | ||
42 | "\t.hword " #__line ", 0\n" \ | ||
43 | ".popsection"); \ | ||
44 | unreachable(); \ | ||
45 | } while (0) | ||
46 | |||
47 | #else /* not CONFIG_DEBUG_BUGVERBOSE */ | ||
48 | |||
49 | #define __BUG(__file, __line, __value) \ | ||
50 | do { \ | ||
51 | asm volatile(BUG_INSTR_TYPE #__value); \ | ||
52 | unreachable(); \ | ||
53 | } while (0) | ||
54 | #endif /* CONFIG_DEBUG_BUGVERBOSE */ | ||
18 | 55 | ||
19 | #define HAVE_ARCH_BUG | 56 | #define HAVE_ARCH_BUG |
20 | #endif | 57 | #endif /* CONFIG_BUG */ |
21 | 58 | ||
22 | #include <asm-generic/bug.h> | 59 | #include <asm-generic/bug.h> |
23 | 60 | ||
diff --git a/arch/arm/include/asm/cachetype.h b/arch/arm/include/asm/cachetype.h index c023db09fcc1..7ea78144ae22 100644 --- a/arch/arm/include/asm/cachetype.h +++ b/arch/arm/include/asm/cachetype.h | |||
@@ -7,6 +7,7 @@ | |||
7 | #define CACHEID_VIPT (CACHEID_VIPT_ALIASING|CACHEID_VIPT_NONALIASING) | 7 | #define CACHEID_VIPT (CACHEID_VIPT_ALIASING|CACHEID_VIPT_NONALIASING) |
8 | #define CACHEID_ASID_TAGGED (1 << 3) | 8 | #define CACHEID_ASID_TAGGED (1 << 3) |
9 | #define CACHEID_VIPT_I_ALIASING (1 << 4) | 9 | #define CACHEID_VIPT_I_ALIASING (1 << 4) |
10 | #define CACHEID_PIPT (1 << 5) | ||
10 | 11 | ||
11 | extern unsigned int cacheid; | 12 | extern unsigned int cacheid; |
12 | 13 | ||
@@ -16,6 +17,7 @@ extern unsigned int cacheid; | |||
16 | #define cache_is_vipt_aliasing() cacheid_is(CACHEID_VIPT_ALIASING) | 17 | #define cache_is_vipt_aliasing() cacheid_is(CACHEID_VIPT_ALIASING) |
17 | #define icache_is_vivt_asid_tagged() cacheid_is(CACHEID_ASID_TAGGED) | 18 | #define icache_is_vivt_asid_tagged() cacheid_is(CACHEID_ASID_TAGGED) |
18 | #define icache_is_vipt_aliasing() cacheid_is(CACHEID_VIPT_I_ALIASING) | 19 | #define icache_is_vipt_aliasing() cacheid_is(CACHEID_VIPT_I_ALIASING) |
20 | #define icache_is_pipt() cacheid_is(CACHEID_PIPT) | ||
19 | 21 | ||
20 | /* | 22 | /* |
21 | * __LINUX_ARM_ARCH__ is the minimum supported CPU architecture | 23 | * __LINUX_ARM_ARCH__ is the minimum supported CPU architecture |
@@ -26,7 +28,8 @@ extern unsigned int cacheid; | |||
26 | #if __LINUX_ARM_ARCH__ >= 7 | 28 | #if __LINUX_ARM_ARCH__ >= 7 |
27 | #define __CACHEID_ARCH_MIN (CACHEID_VIPT_NONALIASING |\ | 29 | #define __CACHEID_ARCH_MIN (CACHEID_VIPT_NONALIASING |\ |
28 | CACHEID_ASID_TAGGED |\ | 30 | CACHEID_ASID_TAGGED |\ |
29 | CACHEID_VIPT_I_ALIASING) | 31 | CACHEID_VIPT_I_ALIASING |\ |
32 | CACHEID_PIPT) | ||
30 | #elif __LINUX_ARM_ARCH__ >= 6 | 33 | #elif __LINUX_ARM_ARCH__ >= 6 |
31 | #define __CACHEID_ARCH_MIN (~CACHEID_VIVT) | 34 | #define __CACHEID_ARCH_MIN (~CACHEID_VIVT) |
32 | #else | 35 | #else |
diff --git a/arch/arm/include/asm/cputime.h b/arch/arm/include/asm/cputime.h deleted file mode 100644 index 3a8002a5fec7..000000000000 --- a/arch/arm/include/asm/cputime.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ARM_CPUTIME_H | ||
2 | #define __ARM_CPUTIME_H | ||
3 | |||
4 | #include <asm-generic/cputime.h> | ||
5 | |||
6 | #endif /* __ARM_CPUTIME_H */ | ||
diff --git a/arch/arm/include/asm/device.h b/arch/arm/include/asm/device.h index 9f390ce335cb..6615f03f56a5 100644 --- a/arch/arm/include/asm/device.h +++ b/arch/arm/include/asm/device.h | |||
@@ -10,6 +10,9 @@ struct dev_archdata { | |||
10 | #ifdef CONFIG_DMABOUNCE | 10 | #ifdef CONFIG_DMABOUNCE |
11 | struct dmabounce_device_info *dmabounce; | 11 | struct dmabounce_device_info *dmabounce; |
12 | #endif | 12 | #endif |
13 | #ifdef CONFIG_IOMMU_API | ||
14 | void *iommu; /* private IOMMU data */ | ||
15 | #endif | ||
13 | }; | 16 | }; |
14 | 17 | ||
15 | struct pdev_archdata { | 18 | struct pdev_archdata { |
diff --git a/arch/arm/include/asm/emergency-restart.h b/arch/arm/include/asm/emergency-restart.h deleted file mode 100644 index 108d8c48e42e..000000000000 --- a/arch/arm/include/asm/emergency-restart.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _ASM_EMERGENCY_RESTART_H | ||
2 | #define _ASM_EMERGENCY_RESTART_H | ||
3 | |||
4 | #include <asm-generic/emergency-restart.h> | ||
5 | |||
6 | #endif /* _ASM_EMERGENCY_RESTART_H */ | ||
diff --git a/arch/arm/include/asm/errno.h b/arch/arm/include/asm/errno.h deleted file mode 100644 index 6e60f0612bb6..000000000000 --- a/arch/arm/include/asm/errno.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _ARM_ERRNO_H | ||
2 | #define _ARM_ERRNO_H | ||
3 | |||
4 | #include <asm-generic/errno.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h index dc2d5102e680..769f65d918ac 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h | |||
@@ -80,6 +80,7 @@ extern void __iomem *__arm_ioremap_caller(unsigned long, size_t, unsigned int, | |||
80 | 80 | ||
81 | extern void __iomem *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int); | 81 | extern void __iomem *__arm_ioremap_pfn(unsigned long, unsigned long, size_t, unsigned int); |
82 | extern void __iomem *__arm_ioremap(unsigned long, size_t, unsigned int); | 82 | extern void __iomem *__arm_ioremap(unsigned long, size_t, unsigned int); |
83 | extern void __iomem *__arm_ioremap_exec(unsigned long, size_t, bool cached); | ||
83 | extern void __iounmap(volatile void __iomem *addr); | 84 | extern void __iounmap(volatile void __iomem *addr); |
84 | 85 | ||
85 | /* | 86 | /* |
@@ -210,11 +211,11 @@ extern void _memset_io(volatile void __iomem *, int, size_t); | |||
210 | * IO port primitives for more information. | 211 | * IO port primitives for more information. |
211 | */ | 212 | */ |
212 | #ifdef __mem_pci | 213 | #ifdef __mem_pci |
213 | #define readb_relaxed(c) ({ u8 __v = __raw_readb(__mem_pci(c)); __v; }) | 214 | #define readb_relaxed(c) ({ u8 __r = __raw_readb(__mem_pci(c)); __r; }) |
214 | #define readw_relaxed(c) ({ u16 __v = le16_to_cpu((__force __le16) \ | 215 | #define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \ |
215 | __raw_readw(__mem_pci(c))); __v; }) | 216 | __raw_readw(__mem_pci(c))); __r; }) |
216 | #define readl_relaxed(c) ({ u32 __v = le32_to_cpu((__force __le32) \ | 217 | #define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \ |
217 | __raw_readl(__mem_pci(c))); __v; }) | 218 | __raw_readl(__mem_pci(c))); __r; }) |
218 | 219 | ||
219 | #define writeb_relaxed(v,c) ((void)__raw_writeb(v,__mem_pci(c))) | 220 | #define writeb_relaxed(v,c) ((void)__raw_writeb(v,__mem_pci(c))) |
220 | #define writew_relaxed(v,c) ((void)__raw_writew((__force u16) \ | 221 | #define writew_relaxed(v,c) ((void)__raw_writew((__force u16) \ |
diff --git a/arch/arm/include/asm/ioctl.h b/arch/arm/include/asm/ioctl.h deleted file mode 100644 index b279fe06dfe5..000000000000 --- a/arch/arm/include/asm/ioctl.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/ioctl.h> | ||
diff --git a/arch/arm/include/asm/irq_regs.h b/arch/arm/include/asm/irq_regs.h deleted file mode 100644 index 3dd9c0b70270..000000000000 --- a/arch/arm/include/asm/irq_regs.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/irq_regs.h> | ||
diff --git a/arch/arm/include/asm/kdebug.h b/arch/arm/include/asm/kdebug.h deleted file mode 100644 index 6ece1b037665..000000000000 --- a/arch/arm/include/asm/kdebug.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/kdebug.h> | ||
diff --git a/arch/arm/include/asm/local.h b/arch/arm/include/asm/local.h deleted file mode 100644 index c11c530f74d0..000000000000 --- a/arch/arm/include/asm/local.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/local.h> | ||
diff --git a/arch/arm/include/asm/local64.h b/arch/arm/include/asm/local64.h deleted file mode 100644 index 36c93b5cc239..000000000000 --- a/arch/arm/include/asm/local64.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/local64.h> | ||
diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h index 217aa1911dd7..c5699987fa98 100644 --- a/arch/arm/include/asm/mach/arch.h +++ b/arch/arm/include/asm/mach/arch.h | |||
@@ -34,8 +34,7 @@ struct machine_desc { | |||
34 | unsigned int reserve_lp1 :1; /* never has lp1 */ | 34 | unsigned int reserve_lp1 :1; /* never has lp1 */ |
35 | unsigned int reserve_lp2 :1; /* never has lp2 */ | 35 | unsigned int reserve_lp2 :1; /* never has lp2 */ |
36 | unsigned int soft_reboot :1; /* soft reboot */ | 36 | unsigned int soft_reboot :1; /* soft reboot */ |
37 | void (*fixup)(struct machine_desc *, | 37 | void (*fixup)(struct tag *, char **, |
38 | struct tag *, char **, | ||
39 | struct meminfo *); | 38 | struct meminfo *); |
40 | void (*reserve)(void);/* reserve mem blocks */ | 39 | void (*reserve)(void);/* reserve mem blocks */ |
41 | void (*map_io)(void);/* IO mapping function */ | 40 | void (*map_io)(void);/* IO mapping function */ |
diff --git a/arch/arm/include/asm/percpu.h b/arch/arm/include/asm/percpu.h deleted file mode 100644 index b4e32d8ec072..000000000000 --- a/arch/arm/include/asm/percpu.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef __ARM_PERCPU | ||
2 | #define __ARM_PERCPU | ||
3 | |||
4 | #include <asm-generic/percpu.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/arm/include/asm/poll.h b/arch/arm/include/asm/poll.h deleted file mode 100644 index c98509d3149e..000000000000 --- a/arch/arm/include/asm/poll.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/poll.h> | ||
diff --git a/arch/arm/include/asm/resource.h b/arch/arm/include/asm/resource.h deleted file mode 100644 index 734b581b5b6a..000000000000 --- a/arch/arm/include/asm/resource.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _ARM_RESOURCE_H | ||
2 | #define _ARM_RESOURCE_H | ||
3 | |||
4 | #include <asm-generic/resource.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/arm/include/asm/sections.h b/arch/arm/include/asm/sections.h deleted file mode 100644 index 2b8c5160388f..000000000000 --- a/arch/arm/include/asm/sections.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/sections.h> | ||
diff --git a/arch/arm/include/asm/siginfo.h b/arch/arm/include/asm/siginfo.h deleted file mode 100644 index 5e21852e6039..000000000000 --- a/arch/arm/include/asm/siginfo.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _ASMARM_SIGINFO_H | ||
2 | #define _ASMARM_SIGINFO_H | ||
3 | |||
4 | #include <asm-generic/siginfo.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/arm/include/asm/sizes.h b/arch/arm/include/asm/sizes.h deleted file mode 100644 index 154b89b81d3e..000000000000 --- a/arch/arm/include/asm/sizes.h +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify | ||
3 | * it under the terms of the GNU General Public License as published by | ||
4 | * the Free Software Foundation; either version 2 of the License, or | ||
5 | * (at your option) any later version. | ||
6 | * | ||
7 | * This program is distributed in the hope that it will be useful, | ||
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU General Public License for more details. | ||
11 | * | ||
12 | * You should have received a copy of the GNU General Public License | ||
13 | * along with this program; if not, write to the Free Software | ||
14 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
15 | */ | ||
16 | /* Size definitions | ||
17 | * Copyright (C) ARM Limited 1998. All rights reserved. | ||
18 | */ | ||
19 | #include <asm-generic/sizes.h> | ||
20 | |||
21 | #define SZ_48M (SZ_32M + SZ_16M) | ||
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index ed6b0499a106..984014b92647 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h | |||
@@ -57,6 +57,7 @@ | |||
57 | 57 | ||
58 | #ifndef __ASSEMBLY__ | 58 | #ifndef __ASSEMBLY__ |
59 | 59 | ||
60 | #include <linux/compiler.h> | ||
60 | #include <linux/linkage.h> | 61 | #include <linux/linkage.h> |
61 | #include <linux/irqflags.h> | 62 | #include <linux/irqflags.h> |
62 | 63 | ||
@@ -90,14 +91,13 @@ void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, | |||
90 | #define xchg(ptr,x) \ | 91 | #define xchg(ptr,x) \ |
91 | ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) | 92 | ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) |
92 | 93 | ||
93 | extern asmlinkage void __backtrace(void); | ||
94 | extern asmlinkage void c_backtrace(unsigned long fp, int pmode); | 94 | extern asmlinkage void c_backtrace(unsigned long fp, int pmode); |
95 | 95 | ||
96 | struct mm_struct; | 96 | struct mm_struct; |
97 | extern void show_pte(struct mm_struct *mm, unsigned long addr); | 97 | extern void show_pte(struct mm_struct *mm, unsigned long addr); |
98 | extern void __show_regs(struct pt_regs *); | 98 | extern void __show_regs(struct pt_regs *); |
99 | 99 | ||
100 | extern int cpu_architecture(void); | 100 | extern int __pure cpu_architecture(void); |
101 | extern void cpu_init(void); | 101 | extern void cpu_init(void); |
102 | 102 | ||
103 | void arm_machine_restart(char mode, const char *cmd); | 103 | void arm_machine_restart(char mode, const char *cmd); |