uio.h: Move definition of struct iovec to <sys/_iovec.h>.
authorSascha Wildner <saw@online.de>
Mon, 16 Feb 2009 00:12:07 +0000 (01:12 +0100)
committerSascha Wildner <saw@online.de>
Mon, 16 Feb 2009 00:12:07 +0000 (01:12 +0100)
* Make iov_base a void * and fix a resulting warning in lpr(1).

* Include <sys/_iovec.h> in <sys/socket.h>.

Taken-from: FreeBSD

sys/sys/_iovec.h [new file with mode: 0644]
sys/sys/socket.h
sys/sys/uio.h
usr.sbin/lpr/common_source/rmjob.c

diff --git a/sys/sys/_iovec.h b/sys/sys/_iovec.h
new file mode 100644 (file)
index 0000000..1fafc23
--- /dev/null
@@ -0,0 +1,48 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993, 1994
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)uio.h       8.5 (Berkeley) 2/22/94
+ * $FreeBSD: src/sys/sys/_iovec.h,v 1.4 2005/01/07 02:29:23 imp Exp $
+ */
+
+#ifndef _SYS__IOVEC_H_
+#define        _SYS__IOVEC_H_
+
+#include <sys/types.h>
+
+#ifndef _SIZE_T_DECLARED
+typedef        __size_t        size_t;
+#define        _SIZE_T_DECLARED
+#endif
+
+struct iovec {
+       void    *iov_base;      /* Base address. */
+       size_t   iov_len;       /* Length. */
+};
+
+#endif /* !_SYS__IOVEC_H_ */
index 2430e04..8515b14 100644 (file)
@@ -38,6 +38,8 @@
 #ifndef _SYS_SOCKET_H_
 #define        _SYS_SOCKET_H_
 
+#include <sys/_iovec.h>
+
 #ifndef _SYS_TYPES_H_
 #include <sys/types.h>
 #endif
index e325beb..dd26f89 100644 (file)
@@ -38,6 +38,8 @@
 #ifndef _SYS_UIO_H_
 #define        _SYS_UIO_H_
 
+#include <sys/_iovec.h>
+
 #ifndef _SYS_TYPES_H_
 #include <sys/types.h>
 #endif
 #include <sys/malloc.h>                /* Needed to inline iovec_free(). */
 #endif
 
-/*
- * XXX
- * iov_base should be a void *.
- */
-struct iovec {
-       char    *iov_base;      /* Base address. */
-       size_t   iov_len;       /* Length. */
-};
-
 enum   uio_rw { UIO_READ, UIO_WRITE };
 
 /* Segment flag values. */
index 964066e..72ed5d2 100644 (file)
@@ -345,7 +345,7 @@ rmremote(const struct printer *pp)
        }
        firstreq = elem;
        for (i = 0; i < requests; i++) {
-               asprintf(&iov[elem].iov_base, " %d", requ[i]);
+               asprintf((char **)&iov[elem].iov_base, " %d", requ[i]);
                if (iov[elem].iov_base == 0)
                        fatal(pp, "out of memory in rmremote()");
                elem++;