aboutsummaryrefslogtreecommitdiff
path: root/c_implementation/include
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2025-04-24 01:59:36 +0300
committerkaotisk <kaotisk@arching-kaos.org>2025-04-24 01:59:36 +0300
commit22d9aeb0f3057c43cf7c561bc208c3acec45135e (patch)
tree2e0eca7350a778a0e9c1011b41eea18429a742b4 /c_implementation/include
parent07d2b7e430e17cceaab2715a816e4182f299f441 (diff)
downloadarching-kaos-tools-22d9aeb0f3057c43cf7c561bc208c3acec45135e.tar.gz
arching-kaos-tools-22d9aeb0f3057c43cf7c561bc208c3acec45135e.tar.bz2
arching-kaos-tools-22d9aeb0f3057c43cf7c561bc208c3acec45135e.zip
[libakfs] Updates
Diffstat (limited to 'c_implementation/include')
-rw-r--r--c_implementation/include/libakfs.h234
1 files changed, 228 insertions, 6 deletions
diff --git a/c_implementation/include/libakfs.h b/c_implementation/include/libakfs.h
index bc5703c..0dbf60e 100644
--- a/c_implementation/include/libakfs.h
+++ b/c_implementation/include/libakfs.h
@@ -2,6 +2,7 @@
#define AKFS
#include <stdbool.h>
+#include <stddef.h>
/**
* This struct represents a HEX output of the SHA-512 algorithm.
@@ -61,17 +62,22 @@ typedef struct {
* Original file's name
*
*/
- char* filename;
+ char filename[256];
/**
* Root hash
*
*/
sha512sum rh;
/**
+ * Map hash
+ *
+ */
+ sha512sum mh;
+ /**
* Should be "level.1.map" at all times
*
*/
- char* root_name;
+ char *root_name;
} akfs_map_v3;
/**
@@ -96,24 +102,240 @@ typedef struct {
*
*/
sha512sum rh;
+ /**
+ * Map hash
+ *
+ */
+ sha512sum mh;
} akfs_map_v4;
//typedef char[64] sha512sum_as_string;
+/**
+ * Gets maps_dir
+ * return char*
+ */
+const char* ak_fs_maps_v3_get_dir();
+
+/**
+ * Experimental
+ */
char* ak_fs_return_hash_path(char*);
+/**
+ * Experimental
+ */
char* ak_fs_return_hash_dir(char*);
+/**
+ * Verify that string looks like a SHA512 hash
+ */
bool ak_fs_verify_input_is_hash(char*);
+/**
+ * Unused
+ */
int ak_fs_create_dir_for_hash(char*);
-sha512sum ak_fs_sha512sum_string_to_struct(char*);
+/**
+ * Converts string hash to struct
+ * @param char* Hash as string
+ * @param sha512sum* Pointer to a sha512sum
+ * @returns int Status of exit
+ */
+int ak_fs_sha512sum_string_to_struct(char*, sha512sum*);
+
+/**
+ * Returns struct from string hash
+ * @param char* Hash as string
+ * @returns sha512sum* Pointer to a sha512sum
+ */
+sha512sum* ak_fs_sha512sum_from_string(char*);
+
+/**
+ * Converts hash struct to string
+ */
+void ak_fs_sha512sum_struct_to_string(sha512sum*, char*);
+
+/**
+ * Opens a map file to an akfs_map_v3 struct
+ */
+int ak_fs_open_map_v3_file(char*, akfs_map_v3*);
+
+/**
+ * Unused
+ */
+int ak_fs_map_v3_to_file(akfs_map_v3);
+
+/**
+ * Unused
+ */
+int ak_fs_convert_map_v3_string_to_struct(char *, size_t, akfs_map_v3*);
+
+/**
+ * Unused
+ */
+void ak_fs_map_v3_print_map_hash(akfs_map_v3*);
+
+/**
+ * Unused
+ */
+void ak_fs_map_v3_print_original_hash(akfs_map_v3*);
+
+/**
+ * Unused
+ */
+void ak_fs_map_v3_print_root_hash(akfs_map_v3*);
+
+/**
+ * Unused
+ */
+void ak_fs_map_v3_print_filename(akfs_map_v3*);
+
+/**
+ * Unused
+ */
+void ak_fs_map_v3_print(akfs_map_v3*);
+
+/**
+ * Unused
+ */
+int ak_fs_load_available_maps(sha512sum**, size_t, akfs_map_v3**, size_t);
+
+/**
+ * Unused
+ */
+void ak_fs_print_available_maps(sha512sum**, size_t);
+
+/**
+ * Unused
+ */
+void ak_fs_print_loaded_maps(akfs_map_v3**, size_t);
+
+/**
+ * Reads maps_dir and outputs it in an array of sha512sum
+ */
+void ak_fs_prepare_available_maps(sha512sum**, size_t);
+
+/**
+ * Unused
+ */
+void ak_fs_get_available_maps_from_fs(sha512sum**, size_t);
+
+/**
+ * Unused
+ */
+void ak_fs_print_map_all_avail(sha512sum**, size_t);
+
+/**
+ * Unused
+ */
+char* ak_fs_sha512sum_struct_read_as_string(sha512sum *);
+
+/**
+ * Unused
+ */
+void ak_fs_init_string(char *, size_t );
+
+/**
+ * Unused
+ */
+bool ak_fs_sha512sum_compare(sha512sum*, sha512sum*);
+/**
+ * Unused
+ */
+bool ak_fs_sha512sum_is_null(sha512sum*);
+/**
+ * Unused
+ */
+void ak_fs_sha512sum_init(sha512sum*);
+/**
+ * Unused
+ */
+void ak_fs_sha512sum_init_avail(sha512sum**, size_t);
+
+/**
+ * Initialize an akfs_map_v3
+ */
+void ak_fs_map_v3_init(akfs_map_v3*);
-void ak_fs_sha512sum_struct_to_string(sha512sum, char*);
+/**
+ * Initializes an array of akfs_map_v3
+ */
+void ak_fs_map_v3_init_store(akfs_map_v3**, size_t);
-int ak_fs_open_map_v3(char*);
-int ak_fs_from_map_v3_to_file(akfs_map_v3);
+/**
+ * returns: boolean
+ * param: akfs_map_v3
+ */
+bool ak_fs_map_v3_is_null(akfs_map_v3*);
+/**
+ * Unused
+ */
+char* ak_fs_map_v3_get_filename(akfs_map_v3*);
+/**
+ * Unused
+ */
+sha512sum* ak_fs_map_v3_get_map_hash(akfs_map_v3*);
+/**
+ * Unused
+ */
+sha512sum* ak_fs_map_v3_get_root_hash(akfs_map_v3*);
+/**
+ * Unused
+ */
+sha512sum* ak_fs_map_v3_get_orig_hash(akfs_map_v3*);
+/**
+ * Unused
+ */
+bool ak_fs_map_v3_compare(akfs_map_v3*, akfs_map_v3*);
+
+/**
+ * Initializes an array of akfs_map_v4
+ */
+void ak_fs_init_map_v4_store(akfs_map_v4**, size_t);
+
+
+/**
+ * Unused
+ */
+void ak_fs_map_v4_init(akfs_map_v4*);
+
+/**
+ * Initializes an array of sha512sum
+ */
+void ak_fs_init_map_avail(sha512sum**, size_t);
+
+
+/**
+ * Unused
+ */
+bool ak_fs_map_v4_compare(akfs_map_v4*, akfs_map_v4*);
+/**
+ * Unused
+ */
+bool ak_fs_map_v4_is_null(akfs_map_v4*);
+/**
+ * Unused
+ */
+char* ak_fs_map_v4_get_filename(akfs_map_v4*);
+/**
+ * Unused
+ */
+sha512sum* ak_fs_map_v4_get_map_hash(akfs_map_v4*);
+/**
+ * Unused
+ */
+sha512sum* ak_fs_map_v4_get_root_hash(akfs_map_v4*);
+/**
+ * Unused
+ */
+sha512sum* ak_fs_map_v4_get_orig_hash(akfs_map_v4*);
+
+/**
+ * Unused
+ */
+int ak_fs_ls();
#endif // AKFS