aboutsummaryrefslogtreecommitdiff
path: root/lib/initcall.c
blob: fa76dd73c19ed89c58a5f79b65a7f4ab49ec7a06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
 * Copyright (c) 2013 The Chromium OS Authors.
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#include <common.h>
#include <initcall.h>

int initcall_run_list(init_fnc_t init_sequence[])
{
	init_fnc_t *init_fnc_ptr;

	for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
		debug("initcall: %p\n", *init_fnc_ptr);
		if ((*init_fnc_ptr)()) {
			debug("initcall sequence %p failed at call %p\n",
			      init_sequence, *init_fnc_ptr);
			return -1;
		}
	}
	return 0;
}