1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright 2013 Damian Bogel. All rights reserved. 14 */ 15 16 #ifndef _LIBFSD_H 17 #define _LIBFSD_H 18 19 #include <sys/fsd.h> 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 typedef struct fsd_handle { 26 int fd; 27 int fsd_errno; 28 int errno; 29 } fsd_handle_t; 30 31 #define EFSD_NOERROR 0 32 #define EFSD_BAD_PARAM 1 33 #define EFSD_CANT_OPEN_DRIVER 2 34 #define EFSD_CANT_OPEN_MOUNTPOINT 3 35 #define EFSD_ENTRY_NOT_FOUND 4 36 #define EFSD_FAULT 5 37 #define EFSD_NOT_ENABLED 6 38 #define EFSD_TOO_MANY_HOOKS 7 39 #define EFSD_INTERNAL 8 40 #define EFSD_UNKNOWN_ERROR 9 41 42 extern const char *fsd_strerr(int e); 43 44 extern int fsd_open(fsd_handle_t *handle); 45 extern void fsd_close(fsd_handle_t *handle); 46 47 extern int fsd_enable(fsd_handle_t *handle); 48 extern int fsd_disable(fsd_handle_t *handle); 49 50 extern int fsd_get_param(fsd_handle_t *handle, const char *mnt_path, 51 fsd_t *param); 52 extern int fsd_disturb(fsd_handle_t *handle, const char *mnt_path, 53 fsd_t *param); 54 extern int fsd_disturb_off(fsd_handle_t *handle, const char *mnt_path); 55 56 extern int fsd_disturb_omni(fsd_handle_t *handle, fsd_t *param); 57 extern int fsd_disturb_omni_off(fsd_handle_t *handle); 58 59 60 extern int fsd_get_info(fsd_handle_t *handle, fsd_info_t *info); 61 extern int fsd_get_list(fsd_handle_t *handle, fsd_fs_t *fslist, int *count); 62 63 #ifdef __cplusplus 64 } 65 #endif 66 67 #endif /* _LIBFSD_H */