1 /*
2  * Copyright (c) 2015, Xilinx Inc. and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include <string.h>
8 #include <metal/sys.h>
9 
metal_init(const struct metal_init_params * params)10 int metal_init(const struct metal_init_params *params)
11 {
12 	int error = 0;
13 
14 	memset(&_metal, 0, sizeof(_metal));
15 
16 	_metal.common.log_handler   = params->log_handler;
17 	_metal.common.log_level     = params->log_level;
18 
19 	metal_list_init(&_metal.common.bus_list);
20 	metal_list_init(&_metal.common.generic_shmem_list);
21 	metal_list_init(&_metal.common.generic_device_list);
22 
23 	error = metal_sys_init(params);
24 	if (error)
25 		return error;
26 
27 	return error;
28 }
29 
metal_finish(void)30 void metal_finish(void)
31 {
32 	metal_sys_finish();
33 	memset(&_metal, 0, sizeof(_metal));
34 }
35