a.out.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * This file is subject to the terms and conditions of the GNU General Public
  3. * License. See the file "COPYING" in the main directory of this archive
  4. * for more details.
  5. *
  6. * Copyright (C) 1994 - 1999, 2003 by Ralf Baechle
  7. */
  8. #ifndef _ASM_A_OUT_H
  9. #define _ASM_A_OUT_H
  10. #ifdef __KERNEL__
  11. #include <linux/config.h>
  12. #endif
  13. struct exec
  14. {
  15. unsigned long a_info; /* Use macros N_MAGIC, etc for access */
  16. unsigned a_text; /* length of text, in bytes */
  17. unsigned a_data; /* length of data, in bytes */
  18. unsigned a_bss; /* length of uninitialized data area for
  19. file, in bytes */
  20. unsigned a_syms; /* length of symbol table data in file,
  21. in bytes */
  22. unsigned a_entry; /* start address */
  23. unsigned a_trsize; /* length of relocation info for text, in
  24. bytes */
  25. unsigned a_drsize; /* length of relocation info for data, in bytes */
  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. #ifdef __KERNEL__
  31. #ifdef CONFIG_32BIT
  32. #define STACK_TOP TASK_SIZE
  33. #endif
  34. #ifdef CONFIG_64BIT
  35. #define STACK_TOP (current->thread.mflags & MF_32BIT_ADDR ? TASK_SIZE32 : TASK_SIZE)
  36. #endif
  37. #endif
  38. #endif /* _ASM_A_OUT_H */