]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/io/Types.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / librbd / io / Types.h
index 2b69d7bbcf032128e833885050e3cd75791829d9..6bd42eac3186889719b721ff98bdb7f323cddf09 100644 (file)
 namespace librbd {
 namespace io {
 
+#define RBD_QOS_IOPS_THROTTLE                          1 << 0
+#define RBD_QOS_BPS_THROTTLE                           1 << 1
+#define RBD_QOS_READ_IOPS_THROTTLE                     1 << 2
+#define RBD_QOS_WRITE_IOPS_THROTTLE                    1 << 3
+#define RBD_QOS_READ_BPS_THROTTLE                      1 << 4
+#define RBD_QOS_WRITE_BPS_THROTTLE                     1 << 5
+
+#define RBD_QOS_BPS_MASK       (RBD_QOS_BPS_THROTTLE | RBD_QOS_READ_BPS_THROTTLE | RBD_QOS_WRITE_BPS_THROTTLE)
+#define RBD_QOS_IOPS_MASK      (RBD_QOS_IOPS_THROTTLE | RBD_QOS_READ_IOPS_THROTTLE | RBD_QOS_WRITE_IOPS_THROTTLE)
+#define RBD_QOS_READ_MASK      (RBD_QOS_READ_BPS_THROTTLE | RBD_QOS_READ_IOPS_THROTTLE)
+#define RBD_QOS_WRITE_MASK     (RBD_QOS_WRITE_BPS_THROTTLE | RBD_QOS_WRITE_IOPS_THROTTLE)
+
+#define RBD_QOS_MASK           (RBD_QOS_BPS_MASK | RBD_QOS_IOPS_MASK)
+
 typedef enum {
   AIO_TYPE_NONE = 0,
   AIO_TYPE_GENERIC,
@@ -24,12 +38,42 @@ typedef enum {
   AIO_TYPE_COMPARE_AND_WRITE,
 } aio_type_t;
 
+enum FlushSource {
+  FLUSH_SOURCE_USER,
+  FLUSH_SOURCE_INTERNAL,
+  FLUSH_SOURCE_SHUTDOWN
+};
+
 enum Direction {
   DIRECTION_READ,
   DIRECTION_WRITE,
   DIRECTION_BOTH
 };
 
+enum DispatchResult {
+  DISPATCH_RESULT_INVALID,
+  DISPATCH_RESULT_CONTINUE,
+  DISPATCH_RESULT_COMPLETE
+};
+
+enum ObjectDispatchLayer {
+  OBJECT_DISPATCH_LAYER_NONE = 0,
+  OBJECT_DISPATCH_LAYER_CACHE,
+  OBJECT_DISPATCH_LAYER_JOURNAL,
+  OBJECT_DISPATCH_LAYER_CORE,
+  OBJECT_DISPATCH_LAYER_LAST
+};
+
+enum {
+  OBJECT_DISCARD_FLAG_DISABLE_CLONE_REMOVE      = 1UL << 0,
+  OBJECT_DISCARD_FLAG_DISABLE_OBJECT_MAP_UPDATE = 1UL << 1
+};
+
+enum {
+  OBJECT_DISPATCH_FLAG_FLUSH                    = 1UL << 0,
+  OBJECT_DISPATCH_FLAG_WILL_RETRY_ON_ERROR      = 1UL << 1
+};
+
 typedef std::vector<std::pair<uint64_t, uint64_t> > Extents;
 typedef std::map<uint64_t, uint64_t> ExtentMap;
 
@@ -37,4 +81,3 @@ typedef std::map<uint64_t, uint64_t> ExtentMap;
 } // namespace librbd
 
 #endif // CEPH_LIBRBD_IO_TYPES_H
-