Merge tag 'v9.0.0-rc3'
[qemu/ar7.git] / include / scsi / pr-manager.h
blob45de28d3542c713e23fa34bb627c87e2e54d3195
1 #ifndef PR_MANAGER_H
2 #define PR_MANAGER_H
4 #include "qom/object.h"
5 #include "qapi/visitor.h"
6 #include "qom/object_interfaces.h"
7 #include "block/aio.h"
9 #define TYPE_PR_MANAGER "pr-manager"
11 OBJECT_DECLARE_TYPE(PRManager, PRManagerClass,
12 PR_MANAGER)
14 struct sg_io_hdr;
16 struct PRManager {
17 /* <private> */
18 Object parent;
21 /**
22 * PRManagerClass:
23 * @parent_class: the base class
24 * @run: callback invoked in thread pool context
26 struct PRManagerClass {
27 /* <private> */
28 ObjectClass parent_class;
30 /* <public> */
31 int (*run)(PRManager *pr_mgr, int fd, struct sg_io_hdr *hdr);
32 bool (*is_connected)(PRManager *pr_mgr);
35 bool pr_manager_is_connected(PRManager *pr_mgr);
36 int coroutine_fn pr_manager_execute(PRManager *pr_mgr, AioContext *ctx, int fd,
37 struct sg_io_hdr *hdr);
39 PRManager *pr_manager_lookup(const char *id, Error **errp);
41 #endif