| Current File : //usr/include/libshadowfs.h |
/*
* Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
*/
#ifndef _LIBSHADOWFS_H
#define _LIBSHADOWFS_H
#include <sys/types.h>
#include <sys/list.h>
#include <stdarg.h>
#include <synch.h>
#include <paths.h>
#include <libscf.h>
#include <libscf_priv.h>
#include <libshadowfs_impl.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct shadow_conspiracy shadow_conspiracy_t;
#define SHADOWD_INST_NAME "system/filesystem/shadowd:default"
#define SHADOWD_INST_FMRI \
SCF_FMRI_SVC_PREFIX SCF_FMRI_SERVICE_PREFIX SHADOWD_INST_NAME
extern boolean_t shadow_migrate_done(shadow_handle_t *);
extern int shadow_migrate_iter(shadow_handle_t *,
void (*)(const char *, void *), void *);
extern void shadow_migrate_delay(shadow_handle_t *, uint32_t);
extern void *shadow_migrate_read_fidlist(int, const size_t, size_t *);
extern shadow_conspiracy_t *shadcons_init(const char *);
extern int shadcons_enable_output(shadow_conspiracy_t *, const char *,
boolean_t);
extern void shadcons_disable_output(shadow_conspiracy_t *);
extern size_t shadcons_hash_count(shadow_conspiracy_t *);
extern const char *shadcons_hashentry_dataset(shadow_conspiracy_t *, void *);
extern void *shadcons_hash_first(shadow_conspiracy_t *);
extern void *shadcons_hash_next(shadow_conspiracy_t *, void *);
extern void shadcons_hash_remove(shadow_conspiracy_t *, void *);
extern void shadcons_fini(shadow_conspiracy_t *);
extern void shadcons_lock(shadow_conspiracy_t *);
extern void shadcons_unlock(shadow_conspiracy_t *);
extern int shadcons_bounded_fn(shadow_conspiracy_t *, int (*workfn)(void*),
void *, uint64_t, int (*canaryfn)(void*), void *, uint64_t);
extern void shadcons_stop(shadow_conspiracy_t *, const char *);
extern int shadcons_cancel(shadow_conspiracy_t *, const char *);
extern int shadcons_svc_refresh(shadow_conspiracy_t *);
extern int shadcons_svc_start(shadow_conspiracy_t *);
extern int shadcons_svc_stop(shadow_conspiracy_t *);
extern int shadcons_start(shadow_conspiracy_t *, const char *, const char *,
const char *, boolean_t *);
extern nvlist_t *shadcons_status_all(shadow_conspiracy_t *, int *);
extern nvlist_t *shadcons_status(shadow_conspiracy_t *, const char *, int *);
extern nvlist_t *shadcons_errors(shadow_conspiracy_t *, const char *, int *);
extern nvlist_t *shadcons_errors_all(shadow_conspiracy_t *, int *);
extern boolean_t shadcons_quiesce_all(shadow_conspiracy_t *);
extern void shadcons_resume_all(shadow_conspiracy_t *);
extern void shadcons_dprintf(shadow_conspiracy_t *, const char *, ...);
extern void shadcons_warn(shadow_conspiracy_t *, const char *, ...);
extern uint64_t shadcons_mount_timeout(shadow_conspiracy_t *);
extern uint64_t shadcons_mount_retry_wait(shadow_conspiracy_t *);
extern uint64_t shadcons_mount_max_retry_wait(shadow_conspiracy_t *);
extern uint64_t shadcons_mount_freq(shadow_conspiracy_t *);
extern int shadow_mntent_match(FILE *, boolean_t, struct mnttab *,
struct mnttab *);
extern char *shadow_mntent_extract_src(shadow_conspiracy_t *,
struct mnttab *);
#ifdef __cplusplus
}
#endif
#endif /* _LIBSHADOWFS_H */