提交 413c5dbf 编写于 作者: A Atsushi SAKAI

add _fd to stdin, stderr stdout in struct virDomainObj for compilation on MinGW

上级 43c7f972
Tue Aug 12 17:30:50 JST 2008 Atsushi SAKAI <sakaia@jp.fujitsu.com>
* src/domain_conf.h src/qemu_driver.c: name changing of
stdin, stdout, stderr to add _fd for compilation on MinGW
Tue Aug 12 17:20:36 JST 2008 Atsushi SAKAI <sakaia@jp.fujitsu.com>
* src/domain.conf.c src/network_conf.c src/util.c src/virsh.c
......
......@@ -444,9 +444,9 @@ struct _virDomainDef {
typedef struct _virDomainObj virDomainObj;
typedef virDomainObj *virDomainObjPtr;
struct _virDomainObj {
int stdin;
int stdout;
int stderr;
int stdin_fd;
int stdout_fd;
int stderr_fd;
int monitor;
int logfile;
int pid;
......
......@@ -636,7 +636,7 @@ static int qemudWaitForMonitor(virConnectPtr conn,
virDomainObjPtr vm) {
char buf[1024]; /* Plenty of space to get startup greeting */
int ret = qemudReadMonitorOutput(conn,
driver, vm, vm->stderr,
driver, vm, vm->stderr_fd,
buf, sizeof(buf),
qemudFindCharDevicePTYs,
"console");
......@@ -950,7 +950,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
errno, strerror(errno));
ret = virExecNonBlock(conn, argv, &vm->pid,
vm->stdin, &vm->stdout, &vm->stderr);
vm->stdin_fd, &vm->stdout_fd, &vm->stderr_fd);
if (ret == 0) {
vm->def->id = driver->nextvmid++;
vm->state = migrateFrom ? VIR_DOMAIN_PAUSED : VIR_DOMAIN_RUNNING;
......@@ -968,11 +968,11 @@ static int qemudStartVMDaemon(virConnectPtr conn,
}
if (ret == 0) {
if ((virEventAddHandle(vm->stdout,
if ((virEventAddHandle(vm->stdout_fd,
POLLIN | POLLERR | POLLHUP,
qemudDispatchVMEvent,
driver) < 0) ||
(virEventAddHandle(vm->stderr,
(virEventAddHandle(vm->stderr_fd,
POLLIN | POLLERR | POLLHUP,
qemudDispatchVMEvent,
driver) < 0) ||
......@@ -1025,22 +1025,22 @@ static void qemudShutdownVMDaemon(virConnectPtr conn ATTRIBUTE_UNUSED,
kill(vm->pid, SIGTERM);
qemudVMData(driver, vm, vm->stdout);
qemudVMData(driver, vm, vm->stderr);
qemudVMData(driver, vm, vm->stdout_fd);
qemudVMData(driver, vm, vm->stderr_fd);
virEventRemoveHandle(vm->stdout);
virEventRemoveHandle(vm->stderr);
virEventRemoveHandle(vm->stdout_fd);
virEventRemoveHandle(vm->stderr_fd);
if (close(vm->logfile) < 0)
qemudLog(QEMUD_WARN, _("Unable to close logfile %d: %s\n"),
errno, strerror(errno));
close(vm->stdout);
close(vm->stderr);
close(vm->stdout_fd);
close(vm->stderr_fd);
if (vm->monitor != -1)
close(vm->monitor);
vm->logfile = -1;
vm->stdout = -1;
vm->stderr = -1;
vm->stdout_fd = -1;
vm->stderr_fd = -1;
vm->monitor = -1;
if (waitpid(vm->pid, NULL, WNOHANG) != vm->pid) {
......@@ -1613,8 +1613,8 @@ static void qemudDispatchVMEvent(int fd, int events, void *opaque) {
while (vm) {
if (virDomainIsActive(vm) &&
(vm->stdout == fd ||
vm->stderr == fd))
(vm->stdout_fd == fd ||
vm->stderr_fd == fd))
break;
vm = vm->next;
......@@ -2754,10 +2754,10 @@ static int qemudDomainRestore(virConnectPtr conn,
}
/* Set the migration source and start it up. */
vm->stdin = fd;
vm->stdin_fd = fd;
ret = qemudStartVMDaemon(conn, driver, vm, "stdio");
close(fd);
vm->stdin = -1;
vm->stdin_fd = -1;
if (ret < 0) {
qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED,
"%s", _("failed to start VM"));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册