uboot/lib/asm-offsets.c
<<
>>
Prefs
   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
  15#include <common.h>
  16
  17#include <linux/kbuild.h>
  18
  19int 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
  25        DEFINE(GENERATED_BD_INFO_SIZE,
  26                (sizeof(struct bd_info) + 15) & ~15);
  27
  28        DEFINE(GD_SIZE, sizeof(struct global_data));
  29
  30        DEFINE(GD_BD, offsetof(struct global_data, bd));
  31
  32#if defined(CONFIG_ARM)
  33
  34        DEFINE(GD_RELOCADDR, offsetof(struct global_data, relocaddr));
  35
  36        DEFINE(GD_RELOC_OFF, offsetof(struct global_data, reloc_off));
  37
  38        DEFINE(GD_START_ADDR_SP, offsetof(struct global_data, start_addr_sp));
  39
  40#endif
  41
  42        return 0;
  43}
  44