#ifndef SYSROOT_TERMIOS_H_
#define SYSROOT_TERMIOS_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <features.h>

#define __NEED_pid_t

#include <bits/alltypes.h>

typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;

#define NCCS 32

#include <bits/termios.h>

speed_t cfgetospeed(const struct termios*);
speed_t cfgetispeed(const struct termios*);
int cfsetospeed(struct termios*, speed_t);
int cfsetispeed(struct termios*, speed_t);

int tcgetattr(int, struct termios*);
int tcsetattr(int, int, const struct termios*);

int tcsendbreak(int, int);
int tcdrain(int);
int tcflush(int, int);
int tcflow(int, int);

pid_t tcgetsid(int);

#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
void cfmakeraw(struct termios*);
int cfsetspeed(struct termios*, speed_t);
#endif

#ifdef __cplusplus
}
#endif

#endif  // SYSROOT_TERMIOS_H_
