haiku/headers/posix/sys/uio.h
Philippe Houdoin e803870545 Forgot to commit these... Should fix network stuff build issues.
Add again the load_driver_symbols() export into our KernelExport.h, as it's expected
by many kernel add-ons (drivers, modules)... the network ones, for a start.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-09 21:05:37 +00:00

40 lines
1.0 KiB
C

/* uio.h */
#ifndef _SYS_UIO_H
#define _SYS_UIO_H
#include <sys/types.h>
typedef struct iovec {
void *iov_base;
size_t iov_len;
} iovec;
enum uio_rw { UIO_READ, UIO_WRITE };
/* Segment flag values. */
enum uio_seg {
UIO_USERSPACE, /* from user data space */
UIO_SYSSPACE /* from system space */
};
struct uio {
struct iovec *uio_iov; /* pointer to array of iovecs */
int uio_iovcnt; /* number of iovecs in array */
off_t uio_offset; /* offset into file this uio corresponds to */
size_t uio_resid; /* residual i/o count */
enum uio_seg uio_segflg; /* see above */
enum uio_rw uio_rw; /* see above */
// struct proc *uio_procp; /* process if UIO_USERSPACE */
};
int uiomove(char *cp, int n, struct uio *uio);
ssize_t readv(int fd, const struct iovec *vector, size_t count);
ssize_t readv_pos(int fd, off_t pos, const struct iovec *vec, size_t count);
ssize_t writev(int fd, const struct iovec *vector, size_t count);
ssize_t writev_pos(int fd, off_t pos, const struct iovec *vec, size_t count);
#endif /* _SYS_UIO_H */