adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Anthony Liguori 67c5322d70 serial: fix retry logic
I'm not sure if the retry logic has ever worked when not using FIFO mode.  I
found this while writing a test case although code inspection confirms it is
definitely broken.

The TSR retry logic will never actually happen because it is guarded by an
'if (s->tsr_rety > 0)' but this is the only place that can ever make the
variable greater than zero.  That effectively makes the retry logic an 'if (0)'.

I believe this is a typo and the intention was >= 0.  Once this is fixed though,
I see double transmits with my test case.  This is because in the non FIFO
case, serial_xmit may get invoked while LSR.THRE is still high because the
character was processed but the retransmit timer was still active.

We can handle this by simply checking for LSR.THRE and returning early.  It's
possible that the FIFO paths also need some attention.

Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-04-02 09:43:16 -05:00
QMP qmp: document strict parsing 2012-03-27 09:15:52 -03:00
audio audio: Add some fall through comments 2012-02-25 18:16:11 +04:00
block qcow2: Reduce number of I/O requests 2012-03-12 15:14:07 +01:00
bsd-user Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
darwin-user Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
default-configs get rid of CONFIG_VIRTIO_SCSI 2012-03-19 16:35:14 +01:00
docs qapi: untangle next_list 2012-03-27 09:14:19 -03:00
fpu softfloat: fix for C99 2012-03-17 13:01:18 +00:00
fsdev
gdb-xml
hw serial: fix retry logic 2012-04-02 09:43:16 -05:00
include/qemu qom: Introduce CPU class 2012-03-14 22:20:27 +01:00
libcacard libcacard/vcard_emul_nss: add warning for old coolkey 2012-03-26 18:39:00 +02:00
linux-headers
linux-user Bad zero comparison for sas_ss_flags on powerpc 2012-03-15 13:12:10 +01:00
net net: remove extra spaces in help messages 2012-02-10 10:44:52 +00:00
pc-bios Merge remote-tracking branch 'qemu-kvm/memory/urgent' into staging 2012-03-19 08:51:50 -05:00
qapi qapi: add strict mode to input visitor 2012-03-27 09:15:13 -03:00
qga qemu-ga: fix bsd build, and re-org linux-specific implementations 2012-03-25 14:34:20 -05:00
qom qom: Introduce CPU class 2012-03-14 22:20:27 +01:00
roms Merge remote-tracking branch 'qemu-kvm/memory/urgent' into staging 2012-03-19 08:51:50 -05:00
scripts Fix conversion from lower to upper case with Turkish locale 2012-03-31 12:03:43 +00:00
slirp slirp: Fix compiler warning for w64 2012-03-13 16:15:19 +01:00
sysconfigs/target add Opteron_G4 CPU model (v2) 2012-03-12 14:05:25 -05:00
target-alpha target-alpha: Use noreturn marker in helper.h. 2012-03-24 17:08:03 +00:00
target-arm ARM: Permit any ARMv6K CPU to read the MVFR0 and MVFR1 VFP registers. 2012-03-30 10:10:49 +00:00
target-cris Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
target-i386 Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
target-lm32 target-lm32: init tcg only if available 2012-03-31 19:56:03 +02:00
target-m68k Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
target-microblaze target-lm32/microblaze: Drop second CPU{LM32, MB}State typedef 2012-03-14 19:48:37 -05:00
target-mips target-mips: Add compiler attribute to some functions which don't return 2012-03-24 13:02:43 +00:00
target-ppc PPC: KVM: Synchronize regs on CPU dump 2012-03-15 13:12:12 +01:00
target-s390x Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
target-sh4 Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
target-sparc sparc: pass page aligned addresses to tlb_set_page 2012-03-27 19:46:42 +00:00
target-unicore32 target-unicore32: Move CPU-dependent init into initfn 2012-03-30 11:09:31 +02:00
target-xtensa Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
tcg qemu tcg: Remove one entry of INDEX_op_ld_i64 from ppc_op_defs 2012-03-29 11:10:08 +04:00
tests tests: fix out-of-tree building for lm32 target 2012-03-31 19:56:03 +02:00
trace trace: make trace_thread_create() use its function arg 2012-03-12 10:12:34 +00:00
ui ui/spice-display: use uintptr_t when casting qxl physical addresses 2012-03-22 14:29:13 +01:00
.gitignore .gitignore: add qemu-bridge-helper and option rom build products 2012-03-19 10:52:52 +00:00
.gitmodules
.mailmap
CODING_STYLE CODING_STYLE: Clarify style for enum and function type names 2012-02-10 10:44:51 +00:00
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS MAINTAINERS: Add entry for UniCore32 2012-03-30 11:09:30 +02:00
Makefile buildfix: check for old pod2man versions 2012-03-31 12:04:08 +00:00
Makefile.dis
Makefile.hw make: Remove duplicate use of GLIB_CFLAGS 2012-02-09 20:44:38 +04:00
Makefile.objs target-lm32: add simple disassembler 2012-04-01 20:30:23 +02:00
Makefile.target Merge branch 'qom-cpu-unicore32.v3' of git://github.com/afaerber/qemu-cpu 2012-03-31 12:09:06 +00:00
Makefile.user qom: Add QOM support to user emulators 2012-03-13 13:23:18 -05:00
README
TODO
VERSION
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c
alpha-dis.c
alpha.ld
arch_init.c Purge migration of (almost) everything to do with monitors 2012-03-15 10:39:52 -03:00
arch_init.h
arm-dis.c
arm-semi.c arm-semi: Don't use CPUState 2012-03-14 22:20:25 +01:00
arm.ld
async.c
balloon.c
balloon.h
bitmap.c
bitmap.h
bitops.c
bitops.h
block-migration.c Purge migration of (almost) everything to do with monitors 2012-03-15 10:39:52 -03:00
block-migration.h
block.c block: handle -EBUSY in bdrv_commit_all() 2012-03-12 15:14:06 +01:00
block.h block: handle -EBUSY in bdrv_commit_all() 2012-03-12 15:14:06 +01:00
block_int.h qapi: Introduce blockdev-group-snapshot-sync command 2012-02-29 15:48:33 +01:00
blockdev.c qmp: convert blockdev-snapshot-sync to a wrapper around transactions 2012-03-12 15:14:07 +01:00
blockdev.h
bswap.h
bt-host.c
bt-host.h
bt-vhci.c
buffered_file.c
buffered_file.h
cache-utils.c
cache-utils.h cache-utils: Add missing include file for uintptr_t 2012-03-11 11:25:19 +00:00
cmd.c
cmd.h
compatfd.c
compatfd.h
compiler.h rewrite QEMU_BUILD_BUG_ON 2012-02-09 16:17:51 +01:00
config.h
configure target-lm32: add simple disassembler 2012-04-01 20:30:23 +02:00
console.c optimize screendump for the common non-switch case 2012-02-24 13:36:05 -06:00
console.h console: add some trace events 2012-03-12 10:30:23 +00:00
coroutine-gthread.c
coroutine-sigaltstack.c coroutine: adding sigaltstack method (.c source) 2012-03-12 15:14:07 +01:00
coroutine-ucontext.c coroutine: switch to QSLIST 2012-02-17 08:33:33 -06:00
coroutine-win32.c
cpu-all.h softmmu templates: optionally pass CPUState to memory access functions 2012-03-18 12:21:52 +00:00
cpu-common.h w64: Fix size of ram_addr_t 2012-03-03 18:10:16 +00:00
cpu-defs.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
cpu-exec.c qtest: add test framework 2012-03-30 08:14:11 -05:00
cpus.c qtest: add clock management 2012-03-30 08:14:11 -05:00
cpus.h qtest: add clock management 2012-03-30 08:14:11 -05:00
cris-dis.c
cursor.c Fix sign of sscanf format specifiers 2012-03-07 13:03:51 +00:00
cursor_hidden.xpm
cursor_left_ptr.xpm
cutils.c cutils: extract buffer_is_zero() from qemu-img.c 2012-02-09 16:17:50 +01:00
def-helper.h Add support for target helper functions which don't return 2012-03-24 13:01:46 +00:00
device_tree.c
device_tree.h
dis-asm.h target-lm32: add simple disassembler 2012-04-01 20:30:23 +02:00
disas.c target-lm32: add simple disassembler 2012-04-01 20:30:23 +02:00
disas.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
dma-helpers.c dma-helpers: add accounting wrappers 2012-02-22 13:29:07 +01:00
dma.h dma-helpers: add accounting wrappers 2012-02-22 13:29:07 +01:00
dyngen-exec.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
elf.h tcg-sparc: Add debug_frame support. 2012-03-24 19:57:58 +00:00
envlist.c
envlist.h
error.c Error: Introduce error_copy() 2012-03-15 10:39:52 -03:00
error.h Error: Introduce error_copy() 2012-03-15 10:39:52 -03:00
error_int.h
event_notifier.c
event_notifier.h
exec-all.h softmmu templates: optionally pass CPUState to memory access functions 2012-03-18 12:21:52 +00:00
exec-memory.h
exec-obsolete.h memory: get rid of cpu_register_io_memory() 2012-03-08 19:16:39 +02:00
exec.c tcg: Use the GDB JIT debugging interface. 2012-03-24 13:07:48 +00:00
gdbstub.c gdbserver: Don't send a GDB syscall until the system CPU is stopped 2012-03-24 14:12:27 +00:00
gdbstub.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
gen-icount.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
hmp-commands.hx qapi: Convert migrate 2012-03-15 10:39:52 -03:00
hmp.c qapi: Convert migrate 2012-03-15 10:39:52 -03:00
hmp.h qapi: Convert migrate 2012-03-15 10:39:52 -03:00
host-utils.c
host-utils.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c input: send kbd+mouse events only to running guests. 2012-02-17 11:02:55 -06:00
int128.h
iohandler.c
ioport-user.c
ioport.c ioport: add destructor method to IORange 2012-03-05 17:36:19 +02:00
ioport.h ioport: add destructor method to IORange 2012-03-05 17:36:19 +02:00
iorange.h ioport: add destructor method to IORange 2012-03-05 17:36:19 +02:00
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: Comparison with ioctl number macros needs to be unsigned 2012-03-15 13:12:12 +01:00
kvm-stub.c Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
kvm.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
libfdt_env.h
linux-aio.c
lm32-dis.c target-lm32: add simple disassembler 2012-04-01 20:30:23 +02:00
m68k-dis.c
m68k-semi.c m68k-semi: Don't use CPUState 2012-03-14 22:20:26 +01:00
m68k.ld
main-loop.c
main-loop.h
memory.c memory: get rid of cpu_register_io_memory() 2012-03-08 19:16:39 +02:00
memory.h memory: fix I/O port aliases 2012-03-05 17:40:12 +02:00
microblaze-dis.c
migration-exec.c
migration-fd.c qapi: Convert migrate 2012-03-15 10:39:52 -03:00
migration-tcp.c
migration-unix.c
migration.c qapi: Convert migrate 2012-03-15 10:39:52 -03:00
migration.h qapi: Convert migrate 2012-03-15 10:39:52 -03:00
mips-dis.c
mips.ld
module.c Remove type field in ModuleEntry as it's not used 2012-03-19 10:52:52 +00:00
module.h qom: Unify type registration 2012-02-15 09:39:21 -06:00
monitor.c qmp: add and use q type specifier 2012-03-27 09:15:28 -03:00
monitor.h suspend: add qmp events 2012-02-24 13:36:04 -06:00
nbd.c
nbd.h
net.c w32: Fix build with new net bridge code 2012-02-04 11:49:34 +00:00
net.h
notify.c notifier: switch to QLIST 2012-02-17 08:33:32 -06:00
notify.h notifier: switch to QLIST 2012-02-17 08:33:32 -06:00
os-posix.c
os-win32.c
osdep.c
osdep.h qtest: add C version of test infrastructure 2012-03-30 08:14:11 -05:00
oslib-posix.c
oslib-win32.c
path.c
pci-ids.txt
pflib.c
pflib.h
poison.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
posix-aio-compat.c
ppc-dis.c
ppc.ld
ppc64.ld
qapi-schema-guest.json qemu-ga: add guest-sync-delimited 2012-03-12 15:09:23 -05:00
qapi-schema-test.json qapi: add struct-errors test case to test-qmp-output-visitor 2012-03-27 09:11:00 -03:00
qapi-schema.json Merge remote-tracking branch 'sstabellini/saverestore-8' into staging 2012-03-19 13:39:42 -05:00
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu-aio.h
qemu-barrier.h
qemu-bridge-helper.c
qemu-char.c qemu-char: qemu_chr_open_fd() can't fail, don't check 2012-02-24 09:06:57 -06:00
qemu-char.h qdev: nuke qdev_init_chardev() 2012-02-03 10:41:08 -06:00
qemu-common.h qtest: add C version of test infrastructure 2012-03-30 08:14:11 -05:00
qemu-config.c arm: add device tree support 2012-03-02 11:56:38 +00:00
qemu-config.h
qemu-coroutine-int.h coroutine: switch to QSLIST 2012-02-17 08:33:33 -06:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-coroutine.h
qemu-doc.texi iSCSI: add configuration variables for iSCSI 2012-02-09 16:17:50 +01:00
qemu-error.c
qemu-error.h
qemu-file.h Spelling fixes in comments (it's -> its) 2012-03-08 15:22:11 +00:00
qemu-ga.c qemu-ga: add guest-sync-delimited 2012-03-12 15:09:23 -05:00
qemu-img-cmds.hx
qemu-img.c qcow2: Add error messages in qcow2_truncate 2012-03-12 15:14:06 +01:00
qemu-img.texi
qemu-io.c qemu-io: fix segment fault when the image format is qed 2012-02-29 16:05:00 +01:00
qemu-lock.h
qemu-log.h
qemu-nbd.c open /dev/nbd in nbd_client_thread 2012-02-17 12:41:59 +01:00
qemu-nbd.texi
qemu-objects.h
qemu-option.c qemu-option: Add support for merged QemuOptsLists 2012-02-17 09:08:22 +01:00
qemu-option.h qemu-option: Add support for merged QemuOptsLists 2012-02-17 09:08:22 +01:00
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx Merge branch 'arm-devs.for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm 2012-03-31 12:10:07 +00:00
qemu-os-posix.h
qemu-os-win32.h
qemu-progress.c
qemu-queue.h qemu-queue: drop QCIRCLEQ 2012-02-17 08:33:33 -06:00
qemu-sockets.c sockets: Clean up inet_listen_opts()'s convoluted bind() loop 2012-02-24 09:06:58 -06:00
qemu-tech.texi
qemu-thread-posix.c
qemu-thread-posix.h
qemu-thread-win32.c w32: Initialise critical section before starting thread (fix #922131) 2012-02-07 18:11:41 +01:00
qemu-thread-win32.h
qemu-thread.h
qemu-timer-common.c
qemu-timer.c qtest: add clock management 2012-03-30 08:14:11 -05:00
qemu-timer.h qtest: add clock management 2012-03-30 08:14:11 -05:00
qemu-tls.h
qemu-tool.c qemu-tool: revert cpu_get_clock() abort(3) 2012-02-29 15:48:44 +01:00
qemu-user.c qom: Add QOM support to user emulators 2012-03-13 13:23:18 -05:00
qemu-x509.h
qemu-xattr.h
qemu.sasl
qemu_socket.h
qerror.c QError: Introduce new errors for the migration command 2012-03-15 10:39:51 -03:00
qerror.h QError: Introduce new errors for the migration command 2012-03-15 10:39:51 -03:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h qjson.h: include compiler.h for GCC_FMT_ATTR 2012-03-09 17:34:17 -03:00
qlist.c
qlist.h
qmp-commands.hx qmp: add and use q type specifier 2012-03-27 09:15:28 -03:00
qmp.c suspend: add system_wakeup monitor command 2012-02-24 13:36:03 -06:00
qobject.h
qstring.c
qstring.h
qtest.c qtest: use qemu_gettimeofday() 2012-04-02 09:43:16 -05:00
qtest.h qtest: add test framework 2012-03-30 08:14:11 -05:00
range.h
readline.c
readline.h
rules.mak test makefile overhaul 2012-03-30 08:14:11 -05:00
s390-dis.c
s390.ld
savevm.c Merge remote-tracking branch 'sstabellini/saverestore-8' into staging 2012-03-19 13:39:42 -05:00
sh4-dis.c
softmmu-semi.h Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
softmmu_defs.h softmmu templates: optionally pass CPUState to memory access functions 2012-03-18 12:21:52 +00:00
softmmu_exec.h
softmmu_header.h softmmu templates: optionally pass CPUState to memory access functions 2012-03-18 12:21:52 +00:00
softmmu_template.h softmmu templates: optionally pass CPUState to memory access functions 2012-03-18 12:21:52 +00:00
sparc-dis.c
sparc.ld
sparc64.ld
spice-qemu-char.c Revert "qemu-char: Print strerror message on failure" and deps 2012-02-24 09:06:56 -06:00
sysemu.h qapi: Convert migrate 2012-03-15 10:39:52 -03:00
targphys.h
tcg-runtime.c
tci-dis.c
tci.c w64: Fix data type of next_tb and tcg_qemu_tb_exec 2012-03-17 13:02:03 +00:00
thunk.c
thunk.h Remove macro HOST_LONG_SIZE 2012-02-28 22:33:41 +01:00
trace-events trace-events: Fix broken build caused by wrong format specifier 2012-03-26 12:34:20 +01:00
translate-all.c Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
uboot_image.h
user-exec.c Rename CPUState -> CPUArchState 2012-03-14 22:20:27 +01:00
version.rc
vgafont.h
vl.c Merge branch 'arm-devs.for-upstream' of git://git.linaro.org/people/pmaydell/qemu-arm 2012-03-31 12:10:07 +00:00
vmstate.h Purge migration of (almost) everything to do with monitors 2012-03-15 10:39:52 -03:00
x86_64.ld
xen-all.c Merge remote-tracking branch 'sstabellini/saverestore-8' into staging 2012-03-19 13:39:42 -05:00
xen-mapcache.c xen mapcache: check if memory region has moved. 2012-03-19 18:21:12 +00:00
xen-mapcache.h xen mapcache: check if memory region has moved. 2012-03-19 18:21:12 +00:00
xen-stub.c
xtensa-semi.c xtensa-semi: Don't use CPUState 2012-03-14 22:20:26 +01:00

README

Read the documentation in qemu-doc.html or on http://wiki.qemu.org

- QEMU team