1/* 2 * Copyright (c) 2014 Advanced Micro Devices, Inc. 3 * Copyright (c) 2001-2005 The Regents of The University of Michigan 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 147 unchanged lines hidden (view full) --- 156 void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; 157 }; 158 159 protected: 160 /// Memory proxy for initialization (image loading) 161 SETranslatingPortProxy initVirtMem; 162 163 private: |
164 static const int NUM_FDS = 1024; |
165 |
166 // File descriptor remapping support. 167 FdMap *fd_map; |
168 169 public: 170 // static helper functions to generate file descriptors for constructor 171 static int openInputFile(const std::string &filename); 172 static int openOutputFile(const std::string &filename); 173 174 // override of virtual SimObject method: register statistics 175 virtual void regStats(); --- 6 unchanged lines hidden (view full) --- 182 } 183 184 // Find a free context to use 185 ThreadContext *findFreeContext(); 186 187 // provide program name for debug messages 188 virtual const char *progName() const { return "<unknown>"; } 189 |
190 // generate new target fd for sim_fd 191 int alloc_fd(int sim_fd, const std::string& filename, int flags, int mode, 192 bool pipe); 193 |
194 // disassociate target fd with simulator fd and cleanup subsidiary fields 195 void free_fdmap_entry(int tgt_fd); |
196 197 // look up simulator fd for given target fd 198 int sim_fd(int tgt_fd); 199 200 // look up simulator fd_map object for a given target fd 201 FdMap *sim_fd_obj(int tgt_fd); 202 |
203 // look up target fd for given host fd 204 // Assumes a 1:1 mapping between target file descriptor and host file 205 // descriptor. Given the current API, this must be true given that it's 206 // not possible to map multiple target file descriptors to the same host 207 // file descriptor 208 int tgt_fd(int sim_fd); 209 |
210 // fix all offsets for currently open files and save them 211 void fix_file_offsets(); 212 213 // find all offsets for currently open files and save them 214 void find_file_offsets(); 215 216 // set the source of this read pipe for a checkpoint resume 217 void setReadPipeSource(int read_pipe_fd, int source_fd); --- 140 unchanged lines hidden --- |