asm-offsets.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Adapted from Linux v2.6.36 kernel: arch/powerpc/kernel/asm-offsets.c
  3. *
  4. * This program is used to generate definitions needed by
  5. * assembly language modules.
  6. *
  7. * We use the technique used in the OSF Mach kernel code:
  8. * generate asm statements containing #defines,
  9. * compile this file to assembler, and then extract the
  10. * #defines from the assembly-language output.
  11. *
  12. * This program is free software; you can redistribute it and/or
  13. * modify it under the terms of the GNU General Public License
  14. * as published by the Free Software Foundation; either version
  15. * 2 of the License, or (at your option) any later version.
  16. */
  17. #include <common.h>
  18. #include <linux/kbuild.h>
  19. int main(void)
  20. {
  21. /* Round up to make sure size gives nice stack alignment */
  22. DEFINE(GENERATED_GBL_DATA_SIZE,
  23. (sizeof(struct global_data) + 15) & ~15);
  24. DEFINE(GENERATED_BD_INFO_SIZE,
  25. (sizeof(struct bd_info) + 15) & ~15);
  26. DEFINE(GD_SIZE, sizeof(struct global_data));
  27. DEFINE(GD_BD, offsetof(struct global_data, bd));
  28. #if defined(CONFIG_ARM)
  29. DEFINE(GD_RELOCADDR, offsetof(struct global_data, relocaddr));
  30. DEFINE(GD_RELOC_OFF, offsetof(struct global_data, reloc_off));
  31. DEFINE(GD_START_ADDR_SP, offsetof(struct global_data, start_addr_sp));
  32. #endif
  33. return 0;
  34. }