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
[EMAIL PROTECTED]
==== //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)

Reply via email to