gem5/src/arch/sparc/linux/process.cc

93 lines
3.2 KiB
C++
Raw Normal View History

Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
/*
* Copyright (c) 2003-2005 The Regents of The University of Michigan
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met: redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer;
* redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution;
* neither the name of the copyright holders nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Authors: Steve Reinhardt
* Gabe Black
* Ali Saidi
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
*/
Fixes to SPARC syscall emulation mode. arch/sparc/isa/base.isa: Added a set of abbreviations for the different condition tests. arch/sparc/isa/decoder.isa: Fixes and additions to get syscall emulation closer to working. arch/sparc/isa/formats/branch.isa: Fixed branches so that the immediate version actually uses the immediate value arch/sparc/isa/formats/integerop.isa: Compute the condition codes -before- writing to the state of the machine. arch/sparc/isa/formats/mem.isa: An attempt to fix up the output of the disassembly of loads and stores. arch/sparc/isa/formats/trap.isa: Added code to disassemble a trap instruction. This probably needs to be fixed up so there are immediate and register versions. arch/sparc/isa/operands.isa: Added an R1 operand, and fixed up the numbering arch/sparc/isa_traits.hh: SyscallNumReg is no longer needed, the max number of sources and destinations are fixed up, and the syscall return uses xcc instead of icc. arch/sparc/linux/process.cc: arch/sparc/linux/process.hh: Added a getresuidFunc syscall implementation. This isn't actually used, but I thought it was and will leave it in. arch/sparc/process.cc: arch/sparc/process.hh: Fixed up how the initial stack frame is set up. arch/sparc/regfile.hh: Changed the number of windows from 6 to 32 so we don't have to worry about spill and fill traps for now, and commented out the register file setting itself up. cpu/cpu_exec_context.hh: cpu/exec_context.hh: cpu/simple/cpu.hh: sim/process.cc: sim/process.hh: Changed the syscall mechanism to pass down the syscall number directly. --HG-- extra : convert_revision : 15723b949a0ddb3d24e68c079343b4dba2439f43
2006-04-18 15:27:22 +02:00
#include "arch/sparc/linux/process.hh"
2011-04-15 19:44:06 +02:00
#include "arch/sparc/isa_traits.hh"
#include "arch/sparc/registers.hh"
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
#include "base/trace.hh"
Change ExecContext to ThreadContext. This is being renamed to differentiate between the interface used objects outside of the CPU, and the interface used by the ISA. ThreadContext is used by objects outside of the CPU and is specifically defined in thread_context.hh. ExecContext is more implicit, and is defined by files such as base_dyn_inst.hh or cpu/simple/base.hh. Further renames/reorganization will be coming shortly; what is currently CPUExecContext (the old ExecContext from m5) will be renamed to SimpleThread or something similar. src/arch/alpha/arguments.cc: src/arch/alpha/arguments.hh: src/arch/alpha/ev5.cc: src/arch/alpha/faults.cc: src/arch/alpha/faults.hh: src/arch/alpha/freebsd/system.cc: src/arch/alpha/freebsd/system.hh: src/arch/alpha/isa/branch.isa: src/arch/alpha/isa/decoder.isa: src/arch/alpha/isa/main.isa: src/arch/alpha/linux/process.cc: src/arch/alpha/linux/system.cc: src/arch/alpha/linux/system.hh: src/arch/alpha/linux/threadinfo.hh: src/arch/alpha/process.cc: src/arch/alpha/regfile.hh: src/arch/alpha/stacktrace.cc: src/arch/alpha/stacktrace.hh: src/arch/alpha/tlb.cc: src/arch/alpha/tlb.hh: src/arch/alpha/tru64/process.cc: src/arch/alpha/tru64/system.cc: src/arch/alpha/tru64/system.hh: src/arch/alpha/utility.hh: src/arch/alpha/vtophys.cc: src/arch/alpha/vtophys.hh: src/arch/mips/faults.cc: src/arch/mips/faults.hh: src/arch/mips/isa_traits.cc: src/arch/mips/isa_traits.hh: src/arch/mips/linux/process.cc: src/arch/mips/process.cc: src/arch/mips/regfile/float_regfile.hh: src/arch/mips/regfile/int_regfile.hh: src/arch/mips/regfile/misc_regfile.hh: src/arch/mips/regfile/regfile.hh: src/arch/mips/stacktrace.hh: src/arch/sparc/faults.cc: src/arch/sparc/faults.hh: src/arch/sparc/isa_traits.hh: src/arch/sparc/linux/process.cc: src/arch/sparc/linux/process.hh: src/arch/sparc/process.cc: src/arch/sparc/regfile.hh: src/arch/sparc/solaris/process.cc: src/arch/sparc/stacktrace.hh: src/arch/sparc/ua2005.cc: src/arch/sparc/utility.hh: src/arch/sparc/vtophys.cc: src/arch/sparc/vtophys.hh: src/base/remote_gdb.cc: src/base/remote_gdb.hh: src/cpu/base.cc: src/cpu/base.hh: src/cpu/base_dyn_inst.hh: src/cpu/checker/cpu.cc: src/cpu/checker/cpu.hh: src/cpu/checker/exec_context.hh: src/cpu/cpu_exec_context.cc: src/cpu/cpu_exec_context.hh: src/cpu/cpuevent.cc: src/cpu/cpuevent.hh: src/cpu/exetrace.hh: src/cpu/intr_control.cc: src/cpu/memtest/memtest.hh: src/cpu/o3/alpha_cpu.hh: src/cpu/o3/alpha_cpu_impl.hh: src/cpu/o3/alpha_dyn_inst_impl.hh: src/cpu/o3/commit.hh: src/cpu/o3/commit_impl.hh: src/cpu/o3/cpu.cc: src/cpu/o3/cpu.hh: src/cpu/o3/fetch_impl.hh: src/cpu/o3/regfile.hh: src/cpu/o3/thread_state.hh: src/cpu/ozone/back_end.hh: src/cpu/ozone/cpu.hh: src/cpu/ozone/cpu_impl.hh: src/cpu/ozone/front_end.hh: src/cpu/ozone/front_end_impl.hh: src/cpu/ozone/inorder_back_end.hh: src/cpu/ozone/lw_back_end.hh: src/cpu/ozone/lw_back_end_impl.hh: src/cpu/ozone/lw_lsq.hh: src/cpu/ozone/lw_lsq_impl.hh: src/cpu/ozone/thread_state.hh: src/cpu/pc_event.cc: src/cpu/pc_event.hh: src/cpu/profile.cc: src/cpu/profile.hh: src/cpu/quiesce_event.cc: src/cpu/quiesce_event.hh: src/cpu/simple/atomic.cc: src/cpu/simple/base.cc: src/cpu/simple/base.hh: src/cpu/simple/timing.cc: src/cpu/static_inst.cc: src/cpu/static_inst.hh: src/cpu/thread_state.hh: src/dev/alpha_console.cc: src/dev/ns_gige.cc: src/dev/sinic.cc: src/dev/tsunami_cchip.cc: src/kern/kernel_stats.cc: src/kern/kernel_stats.hh: src/kern/linux/events.cc: src/kern/linux/events.hh: src/kern/system_events.cc: src/kern/system_events.hh: src/kern/tru64/dump_mbuf.cc: src/kern/tru64/tru64.hh: src/kern/tru64/tru64_events.cc: src/kern/tru64/tru64_events.hh: src/mem/vport.cc: src/mem/vport.hh: src/sim/faults.cc: src/sim/faults.hh: src/sim/process.cc: src/sim/process.hh: src/sim/pseudo_inst.cc: src/sim/pseudo_inst.hh: src/sim/syscall_emul.cc: src/sim/syscall_emul.hh: src/sim/system.cc: src/cpu/thread_context.hh: src/sim/system.hh: src/sim/vptr.hh: Change ExecContext to ThreadContext. --HG-- rename : src/cpu/exec_context.hh => src/cpu/thread_context.hh extra : convert_revision : 108bb97d15a114a565a2a6a23faa554f4e2fd77e
2006-06-06 23:32:21 +02:00
#include "cpu/thread_context.hh"
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
#include "kern/linux/linux.hh"
#include "sim/process.hh"
#include "sim/syscall_emul.hh"
using namespace std;
using namespace SparcISA;
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
SyscallDesc*
SparcLinuxProcess::getDesc(int callnum)
{
if (callnum < 0 || callnum >= Num_Syscall_Descs)
return NULL;
return &syscallDescs[callnum];
}
SyscallDesc*
SparcLinuxProcess::getDesc32(int callnum)
{
if (callnum < 0 || callnum >= Num_Syscall32_Descs)
return NULL;
return &syscall32Descs[callnum];
}
Sparc32LinuxProcess::Sparc32LinuxProcess(LiveProcessParams * params,
ObjectFile *objFile)
: Sparc32LiveProcess(params, objFile)
{}
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
void Sparc32LinuxProcess::handleTrap(int trapNum, ThreadContext *tc)
{
switch (trapNum) {
case 0x10: //Linux 32 bit syscall trap
tc->syscall(tc->readIntReg(1));
break;
default:
SparcLiveProcess::handleTrap(trapNum, tc);
}
}
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
Sparc64LinuxProcess::Sparc64LinuxProcess(LiveProcessParams * params,
ObjectFile *objFile)
: Sparc64LiveProcess(params, objFile)
{}
void Sparc64LinuxProcess::handleTrap(int trapNum, ThreadContext *tc)
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
{
switch (trapNum) {
// case 0x10: // Linux 32 bit syscall trap
case 0x6d: // Linux 64 bit syscall trap
tc->syscall(tc->readIntReg(1));
break;
default:
SparcLiveProcess::handleTrap(trapNum, tc);
}
Made sparc copies of some architecture specific files. arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Formatting & doxygen. arch/sparc/linux_process.cc: Added some more ioctl commands to ignore. Set unlink and rename to the new functions. Ignore setrlimit, times and rt_sigaction. Should eventually provide a function for times. arch/sparc/linux_process.cc: Fixes for Linux emulation: - stat struct alignment - osf_{get,set}sysinfo return values - additional syscall numbers - initialize $r0 to 0 arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Updated Copyright arch/sparc/linux_process.cc: Alphabetize includes. arch/sparc/linux_process.cc: Changed all syscalls to use syscall return object arch/sparc/linux_process.cc: Removed unecessary constructor call at each return. arch/sparc/linux_process.cc: Rename sim/universe.{cc,hh} to root.{cc,hh}. arch/sparc/linux_process.cc: shuffle files around for new directory structure arch/sparc/linux_process.cc: Remove RCS Id string arch/sparc/linux_process.cc: arch/sparc/linux_process.hh: Update copyright dates and author list arch/sparc/linux_process.hh: remove $Id$ string arch/sparc/linux_process.cc: Apply patch for syscall emulation provided by Antti Miettinen (apm@brigitte.dna.fi). arch/sparc/linux_process.cc: Added the endianness namespace. This may change. arch/sparc/linux_process.cc: Replaced the namespace declaration with including arch/alpha/isa_traits.hh arch/sparc/linux_process.cc: fixup for bsd hosts. Some headers are included by default which means that more variables need TGT_ prefixes and there isn't a stat call (everything is a stat64 call) so we have to work around that a bit arch/sparc/linux_process.cc: Add endian conversions to fstat arch/sparc/linux_process.cc: fix #if. I wonder why my compiler had no issues arch/sparc/linux_process.cc: add endian conversions for fstat functions arch/sparc/linux_process.cc: move architecture independent code into kern/linux/linux.(hh|cc) arch/sparc/linux_process.hh: Add getDesc function arch/sparc/linux_process.cc: Added using directive for AlphaISA namespace arch/sparc/linux_process.cc: Add pipeFunc. arch/alpha/linux_process.cc: Renamed arch files to remove alpha prefix, and changed alpha_memory.hh and cc to a more accurate tlb.hh and cc arch/sparc/linux_process.cc: bk cp ../alpha/linux_process.cc linux_process.cc arch/sparc/linux_process.hh: bk cp ../alpha/linux_process.hh linux_process.hh --HG-- extra : convert_revision : a8eca1c5f848383263a2326b0e3cde4bcd85f14b
2006-03-01 11:20:47 +01:00
}