1/* 2 * QEMU remote port memory slave. Read and write transactions 3 * recieved from the remote port are translated into an address space. 4 * 5 * Copyright (c) 2013 Xilinx Inc 6 * Written by Edgar E. Iglesias <edgar.iglesias@xilinx.com> 7 * Written by Peter Crosthwaite <peter.crosthwaite@xilinx.com> 8 * 9 * This code is licensed under the GNU GPL. 10 */ 11#ifndef REMOTE_PORT_MEMORY_SLAVE_H 12#define REMOTE_PORT_MEMORY_SLAVE_H 13 14#include "hw/remote-port-ats.h" 15 16#define TYPE_REMOTE_PORT_MEMORY_SLAVE "remote-port-memory-slave" 17#define REMOTE_PORT_MEMORY_SLAVE(obj) \ 18 OBJECT_CHECK(RemotePortMemorySlave, (obj), \ 19 TYPE_REMOTE_PORT_MEMORY_SLAVE) 20 21typedef struct RemotePortMemorySlave { 22 /* private */ 23 SysBusDevice parent; 24 /* public */ 25 struct RemotePort *rp; 26 struct rp_peer_state *peer; 27 MemoryRegion *mr; 28 AddressSpace as; 29 MemTxAttrs attr; 30 RemotePortDynPkt rsp; 31 RemotePortATSCache *ats_cache; 32} RemotePortMemorySlave; 33#endif 34