- 02 2月, 2011 1 次提交
-
-
由 Peter Maydell 提交于
Suppress a gcc array bounds overrun warning when filling in the SPARC signal frame by adjusting our definition of the structure so that the fp and callers_pc membes are part of the ins[] array rather than separate fields; since qemu has no need to access the fields individually there is no need to follow the kernel's structure field naming exactly. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
- 24 1月, 2011 1 次提交
-
-
由 Blue Swirl 提交于
'extern' qualifier is useless for function declarations. Delete them. Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
- 15 1月, 2011 1 次提交
-
-
由 Peter Maydell 提交于
When invoking a signal handler for an ARM target, make sure the IT bits in the CPSR are cleared. (This would otherwise cause incorrect execution if the IT state was non-zero when an exception occured. This bug has been masked previously because we weren't getting the IT state bits at exception entry right anyway.) Also use the proper cpsr_read()/cpsr_write() interface to update the CPSR rather than manipulating CPUState fields directly. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Reviewed-by: NAurelien Jarno <aurelien@aurel32.net> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
- 12 1月, 2011 1 次提交
-
-
由 Peter Maydell 提交于
Add a configure check for the existence of linux/fiemap.h and the IOC_FS_FIEMAP ioctl. This fixes a compilation failure on Linux systems which don't have that header file. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
- 08 1月, 2011 1 次提交
-
-
由 Wolfgang Schildbach 提交于
There are some bits in the code which were used to store the commandline for the semihosting call. These bits are now write-only and can be removed. Signed-off-by: NWolfgang Schildbach <wschi@dolby.com> Reviewed-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@iki.fi>
-
- 07 1月, 2011 4 次提交
-
-
由 Peter Maydell 提交于
The code in the linux-user ARM nwfpe emulation was incorrectly checking only for quiet NaNs when it should have been checking for any kind of NaN. This is probably because the code in question was taken from the Linux kernel, whose copy of the softfloat library had been modified so that float*_is_nan() returned true for all NaNs, not just quiet ones. The qemu equivalent function is float*_is_any_nan(), so use that. NB that this code is really obsolete since nobody uses FPE for actual arithmetic now; this is just cleanup following the recent renaming of the NaN related functions. Acked-by: NAurelien Jarno <aurelien@aurel32.net> Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@iki.fi>
-
由 Peter Maydell 提交于
Implement the FS_IOC_FIEMAP ioctl using the new support for custom handling of ioctls; this is needed because the struct that is passed includes a variable-length array. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@iki.fi>
-
由 Peter Maydell 提交于
Some ioctls (for example FS_IOC_FIEMAP) use structures whose size is not constant. The generic argument conversion code in do_ioctl() cannot handle this, so add support for implementing a special-case handler for a particular ioctl which does the conversion itself. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@iki.fi>
-
由 Peter Maydell 提交于
Implement the missing syscalls sync_file_range and sync_file_range2. The latter in particular is used by newer versions of apt on Ubuntu for ARM. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@iki.fi>
-
- 02 1月, 2011 1 次提交
-
-
由 Peter Maydell 提交于
The softfloat functions float*_is_nan() were badly misnamed, because they return true only for quiet NaNs, not for all NaNs. Rename them to float*_is_quiet_nan() to more accurately reflect what they do. This change was produced by: perl -p -i -e 's/_is_nan/_is_quiet_nan/g' $(git grep -l is_nan) (with the results manually checked.) Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Reviewed-by: NNathan Froyd <froydnj@codesourcery.com> Acked-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
- 07 12月, 2010 1 次提交
-
-
由 Peter Maydell 提交于
Correct ldrexd and strexd code to always read and write the high word of the 64-bit value from addr+4. Also make ldrexd and strexd agree that for a 64 bit value the address in env->exclusive_addr is that of the low word. This fixes the issues reported in https://bugs.launchpad.net/qemu/+bug/670883Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Reviewed-by: NNathan Froyd <froydnj@codesourcery.com>
-
- 03 12月, 2010 11 次提交
-
-
由 Martin Mohring 提交于
Signed-off-by: NMartin Mohring <martin.mohring@5edatasoft.com> Signed-off-by: NJan-Simon Möller <jsmoeller@linuxfoundation.org> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Riku Voipio 提交于
Some compilers detect that new_stack isnt used after dd75d784 Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Peter Maydell 提交于
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Peter Maydell 提交于
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Peter Maydell 提交于
Restore the VFP registers from the ucontext on return from a signal handler in linux-user mode. This means that signal handlers cannot accidentally corrupt the interrupted code's VFP state, and allows them to deliberately modify the state via the ucontext structure. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Peter Maydell 提交于
For ARM linux-user mode signal handlers, fill in the ucontext with VFP register contents in the same way that the kernel does. We only do this for v2 format sigframe (2.6.12 and above); this is actually bug-for-bug compatible with the older kernels, which don't save and restore VFP registers either. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Peter Maydell 提交于
The padding in the target_ucontext_v2 is defined by the size of the target's sigset_t type, not the host's. (This bug only causes problems when we start using the uc_regspace[] array to expose VFP registers to userspace signal handlers.) Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Jamie Lentin 提交于
n setsockopt, the socket level options are translated to the hosts' architecture before the real syscall is called, e.g. TARGET_SO_TYPE -> SO_TYPE. This patch does the same with getsockopt. Tested on a x86 host emulating MIPS. Without it:- $ grep getsockopt host.strace 31311 getsockopt(3, SOL_SOCKET, 0x1007 /* SO_??? */, 0xbff17208, 0xbff17204) = -1 ENOPROTOOPT (Protocol not available) With:- $ grep getsockopt host.strace 25706 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 Whitespace cleanup: Riku Voipio Signed-off-by: NJamie Lentin <jm@lentin.co.uk> Signed-off-by: NRiku Voipio <riku.voipio@iki.fi>
-
由 Peter Maydell 提交于
Remove an unnecessary local variable from the __get_user() and __put_user() macros. This avoids confusing compilation failures if the name of the local variable ('size') happens to be the same as the variable the macro user is trying to read/write. Signed-off-by: NPeter Maydell <peter.maydell@linaro.org> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 Nathan Froyd 提交于
Running programs that create large numbers of threads, such as this snippet from libstdc++'s pthread7-rope.cc: const int max_thread_count = 4; const int max_loop_count = 10000; ... for (int j = 0; j < max_loop_count; j++) { ... for (int i = 0; i < max_thread_count; i++) pthread_create (&tid[i], NULL, thread_main, 0); for (int i = 0; i < max_thread_count; i++) pthread_join (tid[i], NULL); } in user-mode emulation will quickly run out of memory. This is caused by a failure to free memory in do_syscall prior to thread exit: /* TODO: Free CPU state. */ pthread_exit(NULL); The first step in fixing this is to make all TaskStates used by QEMU dynamically allocated. The TaskState used by the initial thread was not, as it was allocated on main's stack. So fix that, free the cpu_env, free the TaskState, and we're home free, right? Not exactly. When we create a thread, we do: ts = qemu_mallocz(sizeof(TaskState) + NEW_STACK_SIZE); ... new_stack = ts->stack; ... ret = pthread_attr_setstack(&attr, new_stack, NEW_STACK_SIZE); If we blindly free the TaskState, then, we yank the current (host) thread's stack out from underneath it while it still has things to do, like calling pthread_exit. That causes problems, as you might expect. The solution adopted here is to let the C library allocate the thread's stack (so the C library can properly clean it up at pthread_exit) and provide a hint that we want NEW_STACK_SIZE bytes of stack. With those two changes, we're done, right? Well, almost. You see, we're creating all these host threads and their parent threads never bother to check that their children are finished. There's no good place for the parent threads to do so. Therefore, we need to create the threads in a detached state so the parent thread doesn't have to call pthread_join on the child to release the child's resources; the child does so automatically. With those three major changes, we can comfortably run programs like the above without exhausting memory. We do need to delete 'stack' from the TaskState structure. Signed-off-by: NNathan Froyd <froydnj@codesourcery.com> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
由 amateur 提交于
mmap_reserve() should be called only when RESERVED_VA is enabled. Otherwise, unmaped virtual address space will never be reusable. This bug will exhaust virtual address space in extreme conditions. Signed-off-by: NRiku Voipio <riku.voipio@nokia.com>
-
- 23 11月, 2010 1 次提交
-
-
由 Richard Henderson 提交于
Rename the members of target_ucontext so that they don't conflict with possible host macros for ucontext members. This has already been done for the other targets. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar@axis.com>
-
- 06 10月, 2010 2 次提交
-
-
由 Stefan Weil 提交于
Replace m86k_sim_stat by m68k_sim_stat. Cc: Riku Voipio <riku.voipio@iki.fi> Signed-off-by: NStefan Weil <weil@mail.berlios.de>
-
由 Stefan Weil 提交于
An empty environment is sometimes useful in user mode. The new option provides it for linux-user and bsd-user (darwin-user still has no environment related options). The patch also adds the documentation for other environment related options. Signed-off-by: NStefan Weil <weil@mail.berlios.de>
-
- 03 10月, 2010 1 次提交
-
-
由 Stefan Weil 提交于
Since version 4.4.x, gcc supports additional format attributes. __attribute__ ((format (gnu_printf, 1, 2))) should be used instead of __attribute__ ((format (printf, 1, 2)) because QEMU always uses standard format strings (even with mingw32). The patch replaces format attribute printf / __printf__ by macro GCC_FMT_ATTR which uses gnu_printf if supported. It also removes an #ifdef __GNUC__ (not needed any longer). Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by: NStefan Weil <weil@mail.berlios.de> Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
- 18 9月, 2010 3 次提交
-
-
由 Blue Swirl 提交于
Because of the use of unsigned type, possible errors during load were ignored. Fix by using a signed type. This also avoids a warning with GCC flag -Wtype-limits. Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
由 Blue Swirl 提交于
-1ul is unsigned long, which does not necessarily match abi_ulong type. Fix by using abi_long instead. This also avoids a warning with GCC flag -Wtype-limits. Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
由 Blue Swirl 提交于
On many systems, socklen_t is defined as unsigned. This means that checks for negative values are not meaningful. Fix by explicitly casting to a signed integer. This also avoids some warnings with GCC flag -Wtype-limits. Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
-
- 09 9月, 2010 1 次提交
-
-
由 Edgar E. Iglesias 提交于
Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@petalogix.com>
-
- 09 8月, 2010 1 次提交
-
-
由 Edgar E. Iglesias 提交于
MicroBlaze needs TARGET_STAT64_HAS_BROKEN_ST_INO. Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@petalogix.com>
-
- 31 7月, 2010 1 次提交
-
-
由 Aurelien Jarno 提交于
Commit 68a1c816 broke qemu on hosts not using guest base. It uses reserved_va unconditionally in mmap.c. To avoid to many #ifdef #endif blocks, define RESERVED_VA as either reserved_va or 0ul, and use it instead of reserved_va, similarly to what has been done with guest_base/GUEST_BASE.
-
- 30 7月, 2010 1 次提交
-
-
由 Richard Henderson 提交于
Cc: malc <av1474@comtv.ru> Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: Nmalc <av1474@comtv.ru>
-
- 29 7月, 2010 7 次提交
-
-
由 Richard Henderson 提交于
This requires moving the PT_INTERP extraction and GUEST_BASE handling into load_elf_image. Key this off a non-null pointer argument to receive the interpreter name. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
-
由 Richard Henderson 提交于
Moving toward a single copy of the elf binary loading code. Fill in the details of the loaded image into a struct image_info. Adjust create_elf_tables to read from such structures instead of from a collection of passed arguments. Don't return error values from load_elf_interp; always exit(-1) with a message to stderr. Collect elf_interpreter handling in load_elf_binary to a common spot. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
-
由 Richard Henderson 提交于
At the bottom of the a.out support was the unimplemented load_aout_interp function. There were other portions of the support that didn't look right; when I went to look in the Linux kernel for clarification, I found that the support for such interpreters has been removed from binfmt_elf. There doesn't seem to be any reason to keep this broken support in qemu. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
-
由 Richard Henderson 提交于
There are no supported stack-grows-up targets. We were putting the guard page at the highest address, i.e. the bottom of the stack. Use the maximum of host and guest page size for the guard size. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
-
由 Richard Henderson 提交于
Validate more fields of the elf header. Extract those checks into two common functions to be used in both load_elf_interp and load_elf_binary. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
-
由 Richard Henderson 提交于
First, adjust load_symbols to accept a load_bias parameter. At the same time, read the entire section header table in one go, use pread instead f lseek+read for the symbol and string tables, and properly free allocated structures on error exit paths. Second, adjust load_elf_interp to compute load_bias. This requires finding out the built-in load addresses. Which allows us to honor a pre-linked interpreter image when possible, and eliminate the hard-coded INTERP_MAP_SIZE value. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
-
由 Richard Henderson 提交于
Remove ifdefs from code by defining empty inline functions when byte swapping isn't needed. Push loops over swapping arrays of structures into the swapping functions. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>
-