xref: /openbmc/qemu/include/scsi/pr-manager.h (revision fcb7e040f5c69ca1f0678f991ab5354488a9e192)
17c9e5276SPaolo Bonzini #ifndef PR_MANAGER_H
27c9e5276SPaolo Bonzini #define PR_MANAGER_H
37c9e5276SPaolo Bonzini 
47c9e5276SPaolo Bonzini #include "qom/object.h"
57c9e5276SPaolo Bonzini #include "qapi/visitor.h"
67c9e5276SPaolo Bonzini #include "qom/object_interfaces.h"
77c9e5276SPaolo Bonzini #include "block/aio.h"
87c9e5276SPaolo Bonzini 
97c9e5276SPaolo Bonzini #define TYPE_PR_MANAGER "pr-manager"
107c9e5276SPaolo Bonzini 
11c821774aSEduardo Habkost OBJECT_DECLARE_TYPE(PRManager, PRManagerClass,
12*30b5707cSEduardo Habkost                     PR_MANAGER)
137c9e5276SPaolo Bonzini 
147c9e5276SPaolo Bonzini struct sg_io_hdr;
157c9e5276SPaolo Bonzini 
16db1015e9SEduardo Habkost struct PRManager {
177c9e5276SPaolo Bonzini     /* <private> */
187c9e5276SPaolo Bonzini     Object parent;
19db1015e9SEduardo Habkost };
207c9e5276SPaolo Bonzini 
217c9e5276SPaolo Bonzini /**
227c9e5276SPaolo Bonzini  * PRManagerClass:
237c9e5276SPaolo Bonzini  * @parent_class: the base class
247c9e5276SPaolo Bonzini  * @run: callback invoked in thread pool context
257c9e5276SPaolo Bonzini  */
26db1015e9SEduardo Habkost struct PRManagerClass {
277c9e5276SPaolo Bonzini     /* <private> */
287c9e5276SPaolo Bonzini     ObjectClass parent_class;
297c9e5276SPaolo Bonzini 
307c9e5276SPaolo Bonzini     /* <public> */
317c9e5276SPaolo Bonzini     int (*run)(PRManager *pr_mgr, int fd, struct sg_io_hdr *hdr);
325f640894SPaolo Bonzini     bool (*is_connected)(PRManager *pr_mgr);
33db1015e9SEduardo Habkost };
347c9e5276SPaolo Bonzini 
355f640894SPaolo Bonzini bool pr_manager_is_connected(PRManager *pr_mgr);
362f3a7ab3SKevin Wolf int coroutine_fn pr_manager_execute(PRManager *pr_mgr, AioContext *ctx, int fd,
372f3a7ab3SKevin Wolf                                     struct sg_io_hdr *hdr);
387c9e5276SPaolo Bonzini 
397c9e5276SPaolo Bonzini PRManager *pr_manager_lookup(const char *id, Error **errp);
407c9e5276SPaolo Bonzini 
417c9e5276SPaolo Bonzini #endif
42