1 /* Substitute for <sys/uio.h>. 2 Copyright (C) 2011-2021 Free Software Foundation, Inc. 3 4 This file is free software: you can redistribute it and/or modify 5 it under the terms of the GNU Lesser General Public License as 6 published by the Free Software Foundation; either version 2.1 of the 7 License, or (at your option) any later version. 8 9 This file 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 12 GNU Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public License 15 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 16 17 # if __GNUC__ >= 3 18 @PRAGMA_SYSTEM_HEADER@ 19 # endif 20 @PRAGMA_COLUMNS@ 21 22 #ifndef _@GUARD_PREFIX@_SYS_UIO_H 23 24 #if @HAVE_SYS_UIO_H@ 25 26 /* On OpenBSD 4.4, <sys/uio.h> assumes prior inclusion of <sys/types.h>. */ 27 # include <sys/types.h> 28 29 /* The include_next requires a split double-inclusion guard. */ 30 # @INCLUDE_NEXT@ @NEXT_SYS_UIO_H@ 31 32 #endif 33 34 #ifndef _@GUARD_PREFIX@_SYS_UIO_H 35 #define _@GUARD_PREFIX@_SYS_UIO_H 36 37 #if !@HAVE_SYS_UIO_H@ 38 /* A platform that lacks <sys/uio.h>. */ 39 /* Get 'size_t' and 'ssize_t'. */ 40 # include <sys/types.h> 41 42 # ifdef __cplusplus 43 extern "C" { 44 # endif 45 46 # if !GNULIB_defined_struct_iovec 47 /* All known platforms that lack <sys/uio.h> also lack any declaration 48 of struct iovec in any other header. */ 49 struct iovec { 50 void *iov_base; 51 size_t iov_len; 52 }; 53 # define GNULIB_defined_struct_iovec 1 54 # endif 55 56 # ifdef __cplusplus 57 } 58 # endif 59 60 #endif 61 62 #endif /* _@GUARD_PREFIX@_SYS_UIO_H */ 63 #endif /* _@GUARD_PREFIX@_SYS_UIO_H */