[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT PATCH 1/2] lib/nolibc/include: Add termios.h from musl



Hi Vlad-Andrei,

please check next time that your patches are compileable and working.

This file in musl is not intended to be included directly. It is missing
some declarations and compile guards. So we can not use this file as it
is (at very least this is the reason why your patches would not compile).

In musl the actual include file is include/termios.h which does include
one of architecture specific bits/termios.h. Fortunately we do not have
to do the same, since it is only mips and powerpc variants have
different termios.h files.

So I would propose to add to the file you imported:
1) compile guards
2) missing declarations from include/termios.h
3) compile-time check of the architecture

The last one can be achieved like this:

    #include <uk/config.h>
    #if ((!defined CONFIG_ARCH_X86_64) && (!defined CONFIG_ARCH_ARM_64) && 
(!defined CONFIG_ARCH_ARM_32))
    #error Please make sure this termios.h declaration match your architecture
    #endif

Normally I insist that imported files are introduced as one commit
without a single modification, and do changes in the following
commits. But in this case it is fine to do it at once, since changes are
minimal and they are all in the single block at the top of the file
(well, plus one single #endif at the end).

However, please add to the commit message the hash code and tag of the
original code, where you have imported this file. And briefly explain
what you have added on top of the original.

For example:
    tag: v1.1.20
    commit <0fa1e638e87cf257e9f96b4019b2076afd674a19>

BR, Yuri.

"Vlad-Andrei BĂDOIU (78692)" <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
writes:

> Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
> ---
>  lib/nolibc/include/termios.h | 166 +++++++++++++++++++++++++++++++++++
>  1 file changed, 166 insertions(+)
>  create mode 100644 lib/nolibc/include/termios.h
>
> diff --git a/lib/nolibc/include/termios.h b/lib/nolibc/include/termios.h
> new file mode 100644
> index 0000000..124f71d
> --- /dev/null
> +++ b/lib/nolibc/include/termios.h
> @@ -0,0 +1,166 @@
> +struct termios {
> +     tcflag_t c_iflag;
> +     tcflag_t c_oflag;
> +     tcflag_t c_cflag;
> +     tcflag_t c_lflag;
> +     cc_t c_line;
> +     cc_t c_cc[NCCS];
> +     speed_t __c_ispeed;
> +     speed_t __c_ospeed;
> +};
> +
> +#define VINTR     0
> +#define VQUIT     1
> +#define VERASE    2
> +#define VKILL     3
> +#define VEOF      4
> +#define VTIME     5
> +#define VMIN      6
> +#define VSWTC     7
> +#define VSTART    8
> +#define VSTOP     9
> +#define VSUSP    10
> +#define VEOL     11
> +#define VREPRINT 12
> +#define VDISCARD 13
> +#define VWERASE  14
> +#define VLNEXT   15
> +#define VEOL2    16
> +
> +#define IGNBRK  0000001
> +#define BRKINT  0000002
> +#define IGNPAR  0000004
> +#define PARMRK  0000010
> +#define INPCK   0000020
> +#define ISTRIP  0000040
> +#define INLCR   0000100
> +#define IGNCR   0000200
> +#define ICRNL   0000400
> +#define IUCLC   0001000
> +#define IXON    0002000
> +#define IXANY   0004000
> +#define IXOFF   0010000
> +#define IMAXBEL 0020000
> +#define IUTF8   0040000
> +
> +#define OPOST  0000001
> +#define OLCUC  0000002
> +#define ONLCR  0000004
> +#define OCRNL  0000010
> +#define ONOCR  0000020
> +#define ONLRET 0000040
> +#define OFILL  0000100
> +#define OFDEL  0000200
> +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)
> +#define NLDLY  0000400
> +#define NL0    0000000
> +#define NL1    0000400
> +#define CRDLY  0003000
> +#define CR0    0000000
> +#define CR1    0001000
> +#define CR2    0002000
> +#define CR3    0003000
> +#define TABDLY 0014000
> +#define TAB0   0000000
> +#define TAB1   0004000
> +#define TAB2   0010000
> +#define TAB3   0014000
> +#define BSDLY  0020000
> +#define BS0    0000000
> +#define BS1    0020000
> +#define FFDLY  0100000
> +#define FF0    0000000
> +#define FF1    0100000
> +#endif
> +
> +#define VTDLY  0040000
> +#define VT0    0000000
> +#define VT1    0040000
> +
> +#define B0       0000000
> +#define B50      0000001
> +#define B75      0000002
> +#define B110     0000003
> +#define B134     0000004
> +#define B150     0000005
> +#define B200     0000006
> +#define B300     0000007
> +#define B600     0000010
> +#define B1200    0000011
> +#define B1800    0000012
> +#define B2400    0000013
> +#define B4800    0000014
> +#define B9600    0000015
> +#define B19200   0000016
> +#define B38400   0000017
> +
> +#define B57600   0010001
> +#define B115200  0010002
> +#define B230400  0010003
> +#define B460800  0010004
> +#define B500000  0010005
> +#define B576000  0010006
> +#define B921600  0010007
> +#define B1000000 0010010
> +#define B1152000 0010011
> +#define B1500000 0010012
> +#define B2000000 0010013
> +#define B2500000 0010014
> +#define B3000000 0010015
> +#define B3500000 0010016
> +#define B4000000 0010017
> +
> +#define CSIZE  0000060
> +#define CS5    0000000
> +#define CS6    0000020
> +#define CS7    0000040
> +#define CS8    0000060
> +#define CSTOPB 0000100
> +#define CREAD  0000200
> +#define PARENB 0000400
> +#define PARODD 0001000
> +#define HUPCL  0002000
> +#define CLOCAL 0004000
> +
> +#define ISIG   0000001
> +#define ICANON 0000002
> +#define ECHO   0000010
> +#define ECHOE  0000020
> +#define ECHOK  0000040
> +#define ECHONL 0000100
> +#define NOFLSH 0000200
> +#define TOSTOP 0000400
> +#define IEXTEN 0100000
> +
> +#define TCOOFF 0
> +#define TCOON  1
> +#define TCIOFF 2
> +#define TCION  3
> +
> +#define TCIFLUSH  0
> +#define TCOFLUSH  1
> +#define TCIOFLUSH 2
> +
> +#define TCSANOW   0
> +#define TCSADRAIN 1
> +#define TCSAFLUSH 2
> +
> +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
> +#define EXTA    0000016
> +#define EXTB    0000017
> +#define CBAUD   0010017
> +#define CBAUDEX 0010000
> +#define CIBAUD  002003600000
> +#define CMSPAR  010000000000
> +#define CRTSCTS 020000000000
> +
> +#define XCASE   0000004
> +#define ECHOCTL 0001000
> +#define ECHOPRT 0002000
> +#define ECHOKE  0004000
> +#define FLUSHO  0010000
> +#define PENDIN  0040000
> +#define EXTPROC 0200000
> +
> +#define XTABS  0014000
> +#endif
> -- 
> 2.19.2
>

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.