提交 922a70d3 编写于 作者: D David Howells 提交者: Linus Torvalds

aout: move STACK_TOP[_MAX] to asm/processor.h

Move STACK_TOP[_MAX] out of asm/a.out.h and into asm/processor.h as they're
required whether or not A.OUT format is available.
Signed-off-by: NDavid Howells <dhowells@redhat.com>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 3eb05676
...@@ -98,11 +98,5 @@ struct exec ...@@ -98,11 +98,5 @@ struct exec
set_personality (((BFPM->sh_bang || EX.ah.entry < 0x100000000L \ set_personality (((BFPM->sh_bang || EX.ah.entry < 0x100000000L \
? ADDR_LIMIT_32BIT : 0) | PER_OSF4)) ? ADDR_LIMIT_32BIT : 0) | PER_OSF4))
#define STACK_TOP \ #endif /* __KERNEL__ */
(current->personality & ADDR_LIMIT_32BIT ? 0x80000000 : 0x00120000000UL)
#define STACK_TOP_MAX 0x00120000000UL
#endif
#endif /* __A_OUT_GNU_H__ */ #endif /* __A_OUT_GNU_H__ */
...@@ -20,6 +20,11 @@ ...@@ -20,6 +20,11 @@
*/ */
#define TASK_SIZE (0x40000000000UL) #define TASK_SIZE (0x40000000000UL)
#define STACK_TOP \
(current->personality & ADDR_LIMIT_32BIT ? 0x80000000 : 0x00120000000UL)
#define STACK_TOP_MAX 0x00120000000UL
/* This decides where the kernel will search for a free chunk of vm /* This decides where the kernel will search for a free chunk of vm
* space during mmap's. * space during mmap's.
*/ */
......
...@@ -27,12 +27,6 @@ struct exec ...@@ -27,12 +27,6 @@ struct exec
#define M_ARM 103 #define M_ARM 103
#ifdef __KERNEL__
#define STACK_TOP ((current->personality == PER_LINUX_32BIT) ? \
TASK_SIZE : TASK_SIZE_26)
#define STACK_TOP_MAX TASK_SIZE
#endif
#ifndef LIBRARY_START_TEXT #ifndef LIBRARY_START_TEXT
#define LIBRARY_START_TEXT (0x00c00000) #define LIBRARY_START_TEXT (0x00c00000)
#endif #endif
......
...@@ -22,6 +22,12 @@ ...@@ -22,6 +22,12 @@
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/types.h> #include <asm/types.h>
#ifdef __KERNEL__
#define STACK_TOP ((current->personality == PER_LINUX_32BIT) ? \
TASK_SIZE : TASK_SIZE_26)
#define STACK_TOP_MAX TASK_SIZE
#endif
union debug_insn { union debug_insn {
u32 arm; u32 arm;
u16 thumb; u16 thumb;
......
...@@ -17,11 +17,4 @@ struct exec ...@@ -17,11 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
#endif /* __ASM_AVR32_A_OUT_H */ #endif /* __ASM_AVR32_A_OUT_H */
...@@ -13,6 +13,11 @@ ...@@ -13,6 +13,11 @@
#define TASK_SIZE 0x80000000 #define TASK_SIZE 0x80000000
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
static inline void *current_text_addr(void) static inline void *current_text_addr(void)
......
...@@ -16,10 +16,4 @@ struct exec { ...@@ -16,10 +16,4 @@ struct exec {
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#endif
#endif /* __BFIN_A_OUT_H__ */ #endif /* __BFIN_A_OUT_H__ */
...@@ -30,6 +30,10 @@ static inline void wrusp(unsigned long usp) ...@@ -30,6 +30,10 @@ static inline void wrusp(unsigned long usp)
extern unsigned long memory_end; extern unsigned long memory_end;
#define TASK_SIZE (memory_end) #define TASK_SIZE (memory_end)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#endif
#define TASK_UNMAPPED_BASE 0 #define TASK_UNMAPPED_BASE 0
struct thread_struct { struct thread_struct {
......
...@@ -6,11 +6,6 @@ ...@@ -6,11 +6,6 @@
* wants to know about a.out even if there is no interpreter available... * wants to know about a.out even if there is no interpreter available...
*/ */
/* grabbed from the intel stuff */
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
struct exec struct exec
{ {
unsigned long a_info; /* Use macros N_MAGIC, etc for access */ unsigned long a_info; /* Use macros N_MAGIC, etc for access */
...@@ -28,5 +23,4 @@ struct exec ...@@ -28,5 +23,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#endif #endif
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
struct task_struct; struct task_struct;
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
/* This decides where the kernel will search for a free chunk of vm /* This decides where the kernel will search for a free chunk of vm
* space during mmap's. * space during mmap's.
*/ */
......
...@@ -17,11 +17,4 @@ struct exec ...@@ -17,11 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
#endif /* __H8300_A_OUT_H__ */ #endif /* __H8300_A_OUT_H__ */
...@@ -39,6 +39,11 @@ static inline void wrusp(unsigned long usp) { ...@@ -39,6 +39,11 @@ static inline void wrusp(unsigned long usp) {
*/ */
#define TASK_SIZE (0xFFFFFFFFUL) #define TASK_SIZE (0xFFFFFFFFUL)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
/* /*
* This decides where the kernel will search for a free chunk of vm * This decides where the kernel will search for a free chunk of vm
* space during mmap's. We won't be using it * space during mmap's. We won't be using it
......
...@@ -29,7 +29,4 @@ struct exec { ...@@ -29,7 +29,4 @@ struct exec {
#define N_SYMSIZE(x) 0 #define N_SYMSIZE(x) 0
#define N_TXTOFF(x) 0 #define N_TXTOFF(x) 0
#ifdef __KERNEL__
#include <asm/ustack.h>
#endif
#endif /* _ASM_IA64_A_OUT_H */ #endif /* _ASM_IA64_A_OUT_H */
...@@ -17,11 +17,4 @@ struct exec ...@@ -17,11 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
#endif /* _ASM_M32R_A_OUT_H */ #endif /* _ASM_M32R_A_OUT_H */
...@@ -60,6 +60,11 @@ extern struct cpuinfo_m32r cpu_data[]; ...@@ -60,6 +60,11 @@ extern struct cpuinfo_m32r cpu_data[];
#define TASK_SIZE (0x00400000UL) #define TASK_SIZE (0x00400000UL)
#endif #endif
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
/* This decides where the kernel will search for a free chunk of vm /* This decides where the kernel will search for a free chunk of vm
* space during mmap's. * space during mmap's.
*/ */
......
...@@ -17,11 +17,4 @@ struct exec ...@@ -17,11 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
#endif /* __M68K_A_OUT_H__ */ #endif /* __M68K_A_OUT_H__ */
...@@ -41,6 +41,11 @@ static inline void wrusp(unsigned long usp) ...@@ -41,6 +41,11 @@ static inline void wrusp(unsigned long usp)
#define TASK_SIZE (0x0E000000UL) #define TASK_SIZE (0x0E000000UL)
#endif #endif
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
/* This decides where the kernel will search for a free chunk of vm /* This decides where the kernel will search for a free chunk of vm
* space during mmap's. * space during mmap's.
*/ */
......
...@@ -32,17 +32,4 @@ struct exec ...@@ -32,17 +32,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#ifdef CONFIG_32BIT
#define STACK_TOP TASK_SIZE
#endif
#ifdef CONFIG_64BIT
#define STACK_TOP \
(test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE)
#endif
#define STACK_TOP_MAX TASK_SIZE
#endif
#endif /* _ASM_A_OUT_H */ #endif /* _ASM_A_OUT_H */
...@@ -39,6 +39,7 @@ extern unsigned int vced_count, vcei_count; ...@@ -39,6 +39,7 @@ extern unsigned int vced_count, vcei_count;
* so don't change it unless you know what you are doing. * so don't change it unless you know what you are doing.
*/ */
#define TASK_SIZE 0x7fff8000UL #define TASK_SIZE 0x7fff8000UL
#define STACK_TOP TASK_SIZE
/* /*
* This decides where the kernel will search for a free chunk of vm * This decides where the kernel will search for a free chunk of vm
...@@ -57,6 +58,8 @@ extern unsigned int vced_count, vcei_count; ...@@ -57,6 +58,8 @@ extern unsigned int vced_count, vcei_count;
*/ */
#define TASK_SIZE32 0x7fff8000UL #define TASK_SIZE32 0x7fff8000UL
#define TASK_SIZE 0x10000000000UL #define TASK_SIZE 0x10000000000UL
#define STACK_TOP \
(test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE)
/* /*
* This decides where the kernel will search for a free chunk of vm * This decides where the kernel will search for a free chunk of vm
...@@ -69,6 +72,10 @@ extern unsigned int vced_count, vcei_count; ...@@ -69,6 +72,10 @@ extern unsigned int vced_count, vcei_count;
(test_tsk_thread_flag(tsk, TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE) (test_tsk_thread_flag(tsk, TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE)
#endif #endif
#ifdef __KERNEL__
#define STACK_TOP_MAX TASK_SIZE
#endif
#define NUM_FPU_REGS 32 #define NUM_FPU_REGS 32
typedef __u64 fpureg_t; typedef __u64 fpureg_t;
......
...@@ -17,14 +17,4 @@ struct exec ...@@ -17,14 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
/* XXX: STACK_TOP actually should be STACK_BOTTOM for parisc.
* prumpf */
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX DEFAULT_TASK_SIZE
#endif
#endif /* __A_OUT_GNU_H__ */ #endif /* __A_OUT_GNU_H__ */
...@@ -47,6 +47,16 @@ ...@@ -47,6 +47,16 @@
#define DEFAULT_MAP_BASE DEFAULT_MAP_BASE32 #define DEFAULT_MAP_BASE DEFAULT_MAP_BASE32
#endif #endif
#ifdef __KERNEL__
/* XXX: STACK_TOP actually should be STACK_BOTTOM for parisc.
* prumpf */
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX DEFAULT_TASK_SIZE
#endif
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* /*
......
...@@ -17,23 +17,4 @@ struct exec ...@@ -17,23 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#ifdef __powerpc64__
#define STACK_TOP_USER64 TASK_SIZE_USER64
#define STACK_TOP_USER32 TASK_SIZE_USER32
#define STACK_TOP (test_thread_flag(TIF_32BIT) ? \
STACK_TOP_USER32 : STACK_TOP_USER64)
#define STACK_TOP_MAX STACK_TOP_USER64
#else /* __powerpc64__ */
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif /* __powerpc64__ */
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_A_OUT_H */ #endif /* _ASM_POWERPC_A_OUT_H */
...@@ -113,6 +113,25 @@ extern struct task_struct *last_task_used_spe; ...@@ -113,6 +113,25 @@ extern struct task_struct *last_task_used_spe;
TASK_UNMAPPED_BASE_USER32 : TASK_UNMAPPED_BASE_USER64 ) TASK_UNMAPPED_BASE_USER32 : TASK_UNMAPPED_BASE_USER64 )
#endif #endif
#ifdef __KERNEL__
#ifdef __powerpc64__
#define STACK_TOP_USER64 TASK_SIZE_USER64
#define STACK_TOP_USER32 TASK_SIZE_USER32
#define STACK_TOP (test_thread_flag(TIF_32BIT) ? \
STACK_TOP_USER32 : STACK_TOP_USER64)
#define STACK_TOP_MAX STACK_TOP_USER64
#else /* __powerpc64__ */
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif /* __powerpc64__ */
#endif /* __KERNEL__ */
typedef struct { typedef struct {
unsigned long seg; unsigned long seg;
} mm_segment_t; } mm_segment_t;
......
...@@ -29,11 +29,4 @@ struct exec ...@@ -29,11 +29,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX DEFAULT_TASK_SIZE
#endif
#endif /* __A_OUT_GNU_H__ */ #endif /* __A_OUT_GNU_H__ */
...@@ -78,6 +78,13 @@ extern int get_cpu_capability(unsigned int *); ...@@ -78,6 +78,13 @@ extern int get_cpu_capability(unsigned int *);
#endif /* __s390x__ */ #endif /* __s390x__ */
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX DEFAULT_TASK_SIZE
#endif
#define HAVE_ARCH_PICK_MMAP_LAYOUT #define HAVE_ARCH_PICK_MMAP_LAYOUT
typedef struct { typedef struct {
......
...@@ -17,11 +17,4 @@ struct exec ...@@ -17,11 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#endif
#endif /* __ASM_SH_A_OUT_H */ #endif /* __ASM_SH_A_OUT_H */
...@@ -50,6 +50,9 @@ extern struct sh_cpuinfo cpu_data[]; ...@@ -50,6 +50,9 @@ extern struct sh_cpuinfo cpu_data[];
*/ */
#define TASK_SIZE 0x7c000000UL #define TASK_SIZE 0x7c000000UL
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
/* This decides where the kernel will search for a free chunk of vm /* This decides where the kernel will search for a free chunk of vm
* space during mmap's. * space during mmap's.
*/ */
......
...@@ -83,6 +83,9 @@ extern struct sh_cpuinfo cpu_data[]; ...@@ -83,6 +83,9 @@ extern struct sh_cpuinfo cpu_data[];
*/ */
#define TASK_SIZE 0x7ffff000UL #define TASK_SIZE 0x7ffff000UL
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
/* This decides where the kernel will search for a free chunk of vm /* This decides where the kernel will search for a free chunk of vm
* space during mmap's. * space during mmap's.
*/ */
......
...@@ -87,13 +87,4 @@ struct relocation_info /* used when header.a_machtype == M_SPARC */ ...@@ -87,13 +87,4 @@ struct relocation_info /* used when header.a_machtype == M_SPARC */
#define N_RELOCATION_INFO_DECLARED 1 #define N_RELOCATION_INFO_DECLARED 1
#ifdef __KERNEL__
#include <asm/page.h>
#define STACK_TOP (PAGE_OFFSET - PAGE_SIZE)
#define STACK_TOP_MAX STACK_TOP
#endif /* __KERNEL__ */
#endif /* __SPARC_A_OUT_H__ */ #endif /* __SPARC_A_OUT_H__ */
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
* we can make our access_ok test faster * we can make our access_ok test faster
*/ */
#define TASK_SIZE PAGE_OFFSET #define TASK_SIZE PAGE_OFFSET
#ifdef __KERNEL__
#define STACK_TOP (PAGE_OFFSET - PAGE_SIZE)
#define STACK_TOP_MAX STACK_TOP
#endif /* __KERNEL__ */
struct task_struct; struct task_struct;
......
...@@ -93,18 +93,6 @@ struct relocation_info /* used when header.a_machtype == M_SPARC */ ...@@ -93,18 +93,6 @@ struct relocation_info /* used when header.a_machtype == M_SPARC */
#define N_RELOCATION_INFO_DECLARED 1 #define N_RELOCATION_INFO_DECLARED 1
#ifdef __KERNEL__
#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE)
#define STACK_TOP64 (0x0000080000000000UL - (1UL << 32UL))
#define STACK_TOP (test_thread_flag(TIF_32BIT) ? \
STACK_TOP32 : STACK_TOP64)
#define STACK_TOP_MAX STACK_TOP64
#endif
#endif /* !(__ASSEMBLY__) */ #endif /* !(__ASSEMBLY__) */
#endif /* !(__SPARC64_A_OUT_H__) */ #endif /* !(__SPARC64_A_OUT_H__) */
...@@ -36,7 +36,19 @@ ...@@ -36,7 +36,19 @@
#else #else
#define VPTE_SIZE (1 << (VA_BITS - PAGE_SHIFT + 3)) #define VPTE_SIZE (1 << (VA_BITS - PAGE_SHIFT + 3))
#endif #endif
#define TASK_SIZE ((unsigned long)-VPTE_SIZE) #define TASK_SIZE ((unsigned long)-VPTE_SIZE)
#ifdef __KERNEL__
#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE)
#define STACK_TOP64 (0x0000080000000000UL - (1UL << 32UL))
#define STACK_TOP (test_thread_flag(TIF_32BIT) ? \
STACK_TOP32 : STACK_TOP64)
#define STACK_TOP_MAX STACK_TOP64
#endif
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#ifndef _SPARC64_USER_H #ifndef _SPARC64_USER_H
#define _SPARC64_USER_H #define _SPARC64_USER_H
#include <asm/a.out.h> #include <linux/a.out.h>
struct sunos_regs { struct sunos_regs {
unsigned int psr, pc, npc, y; unsigned int psr, pc, npc, y;
unsigned int regs[15]; unsigned int regs[15];
......
...@@ -8,15 +8,4 @@ ...@@ -8,15 +8,4 @@
#include "asm/arch/a.out.h" #include "asm/arch/a.out.h"
#undef STACK_TOP
#undef STACK_TOP_MAX
extern unsigned long stacksizelim;
#define STACK_ROOM (stacksizelim)
#define STACK_TOP (TASK_SIZE - 2 * PAGE_SIZE)
#define STACK_TOP_MAX STACK_TOP
#endif #endif
...@@ -94,6 +94,15 @@ static inline void mm_copy_segments(struct mm_struct *from_mm, ...@@ -94,6 +94,15 @@ static inline void mm_copy_segments(struct mm_struct *from_mm,
*/ */
#define TASK_SIZE (CONFIG_TOP_ADDR & PGDIR_MASK) #define TASK_SIZE (CONFIG_TOP_ADDR & PGDIR_MASK)
#undef STACK_TOP
#undef STACK_TOP_MAX
extern unsigned long stacksizelim;
#define STACK_ROOM (stacksizelim)
#define STACK_TOP (TASK_SIZE - 2 * PAGE_SIZE)
#define STACK_TOP_MAX STACK_TOP
/* This decides where the kernel will search for a free chunk of vm /* This decides where the kernel will search for a free chunk of vm
* space during mmap's. * space during mmap's.
*/ */
......
...@@ -17,14 +17,4 @@ struct exec ...@@ -17,14 +17,4 @@ struct exec
#define N_DRSIZE(a) ((a).a_drsize) #define N_DRSIZE(a) ((a).a_drsize)
#define N_SYMSIZE(a) ((a).a_syms) #define N_SYMSIZE(a) ((a).a_syms)
#ifdef __KERNEL__
# include <linux/thread_info.h>
# define STACK_TOP TASK_SIZE
# ifdef CONFIG_X86_32
# define STACK_TOP_MAX STACK_TOP
# else
# define STACK_TOP_MAX TASK_SIZE64
# endif
#endif
#endif /* _ASM_X86_A_OUT_H */ #endif /* _ASM_X86_A_OUT_H */
...@@ -719,6 +719,8 @@ static inline void prefetchw(const void *x) ...@@ -719,6 +719,8 @@ static inline void prefetchw(const void *x)
* User space process size: 3GB (default). * User space process size: 3GB (default).
*/ */
#define TASK_SIZE (PAGE_OFFSET) #define TASK_SIZE (PAGE_OFFSET)
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
#define INIT_THREAD { \ #define INIT_THREAD { \
.sp0 = sizeof(init_stack) + (long)&init_stack, \ .sp0 = sizeof(init_stack) + (long)&init_stack, \
...@@ -802,6 +804,9 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); ...@@ -802,6 +804,9 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
#define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? \ #define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? \
IA32_PAGE_OFFSET : TASK_SIZE64) IA32_PAGE_OFFSET : TASK_SIZE64)
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX TASK_SIZE64
#define INIT_THREAD { \ #define INIT_THREAD { \
.sp0 = (unsigned long)&init_stack + sizeof(init_stack) \ .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \
} }
......
...@@ -14,11 +14,6 @@ ...@@ -14,11 +14,6 @@
#ifndef _XTENSA_A_OUT_H #ifndef _XTENSA_A_OUT_H
#define _XTENSA_A_OUT_H #define _XTENSA_A_OUT_H
/* Note: the kernel needs the a.out definitions, even if only ELF is used. */
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
struct exec struct exec
{ {
unsigned long a_info; unsigned long a_info;
......
...@@ -34,6 +34,8 @@ ...@@ -34,6 +34,8 @@
*/ */
#define TASK_SIZE __XTENSA_UL_CONST(0x40000000) #define TASK_SIZE __XTENSA_UL_CONST(0x40000000)
#define STACK_TOP TASK_SIZE
#define STACK_TOP_MAX STACK_TOP
/* /*
* General exception cause assigned to debug exceptions. Debug exceptions go * General exception cause assigned to debug exceptions. Debug exceptions go
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册