#pragma once #include "base_types.h" #include #include #include #include #define FUSE_CFG_INVALID_ID -1 #define FUSE_CFG_INVALID_UMASK -1 struct fuse_cfg_t { template using sp = std::shared_ptr; s64 uid = FUSE_CFG_INVALID_ID; bool valid_uid() const; s64 gid = FUSE_CFG_INVALID_ID; bool valid_gid() const; s64 umask = FUSE_CFG_INVALID_UMASK; bool valid_umask() const; s64 remember_nodes = 0; bool debug = false; std::shared_ptr log_file() const; void log_file(std::shared_ptr); std::shared_ptr log_filepath() const; void log_filepath(const std::string &); private: std::shared_ptr _log_file = sp(stderr,[](FILE*){}); std::shared_ptr _log_filepath = sp(); public: int max_background = 0; int congestion_threshold = 0; u32 max_pages = 32; int passthrough_max_stack_depth = 1; int read_thread_count = 0; int process_thread_count = -1; int process_thread_queue_depth = 2; std::string pin_threads = "false"; }; extern fuse_cfg_t fuse_cfg;