[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 |