AMD64 - Refactor uio_resid and size_t assumptions.
[dragonfly.git] / sys / sys / uio.h
index dd26f89..f2f0d2a 100644 (file)
@@ -64,12 +64,17 @@ enum uio_seg {
 /*
  * uio_td is primarily used for USERSPACE transfers, but some devices
  * like ttys may also use it to get at the process.
+ *
+ * NOTE: uio_resid: Previously used int and FreeBSD decided to use ssize_t,
+ *      but after reviewing use cases and in particular the fact that the
+ *      iov uses an unsigned quantity, DragonFly will use the (unsigned)
+ *      size_t.
  */
 struct uio {
        struct  iovec *uio_iov;
        int     uio_iovcnt;
        off_t   uio_offset;
-       int     uio_resid;
+       size_t  uio_resid;
        enum    uio_seg uio_segflg;
        enum    uio_rw uio_rw;
        struct  thread *uio_td;
@@ -89,14 +94,13 @@ struct vm_object;
 struct vm_page;
 
 void   uio_yield (void);
-int    uiomove (caddr_t, int, struct uio *);
-int    uiomove_frombuf (void *buf, int buflen, struct uio *uio);
-int     uiomove_fromphys(struct vm_page *ma[], vm_offset_t offset, int n,
-                           struct uio *uio);
-int    uiomoveco (caddr_t, int, struct uio *, struct vm_object *);
+int    uiomove (caddr_t, size_t, struct uio *);
+int    uiomove_frombuf (void *buf, size_t buflen, struct uio *uio);
+int     uiomove_fromphys(struct vm_page *ma[], vm_offset_t offset,
+                           size_t n, struct uio *uio);
 int    uioread (int, struct uio *, struct vm_object *, int *);
 int    iovec_copyin(struct iovec *, struct iovec **, struct iovec *,
-                           size_t, int *);
+                           size_t, size_t *);
 
 /*
  * MPSAFE