diff options
author | Keir Fraser <keir@xensource.com> | 2007-10-29 12:56:27 +0000 |
---|---|---|
committer | Keir Fraser <keir@xensource.com> | 2007-10-29 12:56:27 +0000 |
commit | ee41f1c835dd41a418b1afcd7394bcb4a16da6e1 (patch) | |
tree | becc5036a90ffd606e01443f552866a872d857d1 /tools/libxc/xc_misc.c | |
parent | 70ee40b004c7a05092c1085772201754941a8543 (diff) | |
download | xen-ee41f1c835dd41a418b1afcd7394bcb4a16da6e1.tar.gz xen-ee41f1c835dd41a418b1afcd7394bcb4a16da6e1.tar.bz2 xen-ee41f1c835dd41a418b1afcd7394bcb4a16da6e1.zip |
Allow incremental access to hypervisor console log.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'tools/libxc/xc_misc.c')
-rw-r--r-- | tools/libxc/xc_misc.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/tools/libxc/xc_misc.c b/tools/libxc/xc_misc.c index ba50866b56..c79e14a563 100644 --- a/tools/libxc/xc_misc.c +++ b/tools/libxc/xc_misc.c @@ -10,7 +10,7 @@ int xc_readconsolering(int xc_handle, char **pbuffer, unsigned int *pnr_chars, - int clear) + int clear, int incremental, uint32_t *pindex) { int ret; DECLARE_SYSCTL; @@ -19,14 +19,24 @@ int xc_readconsolering(int xc_handle, sysctl.cmd = XEN_SYSCTL_readconsole; set_xen_guest_handle(sysctl.u.readconsole.buffer, buffer); - sysctl.u.readconsole.count = nr_chars; - sysctl.u.readconsole.clear = clear; + sysctl.u.readconsole.count = nr_chars; + sysctl.u.readconsole.clear = clear; + sysctl.u.readconsole.incremental = 0; + if ( pindex ) + { + sysctl.u.readconsole.index = *pindex; + sysctl.u.readconsole.incremental = incremental; + } if ( (ret = lock_pages(buffer, nr_chars)) != 0 ) return ret; if ( (ret = do_sysctl(xc_handle, &sysctl)) == 0 ) + { *pnr_chars = sysctl.u.readconsole.count; + if ( pindex ) + *pindex = sysctl.u.readconsole.index; + } unlock_pages(buffer, nr_chars); |