asm-offsets.c 1.1 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. * SPDX-License-Identifier: GPL-2.0+
  13. */
  14. #include <common.h>
  15. #include <linux/kbuild.h>
  16. int main(void)
  17. {
  18. /* Round up to make sure size gives nice stack alignment */
  19. DEFINE(GENERATED_GBL_DATA_SIZE,
  20. (sizeof(struct global_data) + 15) & ~15);
  21. DEFINE(GENERATED_BD_INFO_SIZE,
  22. (sizeof(struct bd_info) + 15) & ~15);
  23. DEFINE(GD_SIZE, sizeof(struct global_data));
  24. DEFINE(GD_BD, offsetof(struct global_data, bd));
  25. #ifdef CONFIG_SYS_MALLOC_F_LEN
  26. DEFINE(GD_MALLOC_BASE, offsetof(struct global_data, malloc_base));
  27. #endif
  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. }