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

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



Hi Vlad,

thanks, looks good to me.

Reviewed-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx>

Cheers, Yuri.

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

> This patch combines include/termios.h with generic/bits/termios.h
> from musl. It provides all the defines found in generic/bits/termios.h
> but not the function declarations from include/termios.h.
>
> The following changes are made to the original files:
> *) add missing declarations from include/termios.h for cc_t, speed_t
> and tcflag_t
> *) add compile-time check of the architecture
> *) add compile guards
>
> tag: v1.1.20
> commit <0fa1e638e87cf257e9f96b4019b2076afd674a19>
>
> Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
> ---
>  lib/nolibc/include/termios.h | 192 +++++++++++++++++++++++++++++++++++
>  1 file changed, 192 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..20a5f41
> --- /dev/null
> +++ b/lib/nolibc/include/termios.h
> @@ -0,0 +1,192 @@
> +#ifndef _TERMIOS_H
> +#define _TERMIOS_H
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#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
> +
> +typedef unsigned char cc_t;
> +typedef unsigned int speed_t;
> +typedef unsigned int tcflag_t;
> +
> +#define NCCS 32
> +
> +
> +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
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif
> -- 
> 2.20.1
>

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