| /* SPDX-License-Identifier: GPL-2.0+ */ |
| * Copyright (c) 2011 The Chromium OS Authors. |
| _Static_assert(EVT_COUNT < 256, "Can only support 256 event types with 8 bits"); |
| * init_fnc_t - Init function |
| * Return: 0 if OK -ve on error |
| typedef int (*init_fnc_t)(void); |
| /* Top bit indicates that the initcall is an event */ |
| #define INITCALL_IS_EVENT GENMASK(BITS_PER_LONG - 1, 8) |
| #define INITCALL_EVENT_TYPE GENMASK(7, 0) |
| #define INITCALL_EVENT(_type) (void *)((_type) | INITCALL_IS_EVENT) |
| * initcall_run_list() - Run through a list of function calls |
| * This calls functions one after the other, stopping at the first error, or |
| * @init_sequence: NULL-terminated init sequence to run |
| * Return: 0 if OK, or -ve error code from the first failure |
| int initcall_run_list(const init_fnc_t init_sequence[]); |