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 |
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: