summaryrefslogtreecommitdiffstats
path: root/lib/libspl/include/libshare.h
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2010-12-16 13:47:30 -0800
committerBrian Behlendorf <[email protected]>2011-02-04 16:14:29 -0800
commitc5d915f4237bbd1f5623b5044a1924a3cb91852b (patch)
treeb5896a1029ca271541d70a2ba9037f43d98caf2d /lib/libspl/include/libshare.h
parent3fb1fcdea167d705e050a0383ec61b95fbe8a0ed (diff)
Minimal libshare infrastructure
ZFS even under Solaris does not strictly require libshare to be available. The current implementation attempts to dlopen() the library to access the needed symbols. If this fails libshare support is simply disabled. This means that on Linux we only need the most minimal libshare implementation. In fact just enough to prevent the build from failing. Longer term we can decide if we want to implement a libshare library like Solaris. At best this would be an abstraction layer between ZFS and NFS/SMB. Alternately, we can drop libshare entirely and directly integrate ZFS with Linux's NFS/SMB. Finally the bare bones user-libshare.m4 test was dropped. If we do decide to implement libshare at some point it will surely be as part of this package so the check is not needed.
Diffstat (limited to 'lib/libspl/include/libshare.h')
-rw-r--r--lib/libspl/include/libshare.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/libspl/include/libshare.h b/lib/libspl/include/libshare.h
index afbdf5b05..f1fbfad2b 100644
--- a/lib/libspl/include/libshare.h
+++ b/lib/libspl/include/libshare.h
@@ -23,12 +23,20 @@
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-
-/*
- * basic API declarations for share management
- */
-
#ifndef _LIBSPL_LIBSHARE_H
#define _LIBSPL_LIBSHARE_H
+typedef void *sa_handle_t; /* opaque handle to access core functions */
+typedef void *sa_group_t;
+typedef void *sa_share_t;
+
+/* API Initialization */
+#define SA_INIT_SHARE_API 0x0001 /* init share specific interface */
+#define SA_INIT_CONTROL_API 0x0002 /* init control specific interface */
+
+/* Error values */
+#define SA_OK 0
+#define SA_NO_MEMORY 2 /* no memory for data structures */
+#define SA_CONFIG_ERR 6 /* system configuration error */
+
#endif /* _LIBSPL_LIBSHARE_H */