Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


uio.h
01: /* Copyright (C) 1996, 1997, 2006, 2011 Free Software Foundation, Inc.
02:    This file is part of the GNU C Library.
03: 
04:    The GNU C Library is free software; you can redistribute it and/or
05:    modify it under the terms of the GNU Lesser General Public
06:    License as published by the Free Software Foundation; either
07:    version 2.1 of the License, or (at your option) any later version.
08: 
09:    The GNU C Library is distributed in the hope that it will be useful,
10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12:    Lesser General Public License for more details.
13: 
14:    You should have received a copy of the GNU Lesser General Public
15:    License along with the GNU C Library; if not, write to the Free
16:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17:    02111-1307 USA.  */
18: 
19: #if !defined _SYS_UIO_H && !defined _FCNTL_H
20: # error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
21: #endif
22: 
23: #ifndef _BITS_UIO_H
24: #define _BITS_UIO_H     1
25: 
26: #include <sys/types.h>
27: 
28: 
29: /* We should normally use the Linux kernel header file to define this
30:    type and macros but this calls for trouble because of the header
31:    includes other kernel headers.  */
32: 
33: /* Size of object which can be written atomically.
34: 
35:    This macro has different values in different kernel versions.  The
36:    latest versions of the kernel use 1024 and this is good choice.  Since
37:    the C library implementation of readv/writev is able to emulate the
38:    functionality even if the currently running kernel does not support
39:    this large value the readv/writev call will not fail because of this.  */
40: #define UIO_MAXIOV      1024
41: 
42: 
43: /* Structure for scatter/gather I/O.  */
44: struct iovec
45:   {
46:     void *iov_base;     /* Pointer to data.  */
47:     size_t iov_len;     /* Length of data.  */
48:   };
49: 
50: #endif
51: 
52: #if defined _SYS_UIO_H && !defined _BITS_UIO_H_FOR_SYS_UIO_H
53: #define _BITS_UIO_H_FOR_SYS_UIO_H 1
54: 
55: __BEGIN_DECLS
56: 
57: /* Read from another process' address space.  */
58: extern ssize_t process_vm_readv (pid_t __pid, __const struct iovec *__lvec,
59:                                  unsigned long int __liovcnt,
60:                                  __const struct iovec *__rvec,
61:                                  unsigned long int __riovcnt,
62:                                  unsigned long int __flags)
63:   __THROW;
64: 
65: /* Write to another process' address space.  */
66: extern ssize_t process_vm_writev (pid_t __pid, __const struct iovec *__lvec,
67:                                   unsigned long int __liovcnt,
68:                                   __const struct iovec *__rvec,
69:                                   unsigned long int __riovcnt,
70:                                   unsigned long int __flags)
71:   __THROW;
72: 
73: __END_DECLS
74: 
75: #endif
76: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/