libmetal
Toggle main menu visibility
Loading...
Searching...
No Matches
lib
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
28
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
50
struct
metal_init_params
{
51
53
metal_log_handler
log_handler
;
54
56
enum
metal_log_level
log_level
;
57
};
58
63
struct
metal_common_state
{
65
enum
metal_log_level
log_level
;
66
68
metal_log_handler
log_handler
;
69
71
struct
metal_list
bus_list
;
72
74
struct
metal_list
generic_shmem_list
;
75
77
struct
metal_list
generic_device_list
;
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
144
145
#ifdef __cplusplus
146
}
147
#endif
148
149
#endif
/* __METAL_SYS__H__ */
metal_log_level
metal_log_level
Definition
log.h:24
metal_log_handler
void(*) metal_log_handler(enum metal_log_level level, const char *format,...)
Definition
log.h:36
metal_finish
void metal_finish(void)
Shutdown libmetal.
Definition
init.c:30
metal_irq_t
int metal_irq_t
Definition
sys.h:33
_metal
struct metal_state _metal
Definition
init.c:16
metal_init
int metal_init(const struct metal_init_params *params)
Initialize libmetal.
Definition
init.c:10
metal_phys_addr_t
unsigned long metal_phys_addr_t
Definition
sys.h:30
metal_common_state
Definition
sys.h:63
metal_common_state::log_level
enum metal_log_level log_level
Definition
sys.h:65
metal_common_state::bus_list
struct metal_list bus_list
Definition
sys.h:71
metal_common_state::generic_shmem_list
struct metal_list generic_shmem_list
Definition
sys.h:74
metal_common_state::generic_device_list
struct metal_list generic_device_list
Definition
sys.h:77
metal_common_state::log_handler
metal_log_handler log_handler
Definition
sys.h:68
metal_init_params
Definition
sys.h:50
metal_init_params::log_handler
metal_log_handler log_handler
Definition
sys.h:53
metal_init_params::log_level
enum metal_log_level log_level
Definition
sys.h:56
metal_list
Definition
list.h:26
metal_state
Definition
sys.h:30
metal_sys_init
int metal_sys_init(const struct metal_init_params *params)
Definition
init.c:18
metal_sys_finish
void metal_sys_finish(void)
Definition
init.c:25
Generated on
for libmetal by
1.18.0