1 /* SPDX-License-Identifier: LGPL-2.1-or-later */ 2 #pragma once 3 4 #include <stdbool.h> 5 6 #include "sd-bus.h" 7 8 #include "time-util.h" 9 #include "user-record.h" 10 11 /* Put some limits on disk sizes: not less than 5M, not more than 5T */ 12 #define USER_DISK_SIZE_MIN (UINT64_C(5)*1024*1024) 13 #define USER_DISK_SIZE_MAX (UINT64_C(5)*1024*1024*1024*1024) 14 15 /* The default disk size to use when nothing else is specified, relative to free disk space. We calculate 16 * this from the default rebalancing weights, so that what we create initially doesn't immediately require 17 * rebalancing. */ 18 #define USER_DISK_SIZE_DEFAULT_PERCENT ((unsigned) ((100 * REBALANCE_WEIGHT_DEFAULT) / (REBALANCE_WEIGHT_DEFAULT + REBALANCE_WEIGHT_BACKING))) 19 20 /* This should be 83% right now, i.e. 100 of (100 + 20). Let's protect us against accidental changes. */ 21 assert_cc(USER_DISK_SIZE_DEFAULT_PERCENT == 83U); 22 23 bool suitable_user_name(const char *name); 24 int suitable_realm(const char *realm); 25 int suitable_image_path(const char *path); 26 27 bool supported_fstype(const char *fstype); 28 29 int split_user_name_realm(const char *t, char **ret_user_name, char **ret_realm); 30 31 int bus_message_append_secret(sd_bus_message *m, UserRecord *secret); 32 33 /* Many of our operations might be slow due to crypto, fsck, recursive chown() and so on. For these 34 * operations permit a *very* long timeout */ 35 #define HOME_SLOW_BUS_CALL_TIMEOUT_USEC (2*USEC_PER_MINUTE) 36 37 const char *home_record_dir(void); 38