adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Stefan Hajnoczi 45d6cdff48 hw/9pfs: replace iovec manipulation with QEMUIOVector
The v9fs_read() and v9fs_write() functions rely on iovec[] manipulation
code should be replaced with QEMUIOVector to avoid duplicating code.
In the future it may be possible to make the code even more concise by
using QEMUIOVector consistently across virtio and 9pfs.

The "v" format specifier for pdu_marshal() and pdu_unmarshal() is
dropped since it does not actually pack/unpack anything.  The specifier
was also not implemented to update the offset variable and could only be
used at the end of a format string, another sign that this shouldn't
really be a format specifier.  Instead, see the new
v9fs_init_qiov_from_pdu() function.

This change avoids a possible iovec[] buffer overflow when indirect
vrings are used since the number of vectors is now limited by the
underlying VirtQueueElement and cannot be out-of-bounds.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
2012-01-10 09:29:11 -06:00
QMP
audio fmodaudio: Remove unused variable 'bits16' (reported by cppcheck) 2011-11-18 21:55:29 +04:00
block vpc: Add missing error handling in alloc_block 2011-11-23 17:04:06 +01:00
bsd-user
darwin-user darwin-user/main.c: Drop unused cpu_single_env definition 2011-11-01 10:58:08 -05:00
default-configs xtensa_lx60: add FLASH support 2011-11-02 05:05:52 +04:00
docs Fixing some spelling in docs/libcacard.txt 2011-11-17 12:57:49 +00:00
fpu softfloat: Implement fused multiply-add 2011-10-19 16:14:06 +00:00
fsdev hw/9pfs: Use the correct file descriptor in Fsdriver Callback 2012-01-10 09:27:11 -06:00
gdb-xml
hw hw/9pfs: replace iovec manipulation with QEMUIOVector 2012-01-10 09:29:11 -06:00
libcacard libcacard: Fix wrong assertion (reported by cppcheck) 2011-10-25 15:44:03 +02:00
linux-headers KVM: Update kernel headers 2011-10-06 09:48:07 +02:00
linux-user linux-user/elfload.c: Don't memset(NULL..) if malloc() failed 2011-11-11 12:49:53 -06:00
net slirp: Clean up net_slirp_hostfwd_remove()'s use of get_str_sep() 2011-11-22 11:11:23 +00:00
pc-bios add sgabios blob and submodule 2011-11-07 10:57:36 -06:00
qapi qapi: Check for negative enum values 2011-11-17 15:15:03 -02:00
qga
roms add sgabios blob and submodule 2011-11-07 10:57:36 -06:00
scripts qapi: fix guardname generation 2011-11-30 09:28:32 -06:00
slirp main-loop: create main-loop.c 2011-10-21 18:14:30 +02:00
sysconfigs/target
target-alpha target-alpha: Add high-resolution access to wall clock and an alarm. 2011-10-08 08:49:09 -07:00
target-arm target-arm: Fix use of free() in cpu_arm_close() 2011-10-20 14:25:29 +00:00
target-cris
target-i386 x86/cpuid: Tighten parsing of tsc_freq=FREQ 2011-11-28 16:20:52 -06:00
target-lm32
target-m68k
target-microblaze
target-mips
target-ppc PPC: Fix for the gdb single step problem on an rfi instruction 2011-11-11 17:33:58 +01:00
target-s390x s390x: Add shutdown for TCG s390-virtio machine 2011-11-14 17:47:26 +01:00
target-sh4
target-sparc Improve "ta 0" shutdown 2011-11-19 11:22:57 +00:00
target-unicore32
target-xtensa target-xtensa: fix MMUv3 initialization 2011-11-26 09:44:34 +00:00
tcg tci: Make flush_icache_range() inline 2011-11-28 11:36:34 -06:00
tests target-xtensa: rename dc232b board to sim 2011-10-16 10:40:23 +00:00
trace trace: Add wildcard trace event support 2011-11-01 14:12:15 +00:00
ui ui: Plug memory leaks on parse_keyboard_layout() error path 2011-11-11 12:49:51 -06:00
.gitignore Add qapi related generated files to .gitignore 2011-11-01 11:50:12 -05:00
.gitmodules add sgabios blob and submodule 2011-11-07 10:57:36 -06:00
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS tci: Add entry to MAINTAINERS 2011-11-26 09:55:30 +00:00
Makefile Makefile: use full path for qapi-generated directory 2011-11-30 09:28:32 -06:00
Makefile.dis
Makefile.hw
Makefile.objs hw/9pfs: Improve portability to older systems 2012-01-10 09:26:28 -06:00
Makefile.target Merge branch 'tci' of git://qemu.weilnetz.de/qemu 2011-11-02 20:52:13 +00:00
Makefile.user
README
TODO
VERSION Update version for 1.0 release 2011-12-01 14:04:21 -06:00
a.out.h
acl.c acl: Fix use after free in qemu_acl_reset() 2011-11-01 06:23:48 +00:00
acl.h
aes.c
aes.h
aio.c
alpha-dis.c
alpha.ld
arch_init.c migration: make *save_live return errors 2011-10-20 13:23:52 +02:00
arch_init.h
arm-dis.c
arm-semi.c
arm.ld
async.c main-loop: create main-loop.h 2011-10-21 18:14:30 +02:00
balloon.c qapi: Convert query-balloon 2011-10-27 11:48:47 -02:00
balloon.h qapi: Convert query-balloon 2011-10-27 11:48:47 -02:00
bitmap.c
bitmap.h
bitops.c
bitops.h
block-migration.c Fix some spelling bugs in documentation and comments 2011-11-17 12:57:36 +00:00
block-migration.h
block.c block: allow migration to work with image files (v3) 2011-11-21 14:58:48 -06:00
block.h block: allow migration to work with image files (v3) 2011-11-21 14:58:48 -06:00
block_int.h block: allow migration to work with image files (v3) 2011-11-21 14:58:48 -06:00
blockdev.c block: add eject request callback 2011-11-11 14:02:57 +01:00
blockdev.h
bswap.h
bt-host.c
bt-host.h
bt-vhci.c
buffered_file.c migration: use qemu_file_get_error() return value when possible 2011-10-20 13:23:52 +02:00
buffered_file.h
cache-utils.c
cache-utils.h
check-qdict.c
check-qfloat.c
check-qint.c
check-qjson.c
check-qlist.c
check-qstring.c
cmd.c cmd: Fix potential memory leak 2011-11-07 08:01:15 +00:00
cmd.h
compatfd.c compatfd.c: Don't pass NULL pointer to SYS_signalfd 2011-10-21 18:01:35 +02:00
compatfd.h
compiler.h
config.h
configure configure: avoid screening of --{en, dis}able-usb-redir options 2011-11-28 16:20:53 -06:00
console.c console: Fix rendering of VGA underline 2011-11-07 10:57:37 -06:00
console.h qapi: Convert query-vnc 2011-10-27 11:48:47 -02:00
coroutine-gthread.c
coroutine-ucontext.c
coroutine-win32.c
cpu-all.h Make cpu_single_env thread-local 2011-11-01 10:58:08 -05:00
cpu-common.h exec.c: Fix subpage memory access to RAM MemoryRegion 2012-01-10 09:22:55 -06:00
cpu-defs.h
cpu-exec.c PPC: Fix sync instructions problem in SMP 2011-10-06 09:48:03 +02:00
cpus.c reenable vm_clock when resuming all vcpus 2011-11-07 10:57:37 -06:00
cpus.h Simplify cpu_exec_all to tcg_exec_all 2011-11-01 10:58:08 -05:00
cris-dis.c
cursor.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cutils.c cutils: Make strtosz & friends leave follow set to callers 2011-11-28 16:20:52 -06:00
def-helper.h
device_tree.c device_tree: Fix potential memory leak 2011-10-26 13:36:34 +01:00
device_tree.h device tree: add add_subnode command 2011-10-06 09:48:00 +02:00
dis-asm.h tcg: Add tci disassembler 2011-10-31 21:52:17 +01:00
disas.c tcg: Add tci disassembler 2011-10-31 21:52:17 +01:00
disas.h
dma-helpers.c Use dma_addr_t type for scatter/gather code 2011-11-01 16:52:05 -05:00
dma.h Use dma_addr_t type for scatter/gather code 2011-11-01 16:52:05 -05:00
dyngen-exec.h tcg: Add bytecode generator for tcg interpreter 2011-10-31 21:52:16 +01:00
elf.h
envlist.c
envlist.h
error.c Drop qemu-objects.h from modules that don't require it 2011-10-27 11:48:47 -02:00
error.h
error_int.h
event_notifier.c event_notifier: move to top-level directory 2011-11-01 16:52:08 -05:00
event_notifier.h event_notifier: move to top-level directory 2011-11-01 16:52:08 -05:00
exec-all.h tcg: Add bytecode generator for tcg interpreter 2011-10-31 21:52:16 +01:00
exec-memory.h
exec.c exec.c: Fix subpage memory access to RAM MemoryRegion 2012-01-10 09:22:55 -06:00
gdbstub.c gdbstub: Fix memory leak 2011-11-19 11:22:24 +00:00
gdbstub.h
gen-icount.h
hmp-commands.hx Merge remote-tracking branch 'qmp/queue/qmp' into staging 2011-10-31 11:02:29 -05:00
hmp.c qapi: Convert query-pci 2011-10-27 11:48:47 -02:00
hmp.h qapi: Convert query-pci 2011-10-27 11:48:47 -02:00
host-utils.c
host-utils.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c ia64-dis.c: Undefine ABS to avoid clash with glib 2011-11-01 11:50:12 -05:00
ia64.ld
input.c qapi: Convert query-mice 2011-10-27 11:48:46 -02:00
int128.h Add support for 128-bit arithmetic 2011-10-16 13:13:05 +02:00
iohandler.c Revert to a hand-made select loop 2011-10-21 18:14:30 +02:00
ioport-user.c
ioport.c Introduce PortioList 2011-10-11 15:57:07 +02:00
ioport.h Introduce PortioList 2011-10-11 15:57:07 +02:00
iorange.h
iov.c
iov.h
json-lexer.c
json-lexer.h
json-parser.c
json-parser.h
json-streamer.c
json-streamer.h
kvm-all.c kvm_init didn't set return value after create vm failed 2011-11-01 16:52:05 -05:00
kvm-stub.c
kvm.h
libfdt_env.h
linux-aio.c linux-aio: Allow reads beyond the end of growable images 2011-10-14 10:29:13 +02:00
m68k-dis.c
m68k-semi.c
m68k.ld
main-loop.c main-loop: Add missing include file 2011-10-25 15:38:08 -05:00
main-loop.h main-loop: create main-loop.c 2011-10-21 18:14:30 +02:00
memory.c memory: fix 'info mtree' segfaults 2011-11-13 12:00:55 +02:00
memory.h memory: use 128-bit integers for sizes and intermediates 2011-10-16 13:19:17 +02:00
microblaze-dis.c
migration-exec.c migration: move migrate_new to do_migrate 2011-10-20 13:23:53 +02:00
migration-fd.c migration: flush migration data to disk. 2011-11-01 11:50:21 -05:00
migration-tcp.c migration: make migration-{tcp,unix} consistent 2011-10-20 13:23:55 +02:00
migration-unix.c migration: make migration-{tcp,unix} consistent 2011-10-20 13:23:55 +02:00
migration.c block: allow migration to work with image files (v3) 2011-11-21 14:58:48 -06:00
migration.h migrate: add migration blockers 2011-11-21 14:57:22 -06:00
mips-dis.c
mips.ld
module.c
module.h
monitor.c monitor: Fix file_completion() to check for stat() failure 2011-11-17 12:57:49 +00:00
monitor.h Monitor: Introduce monitor_get_cpu_index() 2011-10-27 11:48:46 -02:00
nbd.c nbd: treat EPIPE from NBD_DO_IT as success 2011-11-11 14:02:58 +01:00
nbd.h
net.c Move filedescriptor parsing code from net.c into qemu_parse_fd() 2011-11-01 16:52:08 -05:00
net.h
notify.c
notify.h
os-posix.c os-posix: Plug fd leak in qemu_create_pidfile() 2011-11-11 12:49:52 -06:00
os-win32.c Replace WriteFileEx with WriteFile in qemu_create_pidfile 2011-11-09 12:06:20 -06:00
osdep.c
osdep.h
oslib-posix.c 9pfs: improve portability to older systems 2011-11-28 11:36:27 -06:00
oslib-win32.c add socket_set_block 2011-10-21 17:34:12 +02:00
path.c
pci-ids.txt
pflib.c
pflib.h
poison.h
posix-aio-compat.c posix-aio-compat: Plug memory leak on paio_init() error path 2011-11-11 12:49:52 -06:00
ppc-dis.c
ppc.ld
ppc64.ld ppc64: Fix linker script 2011-10-06 09:48:09 +02:00
qapi-schema-guest.json
qapi-schema-test.json
qapi-schema.json qapi: Convert query-pci 2011-10-27 11:48:47 -02:00
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu-aio.h
qemu-barrier.h qemu-barrier: Fix build failure on PowerPC Mac OS X 2011-11-01 11:50:11 -05:00
qemu-char.c qemu-char: rename qemu_chr_event to qemu_chr_be_event and make it public 2011-11-28 16:20:51 -06:00
qemu-char.h qemu-char: rename qemu_chr_event to qemu_chr_be_event and make it public 2011-11-28 16:20:51 -06:00
qemu-common.h Move filedescriptor parsing code from net.c into qemu_parse_fd() 2011-11-01 16:52:08 -05:00
qemu-config.c hw/9pfs: Read-only support for 9p export 2011-10-31 12:34:17 +05:30
qemu-config.h
qemu-coroutine-int.h
qemu-coroutine-lock.c main-loop: create main-loop.h 2011-10-21 18:14:30 +02:00
qemu-coroutine.c
qemu-coroutine.h
qemu-doc.texi Merge remote-tracking branch 'kwolf/block-stable' into staging 2011-11-18 13:30:08 -06:00
qemu-error.c
qemu-error.h
qemu-ga.c
qemu-img-cmds.hx
qemu-img.c qemu-img: Tighten parsing of size arguments 2011-11-28 16:20:52 -06:00
qemu-img.texi
qemu-io.c qemu-io: Fix multiwrite_f error handling 2011-11-04 14:23:44 +01:00
qemu-lock.h
qemu-log.h
qemu-nbd.c qemu-nbd: open the block device after starting the client thread 2011-11-11 14:02:58 +01:00
qemu-nbd.texi
qemu-objects.h
qemu-option.c qemu: Add opt_set_bool functionality 2011-10-31 12:34:16 +05:30
qemu-option.h qemu: Add opt_set_bool functionality 2011-10-31 12:34:16 +05:30
qemu-options.h
qemu-options.hx Merge remote-tracking branch 'kwolf/for-anthony' into staging 2011-10-31 11:09:00 -05:00
qemu-os-posix.h 9pfs: improve portability to older systems 2011-11-28 11:36:27 -06:00
qemu-os-win32.h main-loop: create main-loop.c 2011-10-21 18:14:30 +02:00
qemu-progress.c
qemu-queue.h qemu-queue: Introduce QLIST_INSERT_HEAD_RCU and dummy RCU wrappers. 2011-10-31 12:34:18 +05:30
qemu-sockets.c qemu-sockets: Plug fd leak on unix_connect_opts() error path 2011-11-11 12:49:52 -06:00
qemu-tech.texi qemu-tech.texi: Update default code cache size 2011-11-10 09:41:40 +00:00
qemu-thread-posix.c
qemu-thread-posix.h
qemu-thread-win32.c
qemu-thread-win32.h
qemu-thread.h qemu-queue: Introduce QLIST_INSERT_HEAD_RCU and dummy RCU wrappers. 2011-10-31 12:34:18 +05:30
qemu-timer-common.c
qemu-timer.c win32: remove broken timers 2011-11-09 12:06:20 -06:00
qemu-timer.h main-loop: create main-loop.h 2011-10-21 18:14:30 +02:00
qemu-tls.h qemu-tls.h: Add abstraction layer for TLS variables 2011-11-01 10:58:08 -05:00
qemu-tool.c qed: add migration blocker (v2) 2011-11-21 14:58:48 -06:00
qemu-x509.h
qemu-xattr.h configure: fix detection for xattr.h on modern distributions 2011-11-09 12:06:20 -06:00
qemu.sasl
qemu_socket.h add socket_set_block 2011-10-21 17:34:12 +02:00
qerror.c hw/9pfs: use migration blockers to prevent live migration when virtfs export path is mounted 2012-01-10 09:26:39 -06:00
qerror.h hw/9pfs: use migration blockers to prevent live migration when virtfs export path is mounted 2012-01-10 09:26:39 -06:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h
qlist.c
qlist.h
qmp-commands.hx Merge remote-tracking branch 'qmp/queue/qmp' into staging 2011-10-31 11:02:29 -05:00
qmp.c qapi: Convert query-spice 2011-10-27 11:48:47 -02:00
qobject.h
qstring.c
qstring.h
range.h
readline.c readline: Fix buffer overrun on re-add to history 2011-11-07 08:03:49 +00:00
readline.h
rules.mak
s390-dis.c
s390.ld
savevm.c ivshmem: use migration blockers to prevent live migration in peer mode (v2) 2011-11-21 14:58:35 -06:00
sh4-dis.c
softmmu-semi.h
softmmu_defs.h
softmmu_exec.h
softmmu_header.h
softmmu_template.h
sparc-dis.c
sparc.ld
sparc64.ld
spice-qemu-char.c spice-qemu-char: Generate chardev open/close events 2011-11-28 16:20:51 -06:00
sysemu.h main-loop: create main-loop.h 2011-10-21 18:14:30 +02:00
targphys.h
tcg-runtime.c
tci-dis.c tcg: Add tci disassembler 2011-10-31 21:52:17 +01:00
tci.c tcg: Standardize on TCGReg as the enum for hard registers 2011-11-14 17:47:26 +01:00
test-coroutine.c
test-qmp-commands.c
test-visitor.c
thunk.c
thunk.h
trace-events Merge remote-tracking branch 'kwolf/for-anthony' into staging 2011-10-31 11:09:00 -05:00
translate-all.c
uboot_image.h
usb-bsd.c
usb-linux.c usb-host: add usb_host_do_reset function. 2011-11-23 17:17:17 +01:00
usb-redir.c usb-redir: Don't try to write to the chardev after a close event 2011-11-28 16:20:51 -06:00
usb-stub.c
user-exec.c
version.rc
vgafont.h
vl.c vl: Tighten parsing of -m argument 2011-11-28 16:20:52 -06:00
x86_64.ld
xen-all.c
xen-mapcache.c
xen-mapcache.h
xen-stub.c
xtensa-semi.c

README

Read the documentation in qemu-doc.html.

Fabrice Bellard.