Hi,
A few days ago I posted a short message to hackers asking
for input concerning the definition of UIO_MAXIOV.
The definition of UIO_MAXIOV is hidden behind _KERNEL. I
have a small patch I'd like to apply to simply move the
#define outside of _KERNEL. The patch is below.
The second question I have is more standards based.
Should we consider changing UIO_MAXIOV to IOV_MAX or
_XOPEN_IOV_MAX and deprecating the 1st? I am unclear
on what the standard is for this.
Draft 4 of the Austin Group Common Specifications seems
to say:
9166 XSI {IOV_MAX}
9167 Maximum number of iovec structures that one process has
available for use with readv( ) or
9168 writev( ).
9169 Minimum Acceptable Value: {_XOPEN_IOV_MAX}
9524 XSI {_XOPEN_IOV_MAX}
9525 Maximum number of iovec structures that one process has
available for use with readv( ) or
9526 writev( ).
9694 * Under Runtime Invariant Values, {ATEXIT_MAX}, {IOV_MAX},
{PAGESIZE}, and
9695 {PAGE_SIZE} are added.
9696 * Under Minimum Values, {_XOPEN_IOV_MAX} is added.
13654 APPLICATION USAGE
13655 The implementation can put a limit on the number of
scatter/gather elements which can be |
13656 processed in one call. The symbol {IOV_MAX} defined in
<limits.h> should always be used to |
13657 learn about the limits instead of assuming a fixed value.
|
13658 RATIONALE
13659 Traditionally, the maximum number of scatter/gather elements
the system can process in one |
13660 call were descibed by the symbolic value {UIO_MAXIOV}. In
IEEE Std. 1003.1-200x this value |
13661 was replaced by the constant {IOV_MAX} which can be found in
<limits.h>. |
15151 The following symbolic constants shall be defined for
sysconf():
15198 XSI _SC_IOV_MAX
Comments welcome.
-john
Index: uio.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/uio.h,v
retrieving revision 1.12
diff -u -r1.12 uio.h
--- uio.h 2001/02/16 14:31:49 1.12
+++ uio.h 2001/05/25 02:32:50
@@ -68,11 +68,6 @@
struct proc *uio_procp;
};
-/*
- * Limits
- */
-#define UIO_MAXIOV 1024 /* max 1K of iov's */
-#define UIO_SMALLIOV 8 /* 8 on stack, else malloc */
struct vm_object;
@@ -91,6 +86,12 @@
ssize_t readv __P((int, const struct iovec *, int));
ssize_t writev __P((int, const struct iovec *, int));
__END_DECLS
+
+/*
+ * iovec array size limits
+ */
+#define UIO_MAXIOV 1024 /* max 1K of iov's */
+#define UIO_SMALLIOV 8 /* 8 on stack, else malloc */
#endif /* _KERNEL */
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message