[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH v2 1/2] update newlib glue for use with vfscore
Hi Yuri, What is the reason behind adding the stub for sigfillset? I get compiling errors for it because sigset_t is not defined (I'm building with newlib). Thanks, Costin On 3/6/19 9:59 AM, Florian Schmidt wrote: > Looking good. > > Reviewed-by: Florian Schmidt <florian.schmidt@xxxxxxxxx> > > On 3/5/19 7:29 PM, Yuri Volchkov wrote: >> Consists of multiple fixes: >> - remove stubs of the functions provided by vfscore >> - import mount.h, statfs.h, uio.h from nolibc (minimal changes) >> - add stub for sigfillset >> >> Signed-off-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx> >> --- >> file.c | 37 --------------- >> include/sys/mount.h | 109 +++++++++++++++++++++++++++++++++++++++++++ >> include/sys/statfs.h | 36 ++++++++++++++ >> include/sys/uio.h | 62 ++++++++++++++++++++++++ >> plat.c | 6 +++ >> 5 files changed, 213 insertions(+), 37 deletions(-) >> create mode 100644 include/sys/mount.h >> create mode 100644 include/sys/statfs.h >> create mode 100644 include/sys/uio.h >> >> diff --git a/file.c b/file.c >> index 9fd7809..05d29b5 100644 >> --- a/file.c >> +++ b/file.c >> @@ -45,49 +45,17 @@ extern int errno; >> #define STDOUT_FILENO 1 /* standard output file descriptor */ >> #define STDERR_FILENO 2 /* standard error file descriptor */ >> -int open(const char *name __unused, int flags __unused, int mode >> __unused) >> -{ >> - return -1; >> -} >> - >> -int fstat(int file __unused, struct stat *st) >> -{ >> - st->st_mode = S_IFCHR; >> - return 0; >> -} >> - >> -int stat(const char *path __unused, struct stat *buf __unused) >> -{ >> - return -1; >> -} >> - >> -int mkdir(const char *_path __unused, mode_t __mode __unused) >> -{ >> - return -1; >> -} >> - >> int link(char *old __unused, char *new __unused) >> { >> errno = EMLINK; >> return -1; >> } >> -int unlink(char *name __unused) >> -{ >> - errno = ENOENT; >> - return -1; >> -} >> - >> int lseek(int file __unused, int ptr __unused, int dir __unused) >> { >> return 0; >> } >> -int chmod(const char *pathname __unused, mode_t mode __unused) >> -{ >> - return 0; >> -} >> - >> int access(const char *path __unused, int amode __unused) >> { >> return 0; >> @@ -138,11 +106,6 @@ long pathconf(const char *path __unused, int name >> __unused) >> return 0; >> } >> -int dup2(int oldfd __unused, int newfd __unused) >> -{ >> - return 0; >> -} >> - >> #include <sys/mman.h> >> void *mmap(void *addr __unused, size_t len __unused, int prot __unused, >> int flags __unused, int fildes __unused, off_t off __unused) >> diff --git a/include/sys/mount.h b/include/sys/mount.h >> new file mode 100644 >> index 0000000..d7a95b3 >> --- /dev/null >> +++ b/include/sys/mount.h >> @@ -0,0 +1,109 @@ >> +/* SPDX-License-Identifier: BSD-3-Clause */ >> +/* >> + * Copyright (C) 2013 Cloudius Systems, Ltd. >> + * Copyright (c) 2019, NEC Europe Ltd., NEC Corporation. >> + * >> + * All rights reserved. >> + * >> + * Redistribution and use in source and binary forms, with or without >> + * modification, are permitted provided that the following conditions >> + * are met: >> + * >> + * 1. Redistributions of source code must retain the above copyright >> + * notice, this list of conditions and the following disclaimer. >> + * 2. Redistributions in binary form must reproduce the above copyright >> + * notice, this list of conditions and the following disclaimer in >> the >> + * documentation and/or other materials provided with the >> distribution. >> + * 3. Neither the name of the copyright holder nor the names of its >> + * contributors may be used to endorse or promote products derived >> from >> + * this software without specific prior written permission. >> + * >> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND >> CONTRIBUTORS "AS IS" >> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED >> TO, THE >> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >> PURPOSE >> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR >> CONTRIBUTORS BE >> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR >> BUSINESS >> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, >> WHETHER IN >> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR >> OTHERWISE) >> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF >> ADVISED OF THE >> + * POSSIBILITY OF SUCH DAMAGE. >> + * >> + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. >> + */ >> + >> +#ifndef _SYS_MOUNT_H >> +#define _SYS_MOUNT_H >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> + >> +#define BLKROSET _IO(0x12, 93) >> +#define BLKROGET _IO(0x12, 94) >> +#define BLKRRPART _IO(0x12, 95) >> +#define BLKGETSIZE _IO(0x12, 96) >> +#define BLKFLSBUF _IO(0x12, 97) >> +#define BLKRASET _IO(0x12, 98) >> +#define BLKRAGET _IO(0x12, 99) >> +#define BLKFRASET _IO(0x12, 100) >> +#define BLKFRAGET _IO(0x12, 101) >> +#define BLKSECTSET _IO(0x12, 102) >> +#define BLKSECTGET _IO(0x12, 103) >> +#define BLKSSZGET _IO(0x12, 104) >> +#define BLKBSZGET _IOR(0x12, 112, size_t) >> +#define BLKBSZSET _IOW(0x12, 113, size_t) >> +#define BLKGETSIZE64 _IOR(0x12, 114, size_t) >> + >> +#define MS_RDONLY 1 >> +#define MS_NOSUID 2 >> +#define MS_NODEV 4 >> +#define MS_NOEXEC 8 >> +#define MS_SYNCHRONOUS 16 >> +#define MS_REMOUNT 32 >> +#define MS_MANDLOCK 64 >> +#define MS_DIRSYNC 128 >> +#define MS_NOATIME 1024 >> +#define MS_NODIRATIME 2048 >> +#define MS_BIND 4096 >> +#define MS_MOVE 8192 >> +#define MS_REC 16384 >> +#define MS_SILENT 32768 >> +#define MS_POSIXACL (1<<16) >> +#define MS_UNBINDABLE (1<<17) >> +#define MS_PRIVATE (1<<18) >> +#define MS_SLAVE (1<<19) >> +#define MS_SHARED (1<<20) >> +#define MS_RELATIME (1<<21) >> +#define MS_KERNMOUNT (1<<22) >> +#define MS_I_VERSION (1<<23) >> +#define MS_STRICTATIME (1<<24) >> +#define MS_LAZYTIME (1<<25) >> +#define MS_NOREMOTELOCK (1<<27) >> +#define MS_NOSEC (1<<28) >> +#define MS_BORN (1<<29) >> +#define MS_ACTIVE (1<<30) >> +#define MS_NOUSER (1U<<31) >> + >> +#define MS_RMT_MASK >> (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|MS_LAZYTIME) >> + >> +#define MS_MGC_VAL 0xc0ed0000 >> +#define MS_MGC_MSK 0xffff0000 >> + >> +#define MNT_FORCE 1 >> +#define MNT_DETACH 2 >> +#define MNT_EXPIRE 4 >> +#define UMOUNT_NOFOLLOW 8 >> + >> +int mount(const char *dev, const char *dir, const char *fsname, >> + unsigned long flags, const void *data); >> +int umount(const char *path); >> +int umount2(const char *path, int flags); >> + >> +#ifdef __cplusplus >> +} >> +#endif >> + >> +#endif >> diff --git a/include/sys/statfs.h b/include/sys/statfs.h >> new file mode 100644 >> index 0000000..59de629 >> --- /dev/null >> +++ b/include/sys/statfs.h >> @@ -0,0 +1,36 @@ >> +#ifndef _SYS_STATFS_H >> +#define _SYS_STATFS_H >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +#include <sys/statvfs.h> >> + >> +typedef struct __fsid_t { >> + int __val[2]; >> +} fsid_t; >> + >> +struct statfs { >> + unsigned long f_type, f_bsize; >> + fsblkcnt_t f_blocks, f_bfree, f_bavail; >> + fsfilcnt_t f_files, f_ffree; >> + fsid_t f_fsid; >> + unsigned long f_namelen, f_frsize, f_flags, f_spare[4]; >> +}; >> + >> +int statfs(const char *path, struct statfs *buf); >> +int fstatfs(int fd, struct statfs *buf); >> + >> +#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) >> +#define statfs64 statfs >> +#define fstatfs64 fstatfs >> +#define fsblkcnt64_t fsblkcnt_t >> +#define fsfilcnt64_t fsfilcnt_t >> +#endif >> + >> +#ifdef __cplusplus >> +} >> +#endif >> + >> +#endif >> diff --git a/include/sys/uio.h b/include/sys/uio.h >> new file mode 100644 >> index 0000000..b83642e >> --- /dev/null >> +++ b/include/sys/uio.h >> @@ -0,0 +1,62 @@ >> +/* SPDX-License-Identifier: BSD-3-Clause */ >> +/* >> + * Copyright (C) 2013 Cloudius Systems, Ltd. >> + * Copyright (c) 2019, NEC Europe Ltd., NEC Corporation. >> + * >> + * All rights reserved. >> + * >> + * Redistribution and use in source and binary forms, with or without >> + * modification, are permitted provided that the following conditions >> + * are met: >> + * >> + * 1. Redistributions of source code must retain the above copyright >> + * notice, this list of conditions and the following disclaimer. >> + * 2. Redistributions in binary form must reproduce the above copyright >> + * notice, this list of conditions and the following disclaimer in >> the >> + * documentation and/or other materials provided with the >> distribution. >> + * 3. Neither the name of the copyright holder nor the names of its >> + * contributors may be used to endorse or promote products derived >> from >> + * this software without specific prior written permission. >> + * >> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND >> CONTRIBUTORS "AS IS" >> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED >> TO, THE >> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >> PURPOSE >> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR >> CONTRIBUTORS BE >> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR >> BUSINESS >> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, >> WHETHER IN >> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR >> OTHERWISE) >> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF >> ADVISED OF THE >> + * POSSIBILITY OF SUCH DAMAGE. >> + * >> + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. >> + */ >> + >> +#ifndef _SYS_UIO_H >> +#define _SYS_UIO_H >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +#define UIO_MAXIOV 1024 >> + >> +ssize_t readv(int fd, const struct iovec *iov, int iovcnt); >> +ssize_t writev(int fd, const struct iovec *iov, int iovcnt); >> + >> +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) >> +ssize_t preadv(int fd, const struct iovec *iov, int iovcnt, off_t >> offset); >> +ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt, off_t >> offset); >> +#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) >> +#define preadv64 preadv >> +#define pwritev64 pwritev >> +#define off64_t off_t >> +#endif >> +#endif >> + >> +#ifdef __cplusplus >> +} >> +#endif >> + >> +#endif >> diff --git a/plat.c b/plat.c >> index df07dce..f678694 100644 >> --- a/plat.c >> +++ b/plat.c >> @@ -55,6 +55,12 @@ int sigprocmask(int how __unused, const sigset_t >> *set __unused, >> return -1; >> } >> +int sigfillset(sigset_t *set __unused) >> +{ >> + errno = ENOTSUP; >> + return -1; >> +} >> + >> #include <uk/plat/bootstrap.h> >> void abort(void) >> > _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |