Author: emaste
Date: Tue Jun 30 13:38:49 2009
New Revision: 195191
URL: http://svn.freebsd.org/changeset/base/195191

Log:
  Add FIONSPACE from NetBSD.  FIONSPACE is provided so that programs may
  easily determine how much space is left in the send queue; they do not
  need to know the send queue size.
  
  NetBSD revisions:
    sys_socket.c r1.41, 1.42
    filio.h r1.9
  
  Obtained from:        NetBSD
  Approved by:  re (kensmith)

Modified:
  head/sys/kern/sys_socket.c
  head/sys/sys/filio.h

Modified: head/sys/kern/sys_socket.c
==============================================================================
--- head/sys/kern/sys_socket.c  Tue Jun 30 13:38:14 2009        (r195190)
+++ head/sys/kern/sys_socket.c  Tue Jun 30 13:38:49 2009        (r195191)
@@ -174,6 +174,14 @@ soo_ioctl(struct file *fp, u_long cmd, v
                *(int *)data = so->so_snd.sb_cc;
                break;
 
+       case FIONSPACE:
+               if ((so->so_snd.sb_hiwat < so->so_snd.sb_cc) ||
+                   (so->so_snd.sb_mbmax < so->so_snd.sb_mbcnt))
+                       *(int *)data = 0;
+               else
+                       *(int *)data = sbspace(&so->so_snd);
+               break;
+
        case FIOSETOWN:
                error = fsetown(*(int *)data, &so->so_sigio);
                break;

Modified: head/sys/sys/filio.h
==============================================================================
--- head/sys/sys/filio.h        Tue Jun 30 13:38:14 2009        (r195190)
+++ head/sys/sys/filio.h        Tue Jun 30 13:38:49 2009        (r195191)
@@ -56,6 +56,7 @@ struct fiodgname_arg {
 };
 #define        FIODGNAME       _IOW('f', 120, struct fiodgname_arg) /* get 
dev. name */
 #define        FIONWRITE       _IOR('f', 119, int)     /* get # bytes (yet) to 
write */
+#define        FIONSPACE       _IOR('f', 118, int)     /* get space in send 
queue */
 /* Handle lseek SEEK_DATA and SEEK_HOLE for holey file knowledge. */
 #define        FIOSEEKDATA     _IOWR('f', 97, off_t)   /* SEEK_DATA */
 #define        FIOSEEKHOLE     _IOWR('f', 98, off_t)   /* SEEK_HOLE */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to