Date: Sun, 7 Jul 2002 20:44:55 -0600 From: "Kenneth D. Merry" <ken@kdm.org> To: Bruce Evans <bde@zeta.org.au> Cc: Alexander Leidinger <Alexander@Leidinger.net>, current@FreeBSD.ORG Subject: Re: buildkernel error with ENABLE_VFS_IOOPT/ZERO_COPY_SOCKETS Message-ID: <20020707204455.A62060@panzer.kdm.org> In-Reply-To: <20020708074116.T13321-100000@gamplex.bde.org>; from bde@zeta.org.au on Mon, Jul 08, 2002 at 07:52:22AM %2B1000 References: <200207071607.g67G78JX076844@Magelan.Leidinger.net> <20020708074116.T13321-100000@gamplex.bde.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
On Mon, Jul 08, 2002 at 07:52:22 +1000, Bruce Evans wrote:
> On Sun, 7 Jul 2002, Alexander Leidinger wrote:
>
> > -current from today fails in kern/kern_subr.c:
> >
> > ../../../kern/kern_subr.c:220: warning: function declaration isn't a prototype
> >
> > ---snip---
> > #if defined(ENABLE_VFS_IOOPT) || defined(ZERO_COPY_SOCKETS)
> > /*
> > * Experimental support for zero-copy I/O
> > */
> > static int
> > userspaceco(cp, cnt, uio, obj, disposable)
> > caddr_t cp;
> > u_int cnt;
> > struct uio *uio;
> > struct vm_object *obj;
> > int disposable;
> > {
> > ---snip---
>
> This happens when ENABLE_VFS_IOOPT is configured by ZERO_COPY_SOCKETS is
> not configured.
>
> I don't like the #includes and declarations being in an unusual order
> just to avoid ifdefs.
The attached patch should fix both issues.
Let me know whether this fixes it for you.
Ken
--
Kenneth Merry
ken@kdm.org
[-- Attachment #2 --]
==== //depot/FreeBSD-zero/src/sys/kern/kern_subr.c#15 - /usr/home/ken/perforce/FreeBSD-zero/src/sys/kern/kern_subr.c ====
*** /tmp/tmp.40864.0 Sun Jul 7 20:44:13 2002
--- /usr/home/ken/perforce/FreeBSD-zero/src/sys/kern/kern_subr.c Sun Jul 7 20:43:57 2002
***************
*** 56,87 ****
#include <vm/vm.h>
#include <vm/vm_page.h>
#include <vm/vm_map.h>
SYSCTL_INT(_kern, KERN_IOV_MAX, iov_max, CTLFLAG_RD, NULL, UIO_MAXIOV,
"Maximum number of elements in an I/O vector; sysconf(_SC_IOV_MAX)");
! #ifdef ZERO_COPY_SOCKETS
! #include <vm/vm.h>
! #include <vm/vm_param.h>
! #include <sys/lock.h>
! #include <vm/pmap.h>
! #include <vm/vm_map.h>
! #include <vm/vm_page.h>
! #include <vm/vm_object.h>
! #include <vm/vm_pager.h>
! #include <vm/vm_kern.h>
! #include <vm/vm_extern.h>
! #include <vm/swap_pager.h>
! #include <sys/mbuf.h>
! #include <machine/cpu.h>
/* Declared in uipc_socket.c */
extern int so_zero_copy_receive;
static int vm_pgmoveco(vm_map_t mapa, vm_object_t srcobj, vm_offset_t kaddr,
vm_offset_t uaddr);
- static int userspaceco(caddr_t cp, u_int cnt, struct uio *uio,
- struct vm_object *obj, int disposable);
static int
vm_pgmoveco(mapa, srcobj, kaddr, uaddr)
--- 56,82 ----
#include <vm/vm.h>
#include <vm/vm_page.h>
#include <vm/vm_map.h>
+ #ifdef ZERO_COPY_SOCKETS
+ #include <vm/vm_param.h>
+ #endif /* ZERO_COPY_SOCKETS */
+ #if defined(ZERO_COPY_SOCKETS) || defined(ENABLE_VFS_IOOPT)
+ #include <vm/vm_object.h>
+ #endif
SYSCTL_INT(_kern, KERN_IOV_MAX, iov_max, CTLFLAG_RD, NULL, UIO_MAXIOV,
"Maximum number of elements in an I/O vector; sysconf(_SC_IOV_MAX)");
! #if defined(ZERO_COPY_SOCKETS) || defined(ENABLE_VFS_IOOPT)
! static int userspaceco(caddr_t cp, u_int cnt, struct uio *uio,
! struct vm_object *obj, int disposable);
! #endif /* ZERO_COPY_SOCKETS || ENABLE_VFS_IOOPT */
+ #ifdef ZERO_COPY_SOCKETS
/* Declared in uipc_socket.c */
extern int so_zero_copy_receive;
static int vm_pgmoveco(vm_map_t mapa, vm_object_t srcobj, vm_offset_t kaddr,
vm_offset_t uaddr);
static int
vm_pgmoveco(mapa, srcobj, kaddr, uaddr)
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020707204455.A62060>
