|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/NEWLIB PATCH 2/2] add declarations needed for vfscore in the gluecode
Hi Florian,
Florian Schmidt <Florian.Schmidt@xxxxxxxxx> writes:
> Hi Yuri,
>
> a few small comments:
>
> On 3/4/19 6:54 PM, Yuri Volchkov wrote:
>> Signed-off-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx>
>> ---
>> include/fcntl.h | 36 ++++++++++++++++++++++++++++++++++++
>> include/sys/param.h | 8 ++++++++
>> include/sys/stat.h | 11 +++++++++++
>> include/sys/uio.h | 2 ++
>> 4 files changed, 57 insertions(+)
>> create mode 100644 include/fcntl.h
>> create mode 100644 include/sys/param.h
>> create mode 100644 include/sys/stat.h
>>
>> diff --git a/include/fcntl.h b/include/fcntl.h
>> new file mode 100644
>> index 0000000..a880ba2
>> --- /dev/null
>> +++ b/include/fcntl.h
>> @@ -0,0 +1,36 @@
>> +#ifndef _NEWLIB_GLUE_FCNTL_H_
>> +#define _NEWLIB_GLUE_FCNTL_H_
>> +
>> +#include_next <fcntl.h>
>> +#define loff_t off_t
>> +
>> +#include <uk/config.h>
>> +
>> +#if (defined CONFIG_ARCH_X86_64)
>> +#define O_NOFOLLOW 0400000
>> +#define O_DIRECTORY 0200000
>> +#define O_CLOEXEC 02000000
>> +#define O_DSYNC 010000
>> +#endif
>> +
>> +#if ((defined CONFIG_ARCH_ARM_64) || (defined CONFIG_ARCH_ARM_32))
>> +#define O_NOFOLLOW 0100000
>> +#define O_DIRECTORY 040000
>> +#define O_CLOEXEC 02000000
>> +#define O_DSYNC 010000
>> +#endif
>> +
>> +
>> +/* Glibc does not provide KEEP_SIZE and PUNCH_HOLE anymore. Instead it
>> + * includes * linux/falloc.h.
>> + *
>> + * Musl still does provide them. And Newlib is just Newlib
>> + */
>
> There's an extra asterisk on line 2 of the comment. And Newlib is just
> Newlib, eh? ;) That sentence shuld have at least one period at the end.
> Or maybe three, if you think that fits better...
Oops, formatting mistake
>
>> +#define FALLOC_FL_KEEP_SIZE 1
>> +#define FALLOC_FL_PUNCH_HOLE 2
>> +
>> +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
>> +#define AT_EMPTY_PATH 0x1000
>> +#endif
>> +
>> +#endif
>> diff --git a/include/sys/param.h b/include/sys/param.h
>> new file mode 100644
>> index 0000000..d877673
>> --- /dev/null
>> +++ b/include/sys/param.h
>> @@ -0,0 +1,8 @@
>> +#ifndef _NEWLIB_GLUE_SYS_PARAM_H_
>> +#define _NEWLIB_GLUE_SYS_PARAM_H_
>> +
>> +#include_next <sys/param.h>
>> +
>> +#define MAXSYMLINKS 20
>> +
>> +#endif
>> diff --git a/include/sys/stat.h b/include/sys/stat.h
>> new file mode 100644
>> index 0000000..21a3f78
>> --- /dev/null
>> +++ b/include/sys/stat.h
>> @@ -0,0 +1,11 @@
>> +#ifndef _NEWLIB_GLUE_SYS_STAT_H_
>> +#define _NEWLIB_GLUE_SYS_STAT_H_
>> +
>> +#define __rtems__
>> +#include_next <sys/stat.h>
>> +#undef __rtems__
>
> Would it make sense to check first whether __rtems__ is defined, and
> only redefine and undefine it again in that case? Because after
> including that header files, it is now unconditionally undefined, which
> might not be what is expected?
I am going just to draw attention if __rtems__ is defined beforehand for
2 reasons:
1) I am not sure I understand what stands behind this __rtems__ in
newlib, but it breaks the build pretty badly. If someone comes here
later with an intention to enable __rtems__ globaly, I would assume
he/she will know better what is it for. And that would make sense to
reconsider this wrapper.
2) The construction for defining and undefining __rtems__ looks super
ugly:
#ifndef __rtems__
#define __rtems__
#include_next <sys/stat.h>
#undef __rtems__
#else
#include_next <sys/stat.h>
#endif
>
>> +
>> +#define UTIME_NOW 0x3fffffff
>> +#define UTIME_OMIT 0x3ffffffe
>> +
>> +#endif
>> diff --git a/include/sys/uio.h b/include/sys/uio.h
>> index cfec9cc..2b2d22c 100644
>> --- a/include/sys/uio.h
>> +++ b/include/sys/uio.h
>> @@ -54,6 +54,8 @@ extern "C" {
>>
>> #define UIO_MAXIOV 1024
>>
>> +struct iovec { void *iov_base; size_t iov_len; };
>> +
>
> This doesn't follow our general code style.
Copy-paste issues. Fixed
>
> _______________________________________________
> Minios-devel mailing list
> Minios-devel@xxxxxxxxxxxxxxxxxxxx
> https://lists.xenproject.org/mailman/listinfo/minios-devel
--
Yuri Volchkov
Software Specialist
NEC Europe Ltd
Kurfürsten-Anlage 36
D-69115 Heidelberg
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |