2020-06-15 07:18:57 -07:00
|
|
|
#ifndef COSMOPOLITAN_LIBC_CALLS_TERMIOS_INTERNAL_H_
|
|
|
|
#define COSMOPOLITAN_LIBC_CALLS_TERMIOS_INTERNAL_H_
|
2020-08-25 04:23:25 -07:00
|
|
|
#ifndef __STRICT_ANSI__
|
2020-12-27 07:02:35 -08:00
|
|
|
#include "libc/bits/safemacros.h"
|
2020-11-25 08:19:00 -08:00
|
|
|
#include "libc/calls/struct/metatermios.internal.h"
|
2020-11-18 08:26:03 -08:00
|
|
|
#include "libc/calls/struct/termios.h"
|
2020-06-15 07:18:57 -07:00
|
|
|
#include "libc/str/str.h"
|
|
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
|
|
COSMOPOLITAN_C_START_
|
|
|
|
|
|
|
|
#define COPY_TERMIOS(TO, FROM) \
|
|
|
|
do { \
|
|
|
|
memset((TO), 0, sizeof(*(TO))); \
|
|
|
|
(TO)->c_iflag = (FROM)->c_iflag; \
|
|
|
|
(TO)->c_oflag = (FROM)->c_oflag; \
|
|
|
|
(TO)->c_cflag = (FROM)->c_cflag; \
|
|
|
|
(TO)->c_lflag = (FROM)->c_lflag; \
|
|
|
|
memcpy((TO)->c_cc, (FROM)->c_cc, \
|
|
|
|
min(sizeof((TO)->c_cc), sizeof((FROM)->c_cc))); \
|
|
|
|
(TO)->c_ispeed = (FROM)->c_ispeed; \
|
|
|
|
(TO)->c_ospeed = (FROM)->c_ospeed; \
|
|
|
|
} while (0)
|
|
|
|
|
2021-02-07 06:11:44 -08:00
|
|
|
void *__termios2host(union metatermios *, const struct termios *) hidden;
|
|
|
|
void __termios2linux(struct termios *, const union metatermios *) hidden;
|
2020-06-15 07:18:57 -07:00
|
|
|
|
|
|
|
COSMOPOLITAN_C_END_
|
|
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
2020-08-25 04:23:25 -07:00
|
|
|
#endif /* !ANSI */
|
2020-06-15 07:18:57 -07:00
|
|
|
#endif /* COSMOPOLITAN_LIBC_CALLS_TERMIOS_INTERNAL_H_ */
|