]>
Commit | Line | Data |
---|---|---|
d2e6a577 FG |
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 |