summaryrefslogtreecommitdiff
path: root/core/include/initcall.h
blob: b2db3d4761bc75718295b7253b5781d305284b0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (c) 2014, Linaro Limited
 * All rights reserved.
 */

#ifndef INITCALL_H
#define INITCALL_H

#include <tee_api_types.h>

typedef TEE_Result (*initcall_t)(void);

#define __define_initcall(level, fn) \
	static initcall_t __initcall_##fn __attribute__((used)) \
	__attribute__((__section__(".initcall" level))) = fn

#define service_init(fn)	__define_initcall("1", fn)
#define service_init_late(fn)	__define_initcall("2", fn)
#define driver_init(fn)		__define_initcall("3", fn)
#define driver_init_late(fn)	__define_initcall("4", fn)

#endif