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
56typedef struct HotplugHandlerClass {
57
58 InterfaceClass parent;
59
60
61 hotplug_fn plug;
62 hotplug_fn unplug_request;
63 hotplug_fn unplug;
64} HotplugHandlerClass;
65
66
67
68
69
70
71void hotplug_handler_plug(HotplugHandler *plug_handler,
72 DeviceState *plugged_dev,
73 Error **errp);
74
75
76
77
78
79
80void hotplug_handler_unplug_request(HotplugHandler *plug_handler,
81 DeviceState *plugged_dev,
82 Error **errp);
83
84
85
86
87
88void hotplug_handler_unplug(HotplugHandler *plug_handler,
89 DeviceState *plugged_dev,
90 Error **errp);
91#endif
92