kernel/extp{read,write}v: Change ioccnt from u_int to int.
authorSascha Wildner <saw@online.de>
Tue, 6 Mar 2018 07:46:34 +0000 (08:46 +0100)
committerSascha Wildner <saw@online.de>
Tue, 6 Mar 2018 07:46:34 +0000 (08:46 +0100)
Just like preadv(), pwritev(). Struct uio's uio_ioccnt is also int.
Also adjust iovec_copyin() to take an int.

While here, make iovec const, also like in preadv/pwritev.

Discussed-with: dillon

include/unistd.h
sys/kern/kern_subr.c
sys/kern/syscalls.master
sys/sys/sysproto.h
sys/sys/uio.h

index c7f5fe8..0db64ef 100644 (file)
@@ -537,9 +537,9 @@ int  exect(const char *, char * const *, char * const *);
 int     execvP(const char *, const char *, char * const *);
 void    extexit(int, int, void *);
 ssize_t         extpread(int, void *, size_t, int, off_t);
-ssize_t         extpreadv(int, const struct iovec *, u_int, int, off_t);
+ssize_t         extpreadv(int, const struct iovec *, int, int, off_t);
 ssize_t         extpwrite(int, const void *, size_t, int, off_t);
-ssize_t         extpwritev(int, const struct iovec *, u_int, int, off_t);
+ssize_t         extpwritev(int, const struct iovec *, int, int, off_t);
 char   *fflagstostr(u_long);
 int     getdomainname(char *, int);
 int     getgrouplist(const char *, gid_t, gid_t *, int *);
index cb793a5..6f3e1f5 100644 (file)
@@ -445,14 +445,14 @@ phashinit_ext(int elements, size_t size, struct malloc_type *type,
  * MPSAFE
  */
 int
-iovec_copyin(struct iovec *uiov, struct iovec **kiov, struct iovec *siov,
-            size_t iov_cnt, size_t *iov_len)
+iovec_copyin(const struct iovec *uiov, struct iovec **kiov, struct iovec *siov,
+            int iov_cnt, size_t *iov_len)
 {
        struct iovec *iovp;
        int error, i;
        size_t len;
 
-       if (iov_cnt > UIO_MAXIOV)
+       if ((u_int)iov_cnt > UIO_MAXIOV)
                return EMSGSIZE;
        if (iov_cnt > UIO_SMALLIOV) {
                *kiov = kmalloc(sizeof(struct iovec) * iov_cnt, M_IOV,
index 21351da..f43e56d 100644 (file)
 287    UNIMPL  nosys
 288    UNIMPL  nosys
 ; 289 and 290 from NetBSD (OpenBSD: 267 and 268)
-289    STD     { ssize_t extpreadv(int fd, struct iovec *iovp, \
-                                 u_int iovcnt, int flags, off_t offset); }
-290    STD     { ssize_t extpwritev(int fd, struct iovec *iovp,\
-                                 u_int iovcnt, int flags, off_t offset); }
+289    STD     { ssize_t extpreadv(int fd, const struct iovec *iovp, \
+                                 int iovcnt, int flags, off_t offset); }
+290    STD     { ssize_t extpwritev(int fd, const struct iovec *iovp, \
+                                 int iovcnt, int flags, off_t offset); }
 291    UNIMPL  nosys
 292    UNIMPL  nosys
 293    UNIMPL  nosys
index 73f9541..0cfaa01 100644 (file)
@@ -1183,8 +1183,8 @@ struct    extpreadv_args {
        struct sysmsg sysmsg;
 #endif
        int     fd;     char fd_[PAD_(int)];
-       struct iovec *  iovp;   char iovp_[PAD_(struct iovec *)];
-       u_int   iovcnt; char iovcnt_[PAD_(u_int)];
+       const struct iovec *    iovp;   char iovp_[PAD_(const struct iovec *)];
+       int     iovcnt; char iovcnt_[PAD_(int)];
        int     flags;  char flags_[PAD_(int)];
        off_t   offset; char offset_[PAD_(off_t)];
 };
@@ -1193,8 +1193,8 @@ struct    extpwritev_args {
        struct sysmsg sysmsg;
 #endif
        int     fd;     char fd_[PAD_(int)];
-       struct iovec *  iovp;   char iovp_[PAD_(struct iovec *)];
-       u_int   iovcnt; char iovcnt_[PAD_(u_int)];
+       const struct iovec *    iovp;   char iovp_[PAD_(const struct iovec *)];
+       int     iovcnt; char iovcnt_[PAD_(int)];
        int     flags;  char flags_[PAD_(int)];
        off_t   offset; char offset_[PAD_(off_t)];
 };
index e5c19e6..aca9068 100644 (file)
@@ -102,8 +102,8 @@ 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, size_t *);
+int    iovec_copyin(const struct iovec *, struct iovec **, struct iovec *,
+                           int, size_t *);
 
 /*
  * MPSAFE