summaryrefslogtreecommitdiff
path: root/src/arch/x86/linux
AgeCommit message (Collapse)Author
2010-08-23X86: Create a directory for files that define register indexes.Gabe Black
This is to help tidy up arch/x86. These files should not be used external to the ISA. --HG-- rename : src/arch/x86/apicregs.hh => src/arch/x86/regs/apic.hh rename : src/arch/x86/floatregs.hh => src/arch/x86/regs/float.hh rename : src/arch/x86/intregs.hh => src/arch/x86/regs/int.hh rename : src/arch/x86/miscregs.hh => src/arch/x86/regs/misc.hh rename : src/arch/x86/segmentregs.hh => src/arch/x86/regs/segment.hh
2010-08-17sim: revamp unserialization procedureSteve Reinhardt
Replace direct call to unserialize() on each SimObject with a pair of calls for better control over initialization in both ckpt and non-ckpt cases. If restoring from a checkpoint, loadState(ckpt) is called on each SimObject. The default implementation simply calls unserialize() if there is a corresponding checkpoint section, so we get backward compatibility for existing objects. However, objects can override loadState() to get other behaviors, e.g., doing other programmed initializations after unserialize(), or complaining if no checkpoint section is found. (Note that the default warning for a missing checkpoint section is now gone.) If not restoring from a checkpoint, we call the new initState() method on each SimObject instead. This provides a hook for state initializations that are only required when *not* restoring from a checkpoint. Given this new framework, do some cleanup of LiveProcess subclasses and X86System, which were (in some cases) emulating initState() behavior in startup via a local flag or (in other cases) erroneously doing initializations in startup() that clobbered state loaded earlier by unserialize().
2010-05-23copyright: Change HP copyright on x86 code to be more friendlyNathan Binkert
2009-11-04X86: Hook up time syscall on X86Vince Weaver
This has been tested and verified that it works.
2009-10-30X86: Hookup truncate/ftruncate syscalls on X86Vince Weaver
This patch hooks up the truncate, ftruncate, truncate64 and ftruncate64 system calls on 32-bit and 64-bit X86. These have been tested on both architectures. ftruncate/ftruncate64 is needed for the f90 spec2k benchmarks.
2009-10-30Syscalls: Make system calls access arguments like a stack, not an array.Gabe Black
When accessing arguments for a syscall, the position of an argument depends on the policies of the ISA, how much space preceding arguments took up, and the "alignment" of the index for this particular argument into the number of possible storate locations. This change adjusts getSyscallArg to take its index parameter by reference instead of value and to adjust it to point to the possible location of the next argument on the stack, basically just after the current one. This way, the rules for the new argument can be applied locally without knowing about other arguments since those have already been taken into account implicitly. All system calls have also been changed to reflect the new interface. In a number of cases this made the implementation clearer since it encourages arguments to be collected in one place in order and then used as necessary later, as opposed to scattering them throughout the function or using them in place in long expressions. It also discourages using getSyscallArg over and over to retrieve the same value when a temporary would do the job.
2009-10-20hook up stat syscall on 64-bit x86_SEVince Weaver
2009-10-20hook up stat64 syscall on 32-bit X86_SEVince Weaver
2009-10-20Fix stat64 structure on 32-bit X86_SEVince Weaver
The st_size entry was in the wrong place (see linux-2.6.29/arch/x86/include/asm/stat.h ) Also, the packed attribute is needed when compiling on a 64-bit machine, otherwise gcc adds extra padding that break the layout of the structure.
2009-10-19Enable getuid and getgid related syscalls on X86_SEVince Weaver
I've tested these on x86 and they work as expected. In theory for 32-bit x86 we should have some sort of special handling for the legacy 16-bit uid/gid syscalls, but in practice modern toolchains don't use the 16-bit versions, and m5 sets the uid and gid values to be less than 16-bits anyway. This fix is needed for the perl spec2k benchmarks to run.
2009-10-16Ignore rt_sigaction() syscalls on x86 and x86_64Vince Weaver
This is currently how alpha handles this syscall. This is needed for the gcc spec2k benchmarks to run.
2009-10-10Hook up the munmap() syscall for 32-bit x86.Vince Weaver
This is straightforward, as munmapFunc() doesn't do anything. I've tested it with code running munmap() just in case.
2009-10-02X86: Make successive anonymous mmaps move down in 32 bit SE mode Linux.Gabe Black
2009-09-15Syscalls: Implement sysinfo() syscall.Vince Weaver
2009-09-15[mq]: x86syscalls.patchVince Weaver
2009-07-08Registers: Add a registers.hh file as an ISA switched header.Gabe Black
This file is for register indices, Num* constants, and register types. copyRegs and copyMiscRegs were moved to utility.hh and utility.cc. --HG-- rename : src/arch/alpha/regfile.hh => src/arch/alpha/registers.hh rename : src/arch/arm/regfile.hh => src/arch/arm/registers.hh rename : src/arch/mips/regfile.hh => src/arch/mips/registers.hh rename : src/arch/sparc/regfile.hh => src/arch/sparc/registers.hh rename : src/arch/x86/regfile.hh => src/arch/x86/registers.hh
2009-04-21Commit m5threads package.Daniel Sanchez
This patch adds limited multithreading support in syscall-emulation mode, by using the clone system call. The clone system call works for Alpha, SPARC and x86, and multithreaded applications run correctly in Alpha and SPARC.
2009-04-19SE mode: Make keeping track of the number of syscalls less hacky.Gabe Black
2009-02-27X86: Install the exit system call.Gabe Black
2009-02-27X86: Install the 32 bit write system call.Gabe Black
2009-02-27X86: Add a structure to allow mapping between the host and guest fstat formats.Gabe Black
2009-02-27X86: Add a 32 bit mmap2 system call.Gabe Black
2009-02-27X86: Install a 32 bit fstat64 system call.Gabe Black
2009-02-27X86: Implement the 32 bit set_thread_area system call.Gabe Black
2009-02-27X86: Install some 32 bit system calls.Gabe Black
2009-02-27Processes: Make getting and setting system call arguments part of a process ↵Gabe Black
object.
2009-02-27X86: Distinguish the width of values on the stack between 32 and 64 bit ↵Gabe Black
processes.
2009-02-27X86: Add a class to support 32 bit x86 linux process.Gabe Black
2009-02-16sycalls: implement mremap() and add DATA flag for getrlimit(). mremap has ↵Lisa Hsu
been tested on Alpha, compiles for the rest but not tested. I don't see why it wouldn't work though.
2008-11-15syscalls: fix latent brk/obreak bug.Steve Reinhardt
Bogus calls to ChunkGenerator with negative size were triggering a new assertion that was added there. Also did a little renaming and cleanup in the process.
2008-09-10style: Remove non-leading tabs everywhere they shouldn't be. Developers ↵Ali Saidi
should configure their editors to not insert tabs
2008-06-12X86: Make the e820 table manually or automatically configurable from python.Gabe Black
2008-06-11X86: Fix building on *BSD hostsAli Saidi
2008-01-21X86: Use the existing boot_osflags instead of duplicating it.Gabe Black
--HG-- extra : convert_revision : e04e438d7d261a61c52b946c23cd126ed648814a
2007-12-02X86: Start setting up the real mode data structure.Gabe Black
--HG-- extra : convert_revision : ba6d4939d4d58da5586655c83f1617f47dc7e359
2007-12-01X86: Move startup code to the system object to initialize a Linux system.Gabe Black
--HG-- extra : convert_revision : a4796c79f41aa8b8f38bf2f628bee8f1b3af64be
2007-12-01X86: Separate the effective seg base and the "hidden" seg base.Gabe Black
--HG-- extra : convert_revision : 5fcb8d94dbab7a7d6fe797277a5856903c885ad4
2007-10-16Make the process objects use the Params structs in their constructors, and ↵Gabe Black
use a limit to check if access are on the stack. --HG-- extra : convert_revision : af40a7acf424c4c4f62d0d76db1001a714ae0474
2007-09-19X86: Enable the rename system call.Gabe Black
--HG-- extra : convert_revision : bc4a3b5b5ce8e17f632e65ce89df91e2b50e1274
2007-09-19X86: Enable the unlink system call.Gabe Black
--HG-- extra : convert_revision : 4230a13fdb652a87271f8d2ac9ead96cd2af07a5
2007-08-28X86: Hook in an implementation for lseek.Gabe Black
--HG-- extra : convert_revision : d2424e73fa8ce56248c4edbda9db2714c4b0a92e
2007-08-04X86: Make the open flags correct.Gabe Black
--HG-- extra : convert_revision : 2dc81345176d1de247a567d1f748e2b2bd05f829
2007-08-04X86: Add the arch_prctl system call and fix up some microcoding.Gabe Black
The arch_prctl system call is used to set and get the FS and GS segment bases. The FS segment is use for TLS, so glibc needs to be able to set it up. --HG-- extra : convert_revision : 79501491a15967a7a862add846ff88a934fb1b37
2007-07-30X86: __pad0 should be a 4 byte pad, not a 4 long array of 4 byte pads.Gabe Black
--HG-- extra : convert_revision : e0d5ab617bc95d5d714fa9fcdf0a448874aef886
2007-07-30X86: Turn on the exit_group, exit, munmap, and write syscalls.Gabe Black
--HG-- extra : convert_revision : e358c18cd999a8e274108e06502c3324c2d12d3b
2007-07-30X86: Fix up the stat structure. This probably still isn't right.Gabe Black
--HG-- extra : convert_revision : 2e2a22cdf3abe648c9e1309b9070cfd10fc4a8b8
2007-07-30X86: Turn on some system calls, and make the kernel version match my ↵Gabe Black
development machine. --HG-- extra : convert_revision : 2f1969a45aa82708dc4cddef09c01306f76f0a81
2007-07-26Add functions for mmap and brk.Gabe Black
--HG-- extra : convert_revision : 3d0340a2aae87b3462d6562b34ac7e02c685c1ef
2007-07-24Add a tgt_iovec structure to support writev, change the name of X86Linux to ↵Gabe Black
X86Linux64, add some syscalls. --HG-- extra : convert_revision : 9c13e9c68f331fe6c4a9abd96f7aee0f064101fc
2007-07-22Add the "open" syscall.Gabe Black
--HG-- extra : convert_revision : d405ed5d3738639809dd2887955db9253138ccbb