summaryrefslogtreecommitdiffstats
path: root/inc/dnbd3/config/cow.h
diff options
context:
space:
mode:
authorSimon Rettberg2023-03-29 12:03:54 +0200
committerSimon Rettberg2024-05-13 18:26:42 +0200
commitec0b9b5f72607335ac19d4ea00c24919943b7970 (patch)
treefaf735a62dff9d88f22c1073b601e5af913cc3e9 /inc/dnbd3/config/cow.h
parent[FUSE] Fixed cow daemon issue (diff)
downloaddnbd3-ec0b9b5f72607335ac19d4ea00c24919943b7970.tar.gz
dnbd3-ec0b9b5f72607335ac19d4ea00c24919943b7970.tar.xz
dnbd3-ec0b9b5f72607335ac19d4ea00c24919943b7970.zip
[FUSE] cow: Cleanup, comments, fixes, minor refactoring
- Use the term "cluster" for a group of dnbd3-blocks instead of also calling them blocks. - Use term "table" instead of "array" for the L1 and L2 tables. - Use term "index" instead of "offset" when addressing those tables - Fix a few logic bugs, use-after-free - Add TODOs for parts that need better comments
Diffstat (limited to 'inc/dnbd3/config/cow.h')
-rw-r--r--inc/dnbd3/config/cow.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/inc/dnbd3/config/cow.h b/inc/dnbd3/config/cow.h
new file mode 100644
index 0000000..9ed59a0
--- /dev/null
+++ b/inc/dnbd3/config/cow.h
@@ -0,0 +1,20 @@
+#ifndef _COW_CONFIG_H_
+#define _COW_CONFIG_H_
+
+// +++++ COW +++++
+#define COW_BITFIELD_SIZE 40 // NEVER CHANGE THIS OR THE WORLD WILL ALSO END!
+#define COW_FILE_META_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825E) // Magic Value to recognize a Cow meta file
+#define COW_FILE_DATA_MAGIC_VALUE ((uint64_t)0xEBE44D6E72F7825F) // Magic Value to recognize a Cow data file
+#define COW_MIN_UPLOAD_DELAY 60 // in seconds
+#define COW_STATS_UPDATE_TIME 5 // time in seconds the cow status files gets updated (while uploading blocks)
+#define COW_MAX_PARALLEL_UPLOADS 10 // maximum number of parallel uploads
+#define COW_MAX_PARALLEL_BACKGROUND_UPLOADS 2 // maximum number of parallel uploads while the image is still mounted
+#define COW_URL_STRING_SIZE 500 // Max string size for an url
+#define COW_SHOW_UL_SPEED 1 // enable display of ul speed in cow status file
+#define COW_MAX_IMAGE_SIZE 1000LL * 1000LL * 1000LL * 1000LL; // Maximum size an image can have(tb*gb*mb*kb)
+// +++++ COW API Endpoints +++++
+#define COW_API_CREATE "%s/api/file/create"
+#define COW_API_UPDATE "%s/api/file/update?guid=%s&clusterindex=%lu"
+#define COW_API_START_MERGE "%s/api/file/merge"
+
+#endif