30 lines
1.2 KiB
C
30 lines
1.2 KiB
C
#ifndef COSMOPOLITAN_LIBC_CALLS_TERMIOS_INTERNAL_H_
|
|
#define COSMOPOLITAN_LIBC_CALLS_TERMIOS_INTERNAL_H_
|
|
#include "libc/bits/safemacros.h"
|
|
#include "libc/str/str.h"
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
struct termios;
|
|
union metatermios;
|
|
|
|
#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)
|
|
|
|
void *termios2host(union metatermios *, const struct termios *);
|
|
void termios2linux(struct termios *, const union metatermios *);
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_LIBC_CALLS_TERMIOS_INTERNAL_H_ */
|