Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / tools / rbd_ggate / Driver.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3
4 #ifndef CEPH_RBD_GGATE_DRIVER_H
5 #define CEPH_RBD_GGATE_DRIVER_H
6
7 #include <list>
8 #include <string>
9
10 #include "ggate_drv.h"
11
12 namespace rbd {
13 namespace ggate {
14
15 struct Request;
16
17 class Driver {
18 public:
19   static int load();
20   static int kill(const std::string &devname);
21   static int list(std::list<std::string> &devs);
22
23   Driver(const std::string &devname, size_t sectorsize, size_t mediasize,
24          bool readonly, const std::string &info);
25
26   int init();
27   void shut_down();
28
29   std::string get_devname() const;
30
31   int recv(Request **req);
32   int send(Request *req);
33
34   int resize(size_t newsize);
35
36 private:
37   std::string m_devname;
38   size_t m_sectorsize;
39   size_t m_mediasize;
40   bool m_readonly;
41   std::string m_info;
42   ggate_drv_t m_drv = 0;
43 };
44
45 } // namespace ggate
46 } // namespace rbd
47
48 #endif // CEPH_RBD_GGATE_DRIVER_H
49