| /* |
| * Physical memory access endian templates |
| * |
| * Copyright (c) 2003 Fabrice Bellard |
| * Copyright (c) 2015 Linaro, Inc. |
| * Copyright (c) 2016 Red Hat, Inc. |
| * Copyright (c) 2025 Linaro Ltd. |
| * |
| * SPDX-License-Identifier: GPL-2.0-or-later |
| */ |
| |
| #define LD_PHYS(size) \ |
| glue(glue(ld, size), glue(ENDIANNESS, glue(_phys, SUFFIX))) |
| #define ADDRESS_SPACE_LD(size) \ |
| glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX)) |
| |
| #define ST_PHYS(size) \ |
| glue(glue(st, size), glue(ENDIANNESS, glue(_phys, SUFFIX))) |
| #define ADDRESS_SPACE_ST(size) \ |
| glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX)) |
| |
| static inline uint16_t LD_PHYS(uw)(ARG1_DECL, hwaddr addr) |
| { |
| return ADDRESS_SPACE_LD(uw)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); |
| } |
| |
| static inline uint32_t LD_PHYS(l)(ARG1_DECL, hwaddr addr) |
| { |
| return ADDRESS_SPACE_LD(l)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); |
| } |
| |
| static inline uint64_t LD_PHYS(q)(ARG1_DECL, hwaddr addr) |
| { |
| return ADDRESS_SPACE_LD(q)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); |
| } |
| |
| static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val) |
| { |
| ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); |
| } |
| |
| static inline void ST_PHYS(l)(ARG1_DECL, hwaddr addr, uint32_t val) |
| { |
| ADDRESS_SPACE_ST(l)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); |
| } |
| |
| static inline void ST_PHYS(q)(ARG1_DECL, hwaddr addr, uint64_t val) |
| { |
| ADDRESS_SPACE_ST(q)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); |
| } |
| |
| #undef LD_PHYS |
| #undef ST_PHYS |
| #undef ADDRESS_SPACE_LD |
| #undef ADDRESS_SPACE_ST |
| |
| #undef ENDIANNESS |