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 
30 typedef unsigned long metal_phys_addr_t;
31 
33 typedef int metal_irq_t;
34 
36 #define METAL_BAD_OFFSET ((unsigned long)-1)
37 
39 #define METAL_BAD_PHYS ((metal_phys_addr_t)-1)
40 
42 #define METAL_BAD_VA ((void *)-1)
43 
45 #define METAL_BAD_IRQ ((metal_irq_t)-1)
46 
51 
54 
57 };
58 
66 
69 
71  struct metal_list bus_list;
72 
75 
78 };
79 
80 struct metal_state;
81 
82 #include <metal/system/@PROJECT_SYSTEM@/sys.h>
83 
84 #ifndef METAL_INIT_DEFAULTS
85 #define METAL_INIT_DEFAULTS \
86 { \
87  .log_handler = metal_default_log_handler, \
88  .log_level = METAL_LOG_INFO, \
89 }
90 #endif
91 
93 extern struct metal_state _metal;
94 
106 extern int metal_init(const struct metal_init_params *params);
107 
115 extern void metal_finish(void);
116 
117 #ifdef METAL_INTERNAL
118 
129 extern int metal_sys_init(const struct metal_init_params *params);
130 
139 extern void metal_sys_finish(void);
140 
141 #endif
142 
145 #ifdef __cplusplus
146 }
147 #endif
148 
149 #endif /* __METAL_SYS__H__ */
metal_common_state::generic_device_list
struct metal_list generic_device_list
Definition: sys.h:77
metal_log_handler
void(* metal_log_handler)(enum metal_log_level level, const char *format,...)
Definition: log.h:36
metal_common_state::bus_list
struct metal_list bus_list
Definition: sys.h:71
metal_init_params
Definition: sys.h:50
metal_init_params::log_handler
metal_log_handler log_handler
Definition: sys.h:53
metal_sys_finish
void metal_sys_finish(void)
Definition: init.c:25
metal_init_params::log_level
enum metal_log_level log_level
Definition: sys.h:56
metal_common_state::generic_shmem_list
struct metal_list generic_shmem_list
Definition: sys.h:74
metal_list
Definition: list.h:25
metal_sys_init
int metal_sys_init(const struct metal_init_params *params)
Definition: init.c:18
metal_common_state::log_level
enum metal_log_level log_level
Definition: sys.h:65
_metal
struct metal_state _metal
Definition: init.c:16
metal_common_state::log_handler
metal_log_handler log_handler
Definition: sys.h:68
metal_common_state
Definition: sys.h:63
metal_init
int metal_init(const struct metal_init_params *params)
Initialize libmetal.
Definition: init.c:10
metal_irq_t
int metal_irq_t
Definition: sys.h:33
metal_finish
void metal_finish(void)
Shutdown libmetal.
Definition: init.c:30
metal_phys_addr_t
unsigned long metal_phys_addr_t
Definition: sys.h:30
metal_log_level
metal_log_level
Definition: log.h:24
metal_state
Definition: sys.h:30