|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 08/11] Debugging machinery for synthesising POLLHUP
---
tools/libxl/libxl_bootloader.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
index e103ee9..2e65383 100644
--- a/tools/libxl/libxl_bootloader.c
+++ b/tools/libxl/libxl_bootloader.c
@@ -447,6 +447,19 @@ static void bootloader_disk_attached_cb(libxl__egc *egc,
bootloader_callback(egc, bl, rc);
}
+static int tst_blfd;
+static void tst_sigh(int dummy) {
+ int r, e = errno;
+ int p[2];
+ write(2,"tst_sigh\n",9);
+ r = pipe(p); assert(!r);
+ close(p[1]);
+if (getenv("TST_EXTRADUP")) dup(tst_blfd);
+ dup2(p[0], tst_blfd);
+ close(p[0]);
+ errno = e;
+}
+
static void bootloader_gotptys(libxl__egc *egc, libxl__openpty_state *op)
{
libxl__bootloader_state *bl = CONTAINER_OF(op, *bl, openpty);
@@ -503,6 +516,9 @@ static void bootloader_gotptys(libxl__egc *egc,
libxl__openpty_state *op)
int bootloader_master = libxl__carefd_fd(bl->ptys[0].master);
int xenconsole_master = libxl__carefd_fd(bl->ptys[1].master);
+tst_blfd = bootloader_master;
+signal(SIGUSR2,tst_sigh);
+
libxl_fd_set_nonblock(CTX, bootloader_master, 1);
libxl_fd_set_nonblock(CTX, xenconsole_master, 1);
--
1.7.2.5
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |