#ifndef VFS_SYSCTL_H
#define VFS_SYSCTL_H
#include <c.h>
#define AUTOFS_CTL_GETREQS 0x0001
#define AUTOFS_CTL_SERVREQ 0x0002
#define AUTOFS_CTL_MOUNTER 0x0003
#define AUTOFS_CTL_TRIGGER 0x0004
#ifdef __APPLE_API_PRIVATE
#define AUTOFS_CTL_DEBUG 0x0005
#endif
#define AUTOFS_PROTOVERS 0x02
struct autofs_userreq {
char au_name[PATH_MAX];
ino_t au_dino;
ino_t au_ino;
pid_t au_pid;
uid_t au_uid;
gid_t au_gid;
int au_flags;
int au_errno;
int au_pad[16];
};
struct autofs_mounterreq {
ino_t amu_ino;
pid_t amu_pid;
uid_t amu_uid;
int amu_flags;
int amu_pad[15];
};
#define AUTOFS_MOUNTERREQ_UID 0x01
#define AUTOFS_MOUNTERREQ_DEFER 0x0002
int vfsevent_init(void);
u_int vfsevent_wait(int , int);
int sysctl_fsid(int, fsid_t *, void *, size_t *, void *, size_t);
size_t get_vfslist(fsid_t **);
int create_vfslist(fsid_t **, int *);
void free_vfslist(fsid_t *);
size_t update_fsstat_array(struct statfs **);
int find_fsstat_by_path(const char *path, bool exact_match, struct statfs **sfsp);
void invalidate_fsstat_array(void);
int revalidate_fsstat_array(struct statfs **sfsp);
int sysctl_statfs(fsid_t *, struct statfs *, int);
int sysctl_queryfs(fsid_t *, struct vfsquery *);
int sysctl_unmount(fsid_t *, int);
int sysctl_setfstimeout(fsid_t *, int);
int sysctl_getfstimeout(fsid_t *, int *);
#endif