libmetal
sys.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Xilinx Inc. and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 /*
8  * @file sys.h
9  * @brief System primitives for libmetal.
10  * @brief Top level include internal to libmetal library code.
11  */
12 
13 #ifndef __METAL_SYS__H__
14 #define __METAL_SYS__H__
15 
16 #include <stdlib.h>
17 
18 #include <metal/log.h>
19 #include <metal/list.h>
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
29 typedef unsigned long metal_phys_addr_t;
30 
32 typedef int metal_irq_t;
33 
35 #define METAL_BAD_OFFSET ((unsigned long)-1)
36 
38 #define METAL_BAD_PHYS ((metal_phys_addr_t)-1)
39 
41 #define METAL_BAD_VA ((void *)-1)
42 
44 #define METAL_BAD_IRQ ((metal_irq_t)-1)
45 
50 
53 
56 };
57 
65 
68 
71 
74 
77 };
78 
79 struct metal_state;
80 
81 #include <metal/system/@PROJECT_SYSTEM@/sys.h>
82 
83 #ifndef METAL_INIT_DEFAULTS
84 #define METAL_INIT_DEFAULTS \
85 { \
86  .log_handler = metal_default_log_handler, \
87  .log_level = METAL_LOG_INFO, \
88 }
89 #endif
90 
92 extern struct metal_state _metal;
93 
105 extern int metal_init(const struct metal_init_params *params);
106 
114 extern void metal_finish(void);
115 
116 #ifdef METAL_INTERNAL
117 
128 extern int metal_sys_init(const struct metal_init_params *params);
129 
138 extern void metal_sys_finish(void);
139 
140 #endif
141 
144 #ifdef __cplusplus
145 }
146 #endif
147 
148 #endif /* __METAL_SYS__H__ */
metal_log_handler log_handler
Definition: sys.h:67
Definition: sys.h:62
struct metal_list generic_shmem_list
Definition: sys.h:73
Definition: sys.h:30
struct metal_list generic_device_list
Definition: sys.h:76
metal_log_handler log_handler
Definition: sys.h:52
struct metal_list bus_list
Definition: sys.h:70
Definition: list.h:24
enum metal_log_level log_level
Definition: sys.h:55
int metal_sys_init(const struct metal_init_params *params)
Definition: init.c:18
void metal_sys_finish(void)
Definition: init.c:25
int metal_irq_t
Definition: sys.h:32
Definition: sys.h:49
metal_log_level
Definition: log.h:23
void(* metal_log_handler)(enum metal_log_level level, const char *format,...)
Definition: log.h:35
void metal_finish(void)
Shutdown libmetal.
Definition: init.c:30
struct metal_state _metal
Definition: init.c:16
int metal_init(const struct metal_init_params *params)
Initialize libmetal.
Definition: init.c:10
enum metal_log_level log_level
Definition: sys.h:64
unsigned long metal_phys_addr_t
Definition: sys.h:29