1a38a92c9SIngo Weinhold/*
2a38a92c9SIngo Weinhold * Copyright 2002-2007, Haiku Inc. All Rights Reserved.
3a38a92c9SIngo Weinhold * Distributed under the terms of the MIT License.
4a38a92c9SIngo Weinhold */
5a38a92c9SIngo Weinhold#ifndef _FSSH_SYS_UIO_H
6a38a92c9SIngo Weinhold#define _FSSH_SYS_UIO_H
7a38a92c9SIngo Weinhold
8a38a92c9SIngo Weinhold
9a38a92c9SIngo Weinhold#include "fssh_types.h"
10a38a92c9SIngo Weinhold
11a38a92c9SIngo Weinhold
12a38a92c9SIngo Weinholdtypedef struct fssh_iovec {
13a38a92c9SIngo Weinhold	void		*iov_base;
14a38a92c9SIngo Weinhold	fssh_size_t	iov_len;
15a38a92c9SIngo Weinhold} fssh_iovec;
16a38a92c9SIngo Weinhold
17a38a92c9SIngo Weinhold
18a38a92c9SIngo Weinhold#ifdef __cplusplus
19a38a92c9SIngo Weinholdextern "C" {
20a38a92c9SIngo Weinhold#endif
21a38a92c9SIngo Weinhold
22a38a92c9SIngo Weinholdfssh_ssize_t fssh_readv(int fd, const struct fssh_iovec *vector,
23a38a92c9SIngo Weinhold					fssh_size_t count);
24a38a92c9SIngo Weinholdfssh_ssize_t fssh_readv_pos(int fd, fssh_off_t pos, const struct
25a38a92c9SIngo Weinhold					fssh_iovec *vec, fssh_size_t count);
26a38a92c9SIngo Weinholdfssh_ssize_t fssh_writev(int fd, const struct fssh_iovec *vector,
27a38a92c9SIngo Weinhold					fssh_size_t count);
28a38a92c9SIngo Weinholdfssh_ssize_t fssh_writev_pos(int fd, fssh_off_t pos,
29a38a92c9SIngo Weinhold					const struct fssh_iovec *vec, fssh_size_t count);
30a38a92c9SIngo Weinhold
31a38a92c9SIngo Weinhold#ifdef __cplusplus
32a38a92c9SIngo Weinhold}
33a38a92c9SIngo Weinhold#endif
34a38a92c9SIngo Weinhold
35a38a92c9SIngo Weinhold#endif /* _FSSH_SYS_UIO_H */
36