|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH 2/3] lib/vfscore: Add pipe2() implementation and mkfifo() stub
I think it would be a good idea to add the pipe2 function declaration
in a header, as I get the implicit function declaration warning. 'man
pipe2' says the declaration is in unistd.h.
Reviewed-by: Stefan Teodorescu <stefanl.teodorescu@xxxxxxxxx>
On Tue, Nov 26, 2019 at 7:18 PM Costin Lupu <costin.lupu@xxxxxxxxx> wrote:
>
> For pipe2() we have just adapted musl's version. It basically calls pipe()
> and apply the flags by calling fcntl() internally. mkfifo() is just a stub.
>
> Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
> ---
> lib/vfscore/exportsyms.uk | 2 ++
> lib/vfscore/pipe.c | 28 ++++++++++++++++++++++++++++
> 2 files changed, 30 insertions(+)
>
> diff --git a/lib/vfscore/exportsyms.uk b/lib/vfscore/exportsyms.uk
> index b2957cc6..225cd730 100644
> --- a/lib/vfscore/exportsyms.uk
> +++ b/lib/vfscore/exportsyms.uk
> @@ -110,6 +110,8 @@ vn_stat
> vn_unlock
> vfs_busy
> pipe
> +pipe2
> +mkfifo
> futimes
> futimesat
> utimensat
> diff --git a/lib/vfscore/pipe.c b/lib/vfscore/pipe.c
> index 4c561304..8d382965 100644
> --- a/lib/vfscore/pipe.c
> +++ b/lib/vfscore/pipe.c
> @@ -571,3 +571,31 @@ ERR_EXIT:
> UK_ASSERT(ret < 0);
> return ret;
> }
> +
> +/* TODO find a more efficient way to implement pipe2() */
> +int pipe2(int pipefd[2], int flags)
> +{
> + int rc;
> +
> + rc = pipe(pipefd);
> + if (rc)
> + return rc;
> +
> + if (flags & O_CLOEXEC) {
> + fcntl(pipefd[0], F_SETFD, FD_CLOEXEC);
> + fcntl(pipefd[1], F_SETFD, FD_CLOEXEC);
> + }
> + if (flags & O_NONBLOCK) {
> + fcntl(pipefd[0], F_SETFL, O_NONBLOCK);
> + fcntl(pipefd[1], F_SETFL, O_NONBLOCK);
> + }
> + return 0;
> +}
> +
> +/* TODO maybe find a better place for this when it will be implemented */
> +int mkfifo(const char *path __unused, mode_t mode __unused)
> +{
> + WARN_STUBBED();
> + errno = ENOTSUP;
> + return -1;
> +}
> --
> 2.20.1
>
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |