]> git.proxmox.com Git - mirror_qemu.git/commit
qga: Better mapping of SEEK_* in guest-file-seek
authorEric Blake <eblake@redhat.com>
Wed, 25 Nov 2015 17:37:15 +0000 (10:37 -0700)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Wed, 25 Nov 2015 23:56:45 +0000 (17:56 -0600)
commit0a982b1bf3953dc8640c4d6e619fb1132ebbebc3
tree5ae9613662b1e89c3da1bb78c74b1e1253802406
parent4eaab85cb1c1ba9c575d29921df81d63c7aa35df
qga: Better mapping of SEEK_* in guest-file-seek

Exposing OS-specific SEEK_ constants in our qapi was a mistake
(if the host has SEEK_CUR as 1, but the guest has it as 2, then
the semantics are unclear what should happen); if we had a time
machine, we would instead expose only a symbolic enum.  It's too
late to change the fact that we have an integer in qapi, but we
can at least document what mapping we want to enforce for all
qga clients (and luckily, it happens to be the mapping that both
Linux and Windows use); then fix the code to match that mapping.
It also helps us filter out unsupported SEEK_DATA and SEEK_HOLE.

In the future, we may wish to move our QGA_SEEK_* constants into
qga/qapi-schema.json, along with updating the schema to take an
alternate type (either the integer, or the string value of the
enum name) - but that's too much risk during hard freeze.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
qga/commands-posix.c
qga/commands-win32.c
qga/guest-agent-core.h
qga/qapi-schema.json
tests/test-qga.c