1
2
3
4
5
6
7
8
9
10
11
12#ifndef HOTPLUG_H
13#define HOTPLUG_H
14
15#include "qom/object.h"
16
17#define TYPE_HOTPLUG_HANDLER "hotplug-handler"
18
19#define HOTPLUG_HANDLER_CLASS(klass) \
20 OBJECT_CLASS_CHECK(HotplugHandlerClass, (klass), TYPE_HOTPLUG_HANDLER)
21#define HOTPLUG_HANDLER_GET_CLASS(obj) \
22 OBJECT_GET_CLASS(HotplugHandlerClass, (obj), TYPE_HOTPLUG_HANDLER)
23#define HOTPLUG_HANDLER(obj) \
24 INTERFACE_CHECK(HotplugHandler, (obj), TYPE_HOTPLUG_HANDLER)
25
26
27typedef struct HotplugHandler {
28
29 Object Parent;
30} HotplugHandler;
31
32
33
34
35
36
37
38typedef void (*hotplug_fn)(HotplugHandler *plug_handler,
39 DeviceState *plugged_dev, Error **errp);
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57typedef struct HotplugHandlerClass {
58
59 InterfaceClass parent;
60
61
62 hotplug_fn pre_plug;
63 hotplug_fn plug;
64 hotplug_fn unplug_request;
65 hotplug_fn unplug;
66} HotplugHandlerClass;
67
68
69
70
71
72
73void hotplug_handler_plug(HotplugHandler *plug_handler,
74 DeviceState *plugged_dev,
75 Error **errp);
76
77
78
79
80
81
82void hotplug_handler_pre_plug(HotplugHandler *plug_handler,
83 DeviceState *plugged_dev,
84 Error **errp);
85
86
87
88
89
90
91void hotplug_handler_unplug_request(HotplugHandler *plug_handler,
92 DeviceState *plugged_dev,
93 Error **errp);
94
95
96
97
98
99void hotplug_handler_unplug(HotplugHandler *plug_handler,
100 DeviceState *plugged_dev,
101 Error **errp);
102#endif
103