Blame view
include/initcall.h
1.18 KB
83d290c56 SPDX: Convert all... |
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
c8a311d9d Introduce a basic... |
2 3 |
/* * Copyright (c) 2011 The Chromium OS Authors. |
c8a311d9d Introduce a basic... |
4 |
*/ |
2d986c0f5 board_f: initcall... |
5 6 |
#ifndef __INITCALL_H #define __INITCALL_H |
c8a311d9d Introduce a basic... |
7 |
typedef int (*init_fnc_t)(void); |
315f60d74 initcall: Drop us... |
8 9 10 11 12 |
/* * To enable debugging. add #define DEBUG at the top of the including file. * * To find a symbol, use grep on u-boot.map */ |
47870afab initcall: Move to... |
13 14 15 16 17 18 19 |
static inline int initcall_run_list(const init_fnc_t init_sequence[]) { const init_fnc_t *init_fnc_ptr; for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { unsigned long reloc_ofs = 0; int ret; |
001d1885f sandbox: Improve ... |
20 21 22 23 24 |
/* * Sandbox is relocated by the OS, so symbols always appear at * the relocated address. */ if (IS_ENABLED(CONFIG_SANDBOX) || (gd->flags & GD_FLG_RELOC)) |
47870afab initcall: Move to... |
25 26 27 28 |
reloc_ofs = gd->reloc_off; #ifdef CONFIG_EFI_APP reloc_ofs = (unsigned long)image_base; #endif |
001d1885f sandbox: Improve ... |
29 |
if (reloc_ofs) |
fa840f13f initcall.h: initc... |
30 31 32 33 |
debug("initcall: %p (relocated to %p) ", (char *)*init_fnc_ptr - reloc_ofs, (char *)*init_fnc_ptr); |
47870afab initcall: Move to... |
34 |
else |
fa840f13f initcall.h: initc... |
35 36 |
debug("initcall: %p ", (char *)*init_fnc_ptr - reloc_ofs); |
47870afab initcall: Move to... |
37 38 39 40 41 42 43 44 45 46 47 |
ret = (*init_fnc_ptr)(); if (ret) { printf("initcall sequence %p failed at call %p (err=%d) ", init_sequence, (char *)*init_fnc_ptr - reloc_ofs, ret); return -1; } } return 0; } |
2d986c0f5 board_f: initcall... |
48 49 |
#endif |