#ifndef FSSVC_PRIV_H
#define FSSVC_PRIV_H

#include <fcntl.h>  // for mode_t
#include <time.h>   // for time_t
#include "fslib/fssvc.h"

int fssvc_init(plist_idx_t plist_idx, setattr_t settatr_cb,
    getattr_t getattr_cb);
int fssvc_add_path(const char *path);
int fssvc_add_path_ex(const char *path);
int fssvc_add_path_list(const char *list);
int fssvc_seal(void);
int fssvc_open(int id, const char *path, int flags);
int fssvc_creat(int id, const char *path, int flags, mode_t mode);
void *fssvc_open_async(int id, const char *path, int flags);
int fssvc_async_getfd(void *handle);
int fssvc_unlink(int id, const char *path);
int fssvc_setxattr(int id, const char *path, int attr);
int fssvc_getxattr(int id, const char *path);
int fssvc_rename(int id1, const char *path1, int id2, const char *path2);
int fssvc_mkdir(int id, const char *path, mode_t mode);
int fssvc_rmdir(int id, const char *path);
int fssvc_utime(int id, const char *path, time_t atime, time_t mtime);
int fssvc_path_ok(int id, const char *path);
int fssvc_exit(void);

int fssvc_shm_open(const char *name, int oflag, mode_t mode);
int fssvc_shm_unlink(const char *name);
int fssvc_set_command(int subsys, int cookie, const char *cmd);
int fssvc_popen(int subsys, int id, const char *path, int cookie,
    struct popen2 *file);
int fssvc_popen_knownpath(int subsys, int cookie, struct popen2 *file);
int fssvc_waitpid(int pid, int *status);
int fssvc_debug(int id, const char *file);

#endif
