Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
ab47cc9b
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ab47cc9b
编写于
7月 11, 2013
作者:
J
Jiri Denemark
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
qemu: Add support for DEVICE_DELETED event
上级
ae951e72
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
36 addition
and
0 deletion
+36
-0
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.c
+2
-0
src/qemu/qemu_capabilities.h
src/qemu/qemu_capabilities.h
+1
-0
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor.c
+13
-0
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor.h
+5
-0
src/qemu/qemu_monitor_json.c
src/qemu/qemu_monitor_json.c
+15
-0
未找到文件。
src/qemu/qemu_capabilities.c
浏览文件 @
ab47cc9b
...
@@ -233,6 +233,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
...
@@ -233,6 +233,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"mlock"
,
"mlock"
,
"vnc-share-policy"
,
/* 150 */
"vnc-share-policy"
,
/* 150 */
"device-del-event"
,
);
);
struct
_virQEMUCaps
{
struct
_virQEMUCaps
{
...
@@ -1335,6 +1336,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
...
@@ -1335,6 +1336,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = {
struct
virQEMUCapsStringFlags
virQEMUCapsEvents
[]
=
{
struct
virQEMUCapsStringFlags
virQEMUCapsEvents
[]
=
{
{
"BALLOON_CHANGE"
,
QEMU_CAPS_BALLOON_EVENT
},
{
"BALLOON_CHANGE"
,
QEMU_CAPS_BALLOON_EVENT
},
{
"SPICE_MIGRATE_COMPLETED"
,
QEMU_CAPS_SEAMLESS_MIGRATION
},
{
"SPICE_MIGRATE_COMPLETED"
,
QEMU_CAPS_SEAMLESS_MIGRATION
},
{
"DEVICE_DELETED"
,
QEMU_CAPS_DEVICE_DEL_EVENT
},
};
};
struct
virQEMUCapsStringFlags
virQEMUCapsObjectTypes
[]
=
{
struct
virQEMUCapsStringFlags
virQEMUCapsObjectTypes
[]
=
{
...
...
src/qemu/qemu_capabilities.h
浏览文件 @
ab47cc9b
...
@@ -189,6 +189,7 @@ enum virQEMUCapsFlags {
...
@@ -189,6 +189,7 @@ enum virQEMUCapsFlags {
QEMU_CAPS_DRIVE_DISCARD
=
148
,
/* -drive discard=off(ignore)|on(unmap) */
QEMU_CAPS_DRIVE_DISCARD
=
148
,
/* -drive discard=off(ignore)|on(unmap) */
QEMU_CAPS_MLOCK
=
149
,
/* -realtime mlock=on|off */
QEMU_CAPS_MLOCK
=
149
,
/* -realtime mlock=on|off */
QEMU_CAPS_VNC_SHARE_POLICY
=
150
,
/* set display sharing policy */
QEMU_CAPS_VNC_SHARE_POLICY
=
150
,
/* set display sharing policy */
QEMU_CAPS_DEVICE_DEL_EVENT
=
151
,
/* DEVICE_DELETED event */
QEMU_CAPS_LAST
,
/* this must always be the last item */
QEMU_CAPS_LAST
,
/* this must always be the last item */
};
};
...
...
src/qemu/qemu_monitor.c
浏览文件 @
ab47cc9b
...
@@ -1274,6 +1274,19 @@ int qemuMonitorEmitBalloonChange(qemuMonitorPtr mon,
...
@@ -1274,6 +1274,19 @@ int qemuMonitorEmitBalloonChange(qemuMonitorPtr mon,
}
}
int
qemuMonitorEmitDeviceDeleted
(
qemuMonitorPtr
mon
,
const
char
*
devAlias
)
{
int
ret
=
-
1
;
VIR_DEBUG
(
"mon=%p"
,
mon
);
QEMU_MONITOR_CALLBACK
(
mon
,
ret
,
domainDeviceDeleted
,
mon
->
vm
,
devAlias
);
return
ret
;
}
int
qemuMonitorSetCapabilities
(
qemuMonitorPtr
mon
)
int
qemuMonitorSetCapabilities
(
qemuMonitorPtr
mon
)
{
{
int
ret
;
int
ret
;
...
...
src/qemu/qemu_monitor.h
浏览文件 @
ab47cc9b
...
@@ -142,6 +142,9 @@ struct _qemuMonitorCallbacks {
...
@@ -142,6 +142,9 @@ struct _qemuMonitorCallbacks {
virDomainObjPtr
vm
);
virDomainObjPtr
vm
);
int
(
*
domainGuestPanic
)(
qemuMonitorPtr
mon
,
int
(
*
domainGuestPanic
)(
qemuMonitorPtr
mon
,
virDomainObjPtr
vm
);
virDomainObjPtr
vm
);
int
(
*
domainDeviceDeleted
)(
qemuMonitorPtr
mon
,
virDomainObjPtr
vm
,
const
char
*
devAlias
);
};
};
char
*
qemuMonitorEscapeArg
(
const
char
*
in
);
char
*
qemuMonitorEscapeArg
(
const
char
*
in
);
...
@@ -223,6 +226,8 @@ int qemuMonitorEmitBalloonChange(qemuMonitorPtr mon,
...
@@ -223,6 +226,8 @@ int qemuMonitorEmitBalloonChange(qemuMonitorPtr mon,
unsigned
long
long
actual
);
unsigned
long
long
actual
);
int
qemuMonitorEmitPMSuspendDisk
(
qemuMonitorPtr
mon
);
int
qemuMonitorEmitPMSuspendDisk
(
qemuMonitorPtr
mon
);
int
qemuMonitorEmitGuestPanic
(
qemuMonitorPtr
mon
);
int
qemuMonitorEmitGuestPanic
(
qemuMonitorPtr
mon
);
int
qemuMonitorEmitDeviceDeleted
(
qemuMonitorPtr
mon
,
const
char
*
devAlias
);
int
qemuMonitorStartCPUs
(
qemuMonitorPtr
mon
,
int
qemuMonitorStartCPUs
(
qemuMonitorPtr
mon
,
virConnectPtr
conn
);
virConnectPtr
conn
);
...
...
src/qemu/qemu_monitor_json.c
浏览文件 @
ab47cc9b
...
@@ -75,6 +75,7 @@ static void qemuMonitorJSONHandleBlockJobReady(qemuMonitorPtr mon, virJSONValueP
...
@@ -75,6 +75,7 @@ static void qemuMonitorJSONHandleBlockJobReady(qemuMonitorPtr mon, virJSONValueP
static
void
qemuMonitorJSONHandleBalloonChange
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
);
static
void
qemuMonitorJSONHandleBalloonChange
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
);
static
void
qemuMonitorJSONHandlePMSuspendDisk
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
);
static
void
qemuMonitorJSONHandlePMSuspendDisk
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
);
static
void
qemuMonitorJSONHandleGuestPanic
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
);
static
void
qemuMonitorJSONHandleGuestPanic
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
);
static
void
qemuMonitorJSONHandleDeviceDeleted
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
);
typedef
struct
{
typedef
struct
{
const
char
*
type
;
const
char
*
type
;
...
@@ -87,6 +88,7 @@ static qemuEventHandler eventHandlers[] = {
...
@@ -87,6 +88,7 @@ static qemuEventHandler eventHandlers[] = {
{
"BLOCK_JOB_CANCELLED"
,
qemuMonitorJSONHandleBlockJobCanceled
,
},
{
"BLOCK_JOB_CANCELLED"
,
qemuMonitorJSONHandleBlockJobCanceled
,
},
{
"BLOCK_JOB_COMPLETED"
,
qemuMonitorJSONHandleBlockJobCompleted
,
},
{
"BLOCK_JOB_COMPLETED"
,
qemuMonitorJSONHandleBlockJobCompleted
,
},
{
"BLOCK_JOB_READY"
,
qemuMonitorJSONHandleBlockJobReady
,
},
{
"BLOCK_JOB_READY"
,
qemuMonitorJSONHandleBlockJobReady
,
},
{
"DEVICE_DELETED"
,
qemuMonitorJSONHandleDeviceDeleted
,
},
{
"DEVICE_TRAY_MOVED"
,
qemuMonitorJSONHandleTrayChange
,
},
{
"DEVICE_TRAY_MOVED"
,
qemuMonitorJSONHandleTrayChange
,
},
{
"GUEST_PANICKED"
,
qemuMonitorJSONHandleGuestPanic
,
},
{
"GUEST_PANICKED"
,
qemuMonitorJSONHandleGuestPanic
,
},
{
"POWERDOWN"
,
qemuMonitorJSONHandlePowerdown
,
},
{
"POWERDOWN"
,
qemuMonitorJSONHandlePowerdown
,
},
...
@@ -920,6 +922,19 @@ qemuMonitorJSONHandlePMSuspendDisk(qemuMonitorPtr mon,
...
@@ -920,6 +922,19 @@ qemuMonitorJSONHandlePMSuspendDisk(qemuMonitorPtr mon,
qemuMonitorEmitPMSuspendDisk
(
mon
);
qemuMonitorEmitPMSuspendDisk
(
mon
);
}
}
static
void
qemuMonitorJSONHandleDeviceDeleted
(
qemuMonitorPtr
mon
,
virJSONValuePtr
data
)
{
const
char
*
device
;
if
(
!
(
device
=
virJSONValueObjectGetString
(
data
,
"device"
)))
{
VIR_WARN
(
"missing device in device deleted event"
);
return
;
}
qemuMonitorEmitDeviceDeleted
(
mon
,
device
);
}
int
int
qemuMonitorJSONHumanCommandWithFd
(
qemuMonitorPtr
mon
,
qemuMonitorJSONHumanCommandWithFd
(
qemuMonitorPtr
mon
,
const
char
*
cmd_str
,
const
char
*
cmd_str
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录