1#ifndef __PPC64_A_OUT_H__ 2#define __PPC64_A_OUT_H__ 3 4#include <asm/ppcdebug.h> 5 6/* 7 * c 2001 PPC 64 Team, IBM Corp 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License 11 * as published by the Free Software Foundation; either version 12 * 2 of the License, or (at your option) any later version. 13 */ 14 15struct exec 16{ 17 unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 18 unsigned a_text; /* length of text, in bytes */ 19 unsigned a_data; /* length of data, in bytes */ 20 unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 21 unsigned a_syms; /* length of symbol table data in file, in bytes */ 22 unsigned a_entry; /* start address */ 23 unsigned a_trsize; /* length of relocation info for text, in bytes */ 24 unsigned a_drsize; /* length of relocation info for data, in bytes */ 25}; 26 27#define N_TRSIZE(a) ((a).a_trsize) 28#define N_DRSIZE(a) ((a).a_drsize) 29#define N_SYMSIZE(a) ((a).a_syms) 30 31#ifdef __KERNEL__ 32 33/* 64-bit user address space is less PGDIR_SIZE due to pgd_index() bug. */ 34#define STACK_TOP_USER64 (TASK_SIZE_USER64 - PGDIR_SIZE) 35 36/* Give 32-bit user space a full 4G address space to live in. */ 37#define STACK_TOP_USER32 (TASK_SIZE_USER32) 38 39#define STACK_TOP (((current->thread.flags & PPC_FLAG_32BIT)||(ppcdebugset(PPCDBG_BINFMT_32ADDR))) ? \ 40 STACK_TOP_USER32 : STACK_TOP_USER64) 41 42#endif /* __KERNEL__ */ 43 44#endif /* __PPC64_A_OUT_H__ */ 45