#ifndef __MM_PUBLIC_H__
#define __MM_PUBLIC_H__

#include <dirent.h>
#include <errno.h>
#include <gio/gio.h>
#include <glib.h>
#include <inttypes.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <glib-object.h>
#include <unistd.h>

#define BUFFER_SIZE 1024

#define OVL_DIR_PRE "/ostree/pkgs/ovl-"

#define ETC_LAYER_LOWER "/etc-ovl/etc-lower/"
#define ETC_LAYER_UPPER "/etc-ovl/etc-upper/"
#define ETC_LAYER_TMP_UPPER "/etc-ovl/etc-tmpupper/"
#define ETC_LAYER_WORK "/etc-ovl/etc-work/"

#define USR_LAYER_LOWER "/usr-ovl/usr-lower/"
#define USR_LAYER_UPPER "/usr-ovl/usr-upper/"
#define USR_LAYER_TMP_UPPER "/usr-ovl/usr-tmpupper/"
#define USR_LAYER_WORK "/usr-ovl/usr-work/"

#define VAR_LAYER_LOWER "/var-ovl/var-lower/lib/"
#define VAR_LAYER_UPPER "/var-ovl/var-upper/lib/"
#define VAR_LAYER_TMP_UPPER "/var-ovl/var-tmpupper/lib/"
#define VAR_LAYER_WORK "/var-ovl/var-work/lib/"

char *print_human_readable_size(uintmax_t size);
uintmax_t calculate_disk_usage(const char *path);
char *mm_get_ovl_dir_path();
gchar *get_pending_deploy_hash();
gchar *get_current_deploy_hash();

extern uintmax_t etc_size;
extern uintmax_t usr_size;
extern uintmax_t var_size;
extern uintmax_t total_size;

#endif
