summaryrefslogtreecommitdiffstats
path: root/include/sys/uio.h
diff options
context:
space:
mode:
authorbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>2008-03-13 19:49:09 +0000
committerbehlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c>2008-03-13 19:49:09 +0000
commit73e540a0d1cc4fa686de9bd14875cb218d6a9bb1 (patch)
treea8012ceac97f112ea73ca70c5d311a9fa5f70cc9 /include/sys/uio.h
parent36e6f86146432207789a0e2027edf8d52326bad7 (diff)
Drop unicode support, provided in ZFS tree libport
Update uio support git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@42 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
Diffstat (limited to 'include/sys/uio.h')
-rw-r--r--include/sys/uio.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/include/sys/uio.h b/include/sys/uio.h
index 6da4d34ed..0ef7aab63 100644
--- a/include/sys/uio.h
+++ b/include/sys/uio.h
@@ -1,11 +1,46 @@
#ifndef _SPL_UIO_H
#define _SPL_UIO_H
+#include <linux/uio.h>
+#include <asm/uaccess.h>
+#include <sys/types.h>
+
typedef enum uio_rw {
UIO_READ = 0,
UIO_WRITE = 1,
} uio_rw_t;
-#define UIO_SYSSPACE 1
+typedef enum uio_seg {
+ UIO_USERSPACE = 0,
+ UIO_SYSSPACE = 1,
+ UIO_USERISPACE =2,
+} uio_seg_t;
+
+typedef struct uio {
+ struct iovec *uio_iov; /* pointer to array of iovecs */
+ int uio_iovcnt; /* number of iovecs */
+ offset_t uio_loffset; /* file offset */
+ uio_seg_t uio_segflg; /* address space (kernel or user) */
+ uint16_t uio_fmode; /* file mode flags */
+ uint16_t uio_extflg; /* extended flags */
+ offset_t uio_limit; /* u-limit (maximum byte offset) */
+ ssize_t uio_resid; /* residual count */
+} uio_t;
+
+typedef struct aio_req {
+ uio_t *aio_uio; /* UIO for this request */
+ void *aio_private;
+} aio_req_t;
+
+/* XXX: Must be fully implemented when ZVOL is needed, for reference:
+ * http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/move.c
+ */
+#if 0
+static __inline__ int
+uiomove(void *p, size_t n, enum uio_rw rw, struct uio *uio)
+{
+ return 0;
+}
+#endif
#endif /* SPL_UIO_H */