diff --git a/headers/posix/sys/uio.h b/headers/posix/sys/uio.h index 669a369694..29154592b1 100644 --- a/headers/posix/sys/uio.h +++ b/headers/posix/sys/uio.h @@ -14,6 +14,25 @@ typedef struct iovec { } 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 */ +}; + + #ifdef __cplusplus extern "C" { #endif diff --git a/src/add-ons/kernel/network/core/core_private.h b/src/add-ons/kernel/network/core/core_private.h index 8b3647b07f..9fbe390ad2 100644 --- a/src/add-ons/kernel/network/core/core_private.h +++ b/src/add-ons/kernel/network/core/core_private.h @@ -3,6 +3,9 @@ struct ifnet; +struct uio; + +int uiomove(char *cp, int n, struct uio *uio); void in_if_detach(struct ifnet *ifp); // this removes all IP related references for this interface (route, address)