/* * Copyright (C) 2017 The Android Open Source Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #include #include "header_checks.h" static void termios_h() { TYPE(cc_t); TYPE(speed_t); TYPE(tcflag_t); TYPE(struct termios); STRUCT_MEMBER(struct termios, tcflag_t, c_iflag); STRUCT_MEMBER(struct termios, tcflag_t, c_oflag); STRUCT_MEMBER(struct termios, tcflag_t, c_cflag); STRUCT_MEMBER(struct termios, tcflag_t, c_lflag); STRUCT_MEMBER_ARRAY(struct termios, cc_t/*[]*/, c_cc); MACRO(NCCS); MACRO(VEOF); MACRO(VEOL); MACRO(VERASE); MACRO(VINTR); MACRO(VKILL); MACRO(VMIN); MACRO(VQUIT); MACRO(VSTART); MACRO(VSTOP); MACRO(VSUSP); MACRO(VTIME); MACRO(BRKINT); MACRO(ICRNL); MACRO(IGNBRK); MACRO(IGNCR); MACRO(IGNPAR); MACRO(INLCR); MACRO(INPCK); MACRO(ISTRIP); MACRO(IXANY); MACRO(IXOFF); MACRO(IXON); MACRO(PARMRK); MACRO(OPOST); MACRO(ONLCR); MACRO(OCRNL); MACRO(ONOCR); MACRO(ONLRET); MACRO(OFDEL); MACRO(OFILL); MACRO(NLDLY); MACRO(NL0); MACRO(NL1); MACRO(CRDLY); MACRO(CR0); MACRO(CR1); MACRO(CR2); MACRO(CR3); MACRO(TABDLY); MACRO(TAB0); MACRO(TAB1); MACRO(TAB2); MACRO(TAB3); MACRO(BSDLY); MACRO(BS0); MACRO(BS1); MACRO(VTDLY); MACRO(VT0); MACRO(VT1); MACRO(FFDLY); MACRO(FF0); MACRO(FF1); MACRO(B0); MACRO(B50); MACRO(B75); MACRO(B110); MACRO(B134); MACRO(B150); MACRO(B200); MACRO(B300); MACRO(B600); MACRO(B1200); MACRO(B1800); MACRO(B2400); MACRO(B4800); MACRO(B9600); MACRO(B19200); MACRO(B38400); MACRO(CSIZE); MACRO(CS5); MACRO(CS6); MACRO(CS7); MACRO(CS8); MACRO(CSTOPB); MACRO(CREAD); MACRO(PARENB); MACRO(PARODD); MACRO(HUPCL); MACRO(CLOCAL); MACRO(ECHO); MACRO(ECHOE); MACRO(ECHOK); MACRO(ECHONL); MACRO(ICANON); MACRO(IEXTEN); MACRO(ISIG); MACRO(NOFLSH); MACRO(TOSTOP); MACRO(TCSANOW); MACRO(TCSADRAIN); MACRO(TCSAFLUSH); MACRO(TCIFLUSH); MACRO(TCIOFLUSH); MACRO(TCOFLUSH); MACRO(TCIOFF); MACRO(TCION); MACRO(TCOOFF); MACRO(TCOON); TYPE(pid_t); FUNCTION(cfgetispeed, speed_t (*f)(const struct termios*)); FUNCTION(cfgetospeed, speed_t (*f)(const struct termios*)); FUNCTION(cfsetispeed, int (*f)(struct termios*, speed_t)); FUNCTION(cfsetospeed, int (*f)(struct termios*, speed_t)); FUNCTION(tcdrain, int (*f)(int)); FUNCTION(tcflow, int (*f)(int, int)); FUNCTION(tcflush, int (*f)(int, int)); FUNCTION(tcgetattr, int (*f)(int, struct termios*)); FUNCTION(tcgetsid, pid_t (*f)(int)); FUNCTION(tcsendbreak, int (*f)(int, int)); FUNCTION(tcsetattr, int (*f)(int, int, const struct termios*)); }