2 * Physical memory access templates
4 * Copyright (c) 2003 Fabrice Bellard
5 * Copyright (c) 2015 Linaro, Inc.
6 * Copyright (c) 2016 Red Hat, Inc.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
22 #ifdef TARGET_ENDIANNESS
23 extern uint32_t glue(address_space_lduw
, SUFFIX
)(ARG1_DECL
,
24 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
25 extern uint32_t glue(address_space_ldl
, SUFFIX
)(ARG1_DECL
,
26 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
27 extern uint64_t glue(address_space_ldq
, SUFFIX
)(ARG1_DECL
,
28 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
29 extern void glue(address_space_stl_notdirty
, SUFFIX
)(ARG1_DECL
,
30 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
31 extern void glue(address_space_stw
, SUFFIX
)(ARG1_DECL
,
32 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
33 extern void glue(address_space_stl
, SUFFIX
)(ARG1_DECL
,
34 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
35 extern void glue(address_space_stq
, SUFFIX
)(ARG1_DECL
,
36 hwaddr addr
, uint64_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
38 extern uint32_t glue(address_space_ldub
, SUFFIX
)(ARG1_DECL
,
39 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
40 extern uint32_t glue(address_space_lduw_le
, SUFFIX
)(ARG1_DECL
,
41 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
42 extern uint32_t glue(address_space_lduw_be
, SUFFIX
)(ARG1_DECL
,
43 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
44 extern uint32_t glue(address_space_ldl_le
, SUFFIX
)(ARG1_DECL
,
45 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
46 extern uint32_t glue(address_space_ldl_be
, SUFFIX
)(ARG1_DECL
,
47 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
48 extern uint64_t glue(address_space_ldq_le
, SUFFIX
)(ARG1_DECL
,
49 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
50 extern uint64_t glue(address_space_ldq_be
, SUFFIX
)(ARG1_DECL
,
51 hwaddr addr
, MemTxAttrs attrs
, MemTxResult
*result
);
52 extern void glue(address_space_stb
, SUFFIX
)(ARG1_DECL
,
53 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
54 extern void glue(address_space_stw_le
, SUFFIX
)(ARG1_DECL
,
55 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
56 extern void glue(address_space_stw_be
, SUFFIX
)(ARG1_DECL
,
57 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
58 extern void glue(address_space_stl_le
, SUFFIX
)(ARG1_DECL
,
59 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
60 extern void glue(address_space_stl_be
, SUFFIX
)(ARG1_DECL
,
61 hwaddr addr
, uint32_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
62 extern void glue(address_space_stq_le
, SUFFIX
)(ARG1_DECL
,
63 hwaddr addr
, uint64_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
64 extern void glue(address_space_stq_be
, SUFFIX
)(ARG1_DECL
,
65 hwaddr addr
, uint64_t val
, MemTxAttrs attrs
, MemTxResult
*result
);
71 #undef TARGET_ENDIANNESS