process_impl.hh revision 14020
14434Ssaidi@eecs.umich.edu/* 24434Ssaidi@eecs.umich.edu * Copyright (c) 2001-2005 The Regents of The University of Michigan 34434Ssaidi@eecs.umich.edu * All rights reserved. 44434Ssaidi@eecs.umich.edu * 54434Ssaidi@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 64434Ssaidi@eecs.umich.edu * modification, are permitted provided that the following conditions are 74434Ssaidi@eecs.umich.edu * met: redistributions of source code must retain the above copyright 84434Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 94434Ssaidi@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 104434Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 114434Ssaidi@eecs.umich.edu * documentation and/or other materials provided with the distribution; 124434Ssaidi@eecs.umich.edu * neither the name of the copyright holders nor the names of its 134434Ssaidi@eecs.umich.edu * contributors may be used to endorse or promote products derived from 144434Ssaidi@eecs.umich.edu * this software without specific prior written permission. 154434Ssaidi@eecs.umich.edu * 164434Ssaidi@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 174434Ssaidi@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 184434Ssaidi@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 194434Ssaidi@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 204434Ssaidi@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 214434Ssaidi@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 224434Ssaidi@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 234434Ssaidi@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 244434Ssaidi@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 254434Ssaidi@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 264434Ssaidi@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 274434Ssaidi@eecs.umich.edu * 284434Ssaidi@eecs.umich.edu * Authors: Nathan Binkert 294434Ssaidi@eecs.umich.edu * Steve Reinhardt 304434Ssaidi@eecs.umich.edu */ 314434Ssaidi@eecs.umich.edu 324434Ssaidi@eecs.umich.edu#ifndef __SIM_PROCESS_IMPL_HH__ 334434Ssaidi@eecs.umich.edu#define __SIM_PROCESS_IMPL_HH__ 344434Ssaidi@eecs.umich.edu 354434Ssaidi@eecs.umich.edu#include <string> 364434Ssaidi@eecs.umich.edu#include <vector> 374434Ssaidi@eecs.umich.edu 388706Sandreas.hansson@arm.com#include "mem/se_translating_port_proxy.hh" 394434Ssaidi@eecs.umich.edu 404434Ssaidi@eecs.umich.edu//This needs to be templated for cases where 32 bit pointers are needed. 414434Ssaidi@eecs.umich.edutemplate<class AddrType> 424434Ssaidi@eecs.umich.eduvoid 434434Ssaidi@eecs.umich.educopyStringArray(std::vector<std::string> &strings, 444434Ssaidi@eecs.umich.edu AddrType array_ptr, AddrType data_ptr, 4514020Sgabeblack@google.com PortProxy& memProxy) 464434Ssaidi@eecs.umich.edu{ 474434Ssaidi@eecs.umich.edu AddrType data_ptr_swap; 486227Snate@binkert.org for (std::vector<std::string>::size_type i = 0; i < strings.size(); ++i) { 498737Skoansin.tan@gmail.com data_ptr_swap = TheISA::htog(data_ptr); 5014010Sgabeblack@google.com memProxy.writeBlob(array_ptr, &data_ptr_swap, sizeof(AddrType)); 518852Sandreas.hansson@arm.com memProxy.writeString(data_ptr, strings[i].c_str()); 524434Ssaidi@eecs.umich.edu array_ptr += sizeof(AddrType); 534434Ssaidi@eecs.umich.edu data_ptr += strings[i].size() + 1; 544434Ssaidi@eecs.umich.edu } 554434Ssaidi@eecs.umich.edu // add NULL terminator 564434Ssaidi@eecs.umich.edu data_ptr = 0; 574434Ssaidi@eecs.umich.edu 5814010Sgabeblack@google.com memProxy.writeBlob(array_ptr, &data_ptr, sizeof(AddrType)); 594434Ssaidi@eecs.umich.edu} 604434Ssaidi@eecs.umich.edu 614434Ssaidi@eecs.umich.edu#endif 62