b111757c50
New arch macro STACK_TOP_MAX it gives the larges valid stack address for the architecture in question. It differs from STACK_TOP in that it will not distinguish between personalities but will always return the largest possible address. This is used to create the initial stack on execve, which we will move down to the proper location once the binfmt code has figured out where that is. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ollie Wild <aaw@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
27 lines
800 B
C
27 lines
800 B
C
#ifndef __H8300_A_OUT_H__
|
|
#define __H8300_A_OUT_H__
|
|
|
|
struct exec
|
|
{
|
|
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
|
unsigned a_text; /* length of text, in bytes */
|
|
unsigned a_data; /* length of data, in bytes */
|
|
unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
|
unsigned a_syms; /* length of symbol table data in file, in bytes */
|
|
unsigned a_entry; /* start address */
|
|
unsigned a_trsize; /* length of relocation info for text, in bytes */
|
|
unsigned a_drsize; /* length of relocation info for data, in bytes */
|
|
};
|
|
|
|
#define N_TRSIZE(a) ((a).a_trsize)
|
|
#define N_DRSIZE(a) ((a).a_drsize)
|
|
#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__ */
|