blob: 293f8035cc3017d8fcbbf9f61f55b10679220068 [file] [log] [blame]
Soby Mathewb4c6df42022-11-09 11:13:29 +00001/*
2 * SPDX-License-Identifier: BSD-3-Clause
3 * SPDX-FileCopyrightText: Copyright TF-RMM Contributors.
4 */
5
6#ifndef MMIO_H
7#define MMIO_H
8
9#include <stdint.h>
10
11static inline uint8_t read8(volatile void *addr)
12{
13 return *(uint8_t *)addr;
14}
15
16static inline void write8(uint8_t val, volatile void *addr)
17{
18 *(uint8_t *)addr = val;
19}
20
21static inline uint16_t read16(volatile void *addr)
22{
23 return *(uint16_t *)addr;
24}
25
26static inline void write16(uint16_t val, volatile void *addr)
27{
28 *(uint16_t *)addr = val;
29}
30
31static inline uint32_t read32(volatile void *addr)
32{
33 return *(uint32_t *)addr;
34}
35
36static inline void write32(uint32_t val, volatile void *addr)
37{
38 *(uint32_t *)addr = val;
39}
40
41static inline uint64_t read64(volatile void *addr)
42{
43 return *(uint64_t *)addr;
44}
45
46static inline void write64(uint64_t val, volatile void *addr)
47{
48 *(uint64_t *)addr = val;
49}
50
51#endif /* MMIO_H */