xref: /optee_os/core/include/initcall.h (revision 77327d7a47019cf9f66972403d0de1c32fe4cdee)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2014, Linaro Limited
4  */
5 
6 #ifndef INITCALL_H
7 #define INITCALL_H
8 
9 #include <scattered_array.h>
10 #include <tee_api_types.h>
11 
12 typedef TEE_Result (*initcall_t)(void);
13 
14 #define __define_initcall(level, fn) \
15 	SCATTERED_ARRAY_DEFINE_PG_ITEM_ORDERED(initcall, level, initcall_t) = \
16 		(fn)
17 
18 #define initcall_begin	SCATTERED_ARRAY_BEGIN(initcall, initcall_t)
19 #define initcall_end	SCATTERED_ARRAY_END(initcall, initcall_t)
20 
21 #define service_init(fn)	__define_initcall(1, fn)
22 #define service_init_late(fn)	__define_initcall(2, fn)
23 #define driver_init(fn)		__define_initcall(3, fn)
24 #define driver_init_late(fn)	__define_initcall(4, fn)
25 
26 
27 #endif
28