[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3 of 5] tools/libxc: Implement of xc_readconsolering_buffer
Functions identically to xc_readconsolering(), but uses a user-provided xc_hypercall_buffer_t to save using a bounce buffer. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> diff -r 40d1bab1b996 -r 6b8c513cff4f tools/libxc/xc_misc.c --- a/tools/libxc/xc_misc.c +++ b/tools/libxc/xc_misc.c @@ -100,6 +100,37 @@ int xc_readconsolering(xc_interface *xch return ret; } +int xc_readconsolering_buffer(xc_interface *xch, + xc_hypercall_buffer_t *buffer, + unsigned int *pnr_chars, + int clear, int incremental, uint32_t *pindex) +{ + int ret; + unsigned int nr_chars = *pnr_chars; + DECLARE_SYSCTL; + DECLARE_HYPERCALL_BUFFER_ARGUMENT(buffer); + + 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.incremental = 0; + if ( pindex ) + { + sysctl.u.readconsole.index = *pindex; + sysctl.u.readconsole.incremental = incremental; + } + + if ( (ret = do_sysctl(xch, &sysctl)) == 0 ) + { + *pnr_chars = sysctl.u.readconsole.count; + if ( pindex ) + *pindex = sysctl.u.readconsole.index; + } + + return ret; +} + int xc_consoleringsize(xc_interface *xch, uint64_t * psize) { int ret = -1; diff -r 40d1bab1b996 -r 6b8c513cff4f tools/libxc/xenctrl.h --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -998,6 +998,10 @@ int xc_readconsolering(xc_interface *xch char *buffer, unsigned int *pnr_chars, int clear, int incremental, uint32_t *pindex); +int xc_readconsolering_buffer(xc_interface *xch, + xc_hypercall_buffer_t *buffer, + unsigned int *pnr_chars, + int clear, int incremental, uint32_t *pindex); int xc_consoleringsize(xc_interface *xch, uint64_t * psize); int xc_send_debug_keys(xc_interface *xch, char *keys); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |