Zephyr Project API
3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
sys_io.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015, Wind River Systems, Inc.
3
* Copyright (c) 2017, Oticon A/S
4
*
5
* SPDX-License-Identifier: Apache-2.0
6
*/
7
8
/* Memory mapped registers I/O functions in non-arch-specific C code */
9
10
#ifndef ZEPHYR_INCLUDE_ARCH_COMMON_SYS_IO_H_
11
#define ZEPHYR_INCLUDE_ARCH_COMMON_SYS_IO_H_
12
13
#ifndef _ASMLANGUAGE
14
15
#include <
zephyr/toolchain.h
>
16
#include <
zephyr/types.h
>
17
#include <
zephyr/sys/sys_io.h
>
18
19
#ifdef __cplusplus
20
extern
"C"
{
21
#endif
22
23
static
ALWAYS_INLINE
uint8_t
sys_read8
(
mem_addr_t
addr)
24
{
25
return
*(
volatile
uint8_t
*)addr;
26
}
27
28
static
ALWAYS_INLINE
void
sys_write8
(
uint8_t
data
,
mem_addr_t
addr)
29
{
30
*(
volatile
uint8_t
*)addr =
data
;
31
}
32
33
static
ALWAYS_INLINE
uint16_t
sys_read16
(
mem_addr_t
addr)
34
{
35
return
*(
volatile
uint16_t
*)addr;
36
}
37
38
static
ALWAYS_INLINE
void
sys_write16
(
uint16_t
data
,
mem_addr_t
addr)
39
{
40
*(
volatile
uint16_t
*)addr =
data
;
41
}
42
43
static
ALWAYS_INLINE
uint32_t
sys_read32
(
mem_addr_t
addr)
44
{
45
return
*(
volatile
uint32_t
*)addr;
46
}
47
48
static
ALWAYS_INLINE
void
sys_write32
(
uint32_t
data
,
mem_addr_t
addr)
49
{
50
*(
volatile
uint32_t
*)addr =
data
;
51
}
52
53
static
ALWAYS_INLINE
uint64_t
sys_read64
(
mem_addr_t
addr)
54
{
55
return
*(
volatile
uint64_t
*)addr;
56
}
57
58
static
ALWAYS_INLINE
void
sys_write64
(
uint64_t
data
,
mem_addr_t
addr)
59
{
60
*(
volatile
uint64_t
*)addr =
data
;
61
}
62
63
#ifdef __cplusplus
64
}
65
#endif
66
67
#endif
/* _ASMLANGUAGE */
68
69
#endif
/* ZEPHYR_INCLUDE_ARCH_COMMON_SYS_IO_H_ */
sys_write64
static ALWAYS_INLINE void sys_write64(uint64_t data, mem_addr_t addr)
Definition
sys_io.h:95
sys_write32
static ALWAYS_INLINE void sys_write32(uint32_t data, mem_addr_t addr)
Definition
sys_io.h:69
sys_read8
static ALWAYS_INLINE uint8_t sys_read8(mem_addr_t addr)
Definition
sys_io.h:27
sys_write16
static ALWAYS_INLINE void sys_write16(uint16_t data, mem_addr_t addr)
Definition
sys_io.h:53
sys_read32
static ALWAYS_INLINE uint32_t sys_read32(mem_addr_t addr)
Definition
sys_io.h:59
sys_read16
static ALWAYS_INLINE uint16_t sys_read16(mem_addr_t addr)
Definition
sys_io.h:43
sys_write8
static ALWAYS_INLINE void sys_write8(uint8_t data, mem_addr_t addr)
Definition
sys_io.h:37
sys_read64
static ALWAYS_INLINE uint64_t sys_read64(mem_addr_t addr)
Definition
sys_io.h:75
ALWAYS_INLINE
#define ALWAYS_INLINE
Definition
common.h:129
types.h
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
uint64_t
__UINT64_TYPE__ uint64_t
Definition
stdint.h:91
uint8_t
__UINT8_TYPE__ uint8_t
Definition
stdint.h:88
uint16_t
__UINT16_TYPE__ uint16_t
Definition
stdint.h:89
sys_io.h
mem_addr_t
uintptr_t mem_addr_t
Definition
sys_io.h:21
data
static fdata_t data[2]
Definition
test_fifo_contexts.c:15
toolchain.h
Macros to abstract toolchain specific capabilities.
include
zephyr
arch
common
sys_io.h
Generated on Sun Sep 15 2024 17:01:29 for Zephyr Project API by
1.9.8