system.hh (8832:247fee427324) | system.hh (8852:c744483edfcf) |
---|---|
1/* 2 * Copyright (c) 2012 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 --- 42 unchanged lines hidden (view full) --- 51#include <vector> 52 53#include "base/loader/symtab.hh" 54#include "base/misc.hh" 55#include "base/statistics.hh" 56#include "cpu/pc_event.hh" 57#include "enums/MemoryMode.hh" 58#include "kern/system_events.hh" | 1/* 2 * Copyright (c) 2012 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 --- 42 unchanged lines hidden (view full) --- 51#include <vector> 52 53#include "base/loader/symtab.hh" 54#include "base/misc.hh" 55#include "base/statistics.hh" 56#include "cpu/pc_event.hh" 57#include "enums/MemoryMode.hh" 58#include "kern/system_events.hh" |
59#include "mem/fs_translating_port_proxy.hh" |
|
59#include "mem/mem_object.hh" 60#include "mem/port.hh" 61#include "params/System.hh" 62 63class BaseCPU; 64class BaseRemoteGDB; | 60#include "mem/mem_object.hh" 61#include "mem/port.hh" 62#include "params/System.hh" 63 64class BaseCPU; 65class BaseRemoteGDB; |
65class FSTranslatingPortProxy; | |
66class GDBListener; 67class ObjectFile; 68class PhysicalMemory; 69class Platform; | 66class GDBListener; 67class ObjectFile; 68class PhysicalMemory; 69class Platform; |
70class PortProxy; | |
71class ThreadContext; | 70class ThreadContext; |
72class VirtualPort; | |
73 74class System : public MemObject 75{ 76 private: 77 78 /** 79 * Private class for the system port which is only used as a 80 * master for debug access and for non-structural entities that do --- 31 unchanged lines hidden (view full) --- 112 113 /** 114 * After all objects have been created and all ports are 115 * connected, check that the system port is connected. 116 */ 117 virtual void init(); 118 119 /** | 71 72class System : public MemObject 73{ 74 private: 75 76 /** 77 * Private class for the system port which is only used as a 78 * master for debug access and for non-structural entities that do --- 31 unchanged lines hidden (view full) --- 110 111 /** 112 * After all objects have been created and all ports are 113 * connected, check that the system port is connected. 114 */ 115 virtual void init(); 116 117 /** |
120 * Get a pointer to the system port that can be used by | 118 * Get a reference to the system port that can be used by |
121 * non-structural simulation objects like processes or threads, or 122 * external entities like loaders and debuggers, etc, to access 123 * the memory system. 124 * | 119 * non-structural simulation objects like processes or threads, or 120 * external entities like loaders and debuggers, etc, to access 121 * the memory system. 122 * |
125 * @return a pointer to the system port we own | 123 * @return a reference to the system port we own |
126 */ | 124 */ |
127 Port* getSystemPort() { return &_systemPort; } | 125 Port& getSystemPort() { return _systemPort; } |
128 129 /** 130 * Additional function to return the Port of a memory object. 131 */ 132 Port *getPort(const std::string &if_name, int idx = -1); 133 134 static const char *MemoryModeStrings[3]; 135 --- 40 unchanged lines hidden (view full) --- 176 bool isMemory(const Addr addr) const; 177 178 Addr pagePtr; 179 180 uint64_t init_param; 181 182 /** Port to physical memory used for writing object files into ram at 183 * boot.*/ | 126 127 /** 128 * Additional function to return the Port of a memory object. 129 */ 130 Port *getPort(const std::string &if_name, int idx = -1); 131 132 static const char *MemoryModeStrings[3]; 133 --- 40 unchanged lines hidden (view full) --- 174 bool isMemory(const Addr addr) const; 175 176 Addr pagePtr; 177 178 uint64_t init_param; 179 180 /** Port to physical memory used for writing object files into ram at 181 * boot.*/ |
184 PortProxy* physProxy; 185 FSTranslatingPortProxy* virtProxy; | 182 PortProxy physProxy; 183 FSTranslatingPortProxy virtProxy; |
186 187 /** kernel symbol table */ 188 SymbolTable *kernelSymtab; 189 190 /** Object pointer for the kernel code */ 191 ObjectFile *kernel; 192 193 /** Begining of kernel code */ --- 219 unchanged lines hidden --- | 184 185 /** kernel symbol table */ 186 SymbolTable *kernelSymtab; 187 188 /** Object pointer for the kernel code */ 189 ObjectFile *kernel; 190 191 /** Begining of kernel code */ --- 219 unchanged lines hidden --- |