aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_misc.c
diff options
context:
space:
mode:
authorKeir Fraser <keir@xensource.com>2007-10-29 12:56:27 +0000
committerKeir Fraser <keir@xensource.com>2007-10-29 12:56:27 +0000
commitee41f1c835dd41a418b1afcd7394bcb4a16da6e1 (patch)
treebecc5036a90ffd606e01443f552866a872d857d1 /tools/libxc/xc_misc.c
parent70ee40b004c7a05092c1085772201754941a8543 (diff)
downloadxen-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.c16
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);