@@ -16,6 +16,7 @@
#include <xen/spinlock.h>
#include <xen/string.h>
#include <xen/symbols.h>
+#include <xen/version.h>
#include <xen/virtual_region.h>
#include <xen/vmap.h>
#include <xen/wait.h>
@@ -1331,8 +1332,13 @@ static const char *state2str(uint32_t state)
static void xsplice_printall(unsigned char key)
{
struct payload *data;
+ const void *binary_id = NULL;
+ unsigned int len = 0;
unsigned int i;
+ if ( !xen_build_id(&binary_id, &len) )
+ printk("build-id: %*phN\n", len, binary_id);
+
if ( !spin_trylock(&payload_lock) )
{
printk("Lock held. Try again.\n");
@@ -1365,11 +1371,17 @@ static void xsplice_printall(unsigned char key)
static int __init xsplice_init(void)
{
+ const void *binary_id;
+ unsigned int len;
+
BUILD_BUG_ON( sizeof(struct xsplice_patch_func) != 64 );
BUILD_BUG_ON( sizeof(struct xsplice_patch_func_internal) != 64 );
BUILD_BUG_ON( offsetof(struct xsplice_patch_func, new_addr) != 8 );
BUILD_BUG_ON( offsetof(struct xsplice_patch_func, new_size) != 24 );
+ if ( !xen_build_id(&binary_id, &len) )
+ printk(XENLOG_INFO XSPLICE ": build-id: %*phN\n", len, binary_id);
+
register_keyhandler('x', xsplice_printall, "print xsplicing info", 1);
arch_xsplice_init();