1/* 2 * Copyright (c) 2011-2013, 2018 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 45 unchanged lines hidden (view full) --- 54 * CPU, e.g. for threads) and thus are transparent to a potentially 55 * distributed memory and automatically adhere to the memory map of 56 * the system. 57 */ 58 59#ifndef __MEM_PORT_PROXY_HH__ 60#define __MEM_PORT_PROXY_HH__ 61 |
62#include <limits> 63 |
64#include "mem/port.hh" 65#include "sim/byteswap.hh" 66 67/** 68 * This object is a proxy for a structural port, to be used for debug 69 * accesses. 70 * 71 * This proxy object is used when non structural entities --- 167 unchanged lines hidden (view full) --- 239 * Same as tryReadString, but insists on success. 240 */ 241 void 242 readString(std::string &str, Addr addr) const 243 { 244 if (!tryReadString(str, addr)) 245 fatal("readString(%#x, ...) failed", addr); 246 } |
247 248 /** 249 * Reads the string at guest address addr into the char * str, reading up 250 * to maxlen characters. The last character read is always a nul 251 * terminator. Returns true on success and false on failure. 252 */ 253 bool tryReadString(char *str, Addr addr, size_t maxlen) const; 254 255 /** 256 * Same as tryReadString, but insists on success. 257 */ 258 void 259 readString(char *str, Addr addr, size_t maxlen) const 260 { 261 if (!tryReadString(str, addr, maxlen)) 262 fatal("readString(%#x, ...) failed", addr); 263 } |
264}; 265 266 267template <typename T> 268T 269PortProxy::read(Addr address) const 270{ 271 T data; --- 29 unchanged lines hidden --- |