61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
|
|
#ifndef AMDUATD_SPACE_DOCTOR_H
|
||
|
|
#define AMDUATD_SPACE_DOCTOR_H
|
||
|
|
|
||
|
|
#include "amduat/asl/asl_pointer_fs.h"
|
||
|
|
#include "amduat/asl/core.h"
|
||
|
|
#include "amduat/asl/store.h"
|
||
|
|
#include "amduatd_caps.h"
|
||
|
|
#include "amduatd_fed.h"
|
||
|
|
#include "amduatd_store.h"
|
||
|
|
|
||
|
|
#include <stdbool.h>
|
||
|
|
#include <stddef.h>
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
AMDUATD_DOCTOR_OK = 0,
|
||
|
|
AMDUATD_DOCTOR_WARN = 1,
|
||
|
|
AMDUATD_DOCTOR_FAIL = 2,
|
||
|
|
AMDUATD_DOCTOR_SKIPPED = 3
|
||
|
|
} amduatd_space_doctor_status_t;
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
char *name;
|
||
|
|
amduatd_space_doctor_status_t status;
|
||
|
|
char *detail;
|
||
|
|
} amduatd_space_doctor_check_t;
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
bool scoped;
|
||
|
|
char space_id[AMDUAT_ASL_POINTER_NAME_MAX + 1u];
|
||
|
|
amduatd_store_backend_t backend;
|
||
|
|
amduatd_space_doctor_check_t *checks;
|
||
|
|
size_t checks_len;
|
||
|
|
size_t ok_count;
|
||
|
|
size_t warn_count;
|
||
|
|
size_t fail_count;
|
||
|
|
size_t skipped_count;
|
||
|
|
} amduatd_space_doctor_report_t;
|
||
|
|
|
||
|
|
bool amduatd_space_doctor_run(amduat_asl_store_t *store,
|
||
|
|
amduat_asl_pointer_store_t *pointer_store,
|
||
|
|
const amduatd_space_t *effective_space,
|
||
|
|
const amduatd_cfg_t *cfg,
|
||
|
|
const amduatd_fed_cfg_t *fed_cfg,
|
||
|
|
amduatd_space_doctor_report_t *out_report);
|
||
|
|
|
||
|
|
bool amduatd_space_doctor_report_json(
|
||
|
|
const amduatd_space_doctor_report_t *report,
|
||
|
|
char **out_json);
|
||
|
|
|
||
|
|
void amduatd_space_doctor_report_free(amduatd_space_doctor_report_t *report);
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
} /* extern "C" */
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* AMDUATD_SPACE_DOCTOR_H */
|