master
inc 57 lines 1.53 KB
Raw
1 /*
2 * Physical memory access endian templates
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 * Copyright (c) 2015 Linaro, Inc.
6 * Copyright (c) 2016 Red Hat, Inc.
7 * Copyright (c) 2025 Linaro Ltd.
8 *
9 * SPDX-License-Identifier: GPL-2.0-or-later
10 */
11
12 #define LD_PHYS(size) \
13 glue(glue(ld, size), glue(ENDIANNESS, glue(_phys, SUFFIX)))
14 #define ADDRESS_SPACE_LD(size) \
15 glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX))
16
17 #define ST_PHYS(size) \
18 glue(glue(st, size), glue(ENDIANNESS, glue(_phys, SUFFIX)))
19 #define ADDRESS_SPACE_ST(size) \
20 glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX))
21
22 static inline uint16_t LD_PHYS(uw)(ARG1_DECL, hwaddr addr)
23 {
24 return ADDRESS_SPACE_LD(uw)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL);
25 }
26
27 static inline uint32_t LD_PHYS(l)(ARG1_DECL, hwaddr addr)
28 {
29 return ADDRESS_SPACE_LD(l)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL);
30 }
31
32 static inline uint64_t LD_PHYS(q)(ARG1_DECL, hwaddr addr)
33 {
34 return ADDRESS_SPACE_LD(q)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL);
35 }
36
37 static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val)
38 {
39 ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL);
40 }
41
42 static inline void ST_PHYS(l)(ARG1_DECL, hwaddr addr, uint32_t val)
43 {
44 ADDRESS_SPACE_ST(l)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL);
45 }
46
47 static inline void ST_PHYS(q)(ARG1_DECL, hwaddr addr, uint64_t val)
48 {
49 ADDRESS_SPACE_ST(q)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL);
50 }
51
52 #undef LD_PHYS
53 #undef ST_PHYS
54 #undef ADDRESS_SPACE_LD
55 #undef ADDRESS_SPACE_ST
56
57 #undef ENDIANNESS