]>
git.proxmox.com Git - ceph.git/blob - ceph/src/tools/rbd_ggate/ggate_drv.h
1 // -*- mode:C; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #ifndef CEPH_RBD_GGATE_GGATE_DRV_H
5 #define CEPH_RBD_GGATE_GGATE_DRV_H
14 typedef void *ggate_drv_t
;
15 typedef void *ggate_drv_req_t
;
18 * GGATE driver commands. They are mapped to GgateReq::Command.
21 GGATE_DRV_CMD_UNKNOWN
= 0,
22 GGATE_DRV_CMD_WRITE
= 1,
23 GGATE_DRV_CMD_READ
= 2,
24 GGATE_DRV_CMD_FLUSH
= 3,
25 GGATE_DRV_CMD_DISCARD
= 4,
28 uint64_t ggate_drv_req_id(ggate_drv_req_t req
);
29 int ggate_drv_req_cmd(ggate_drv_req_t req
);
30 void *ggate_drv_req_buf(ggate_drv_req_t req
);
31 size_t ggate_drv_req_length(ggate_drv_req_t req
);
32 uint64_t ggate_drv_req_offset(ggate_drv_req_t req
);
33 int ggate_drv_req_error(ggate_drv_req_t req
);
35 void ggate_drv_req_set_error(ggate_drv_req_t req
, int error
);
36 void *ggate_drv_req_release_buf(ggate_drv_req_t req
);
40 int ggate_drv_create(char *name
, size_t namelen
, size_t sectorsize
,
41 size_t mediasize
, bool readonly
, const char *info
, ggate_drv_t
*drv
);
42 void ggate_drv_destroy(ggate_drv_t drv
);
44 int ggate_drv_recv(ggate_drv_t drv
, ggate_drv_req_t
*req
);
45 int ggate_drv_send(ggate_drv_t drv
, ggate_drv_req_t req
);
47 int ggate_drv_resize(ggate_drv_t drv
, size_t newsize
);
49 int ggate_drv_kill(const char *devname
);
50 int ggate_drv_list(char **devs
, size_t *size
);
51 void ggate_drv_list_free(char **devs
, size_t size
);
57 #endif // CEPH_RBD_GGATE_GGATE_DRV_H