Port of BAS 2.4 to NuttX by Alan Carvalho de Assis

This commit is contained in:
Gregory Nutt 2014-10-27 07:53:12 -06:00
parent 80efa803b9
commit b8e84e2dce
2 changed files with 29 additions and 10 deletions

View File

@ -242,7 +242,8 @@ struct termios
#ifdef __cplusplus #ifdef __cplusplus
#define EXTERN extern "C" #define EXTERN extern "C"
extern "C" { extern "C"
{
#else #else
#define EXTERN extern #define EXTERN extern
#endif #endif
@ -254,7 +255,7 @@ extern "C" {
* supported by simply defining them to be cfgetspeed(). * supported by simply defining them to be cfgetspeed().
*/ */
EXTERN speed_t cfgetspeed(FAR const struct termios *termiosp); speed_t cfgetspeed(FAR const struct termios *termiosp);
#define cfgetispeed(termiosp) cfgetspeed(termiosp) #define cfgetispeed(termiosp) cfgetspeed(termiosp)
#define cfgetospeed(termiosp) cfgetspeed(termiosp) #define cfgetospeed(termiosp) cfgetspeed(termiosp)
@ -265,37 +266,41 @@ EXTERN speed_t cfgetspeed(FAR const struct termios *termiosp);
* supported by simply defining them to be cfsetspeed(). * supported by simply defining them to be cfsetspeed().
*/ */
EXTERN int cfsetspeed(FAR struct termios *termiosp, speed_t speed); int cfsetspeed(FAR struct termios *termiosp, speed_t speed);
#define cfsetispeed(termiosp,speed) cfsetspeed(termiosp,speed) #define cfsetispeed(termiosp,speed) cfsetspeed(termiosp,speed)
#define cfsetospeed(termiosp,speed) cfsetspeed(termiosp,speed) #define cfsetospeed(termiosp,speed) cfsetspeed(termiosp,speed)
/* Wait for transmission of output */ /* Wait for transmission of output */
EXTERN int tcdrain(int fd); int tcdrain(int fd);
/* Suspend or restart the transmission or reception of data */ /* Suspend or restart the transmission or reception of data */
EXTERN int tcflow(int fd, int action); int tcflow(int fd, int action);
/* Flush non-transmitted output data, non-read input data or both */ /* Flush non-transmitted output data, non-read input data or both */
EXTERN int tcflush(int fd, int cmd); int tcflush(int fd, int cmd);
/* Get the parameters associated with the terminal */ /* Get the parameters associated with the terminal */
EXTERN int tcgetattr(int fd, FAR struct termios *termiosp); int tcgetattr(int fd, FAR struct termios *termiosp);
/* Get process group ID for session leader for controlling terminal */ /* Get process group ID for session leader for controlling terminal */
EXTERN pid_t tcgetsid(int fd); pid_t tcgetsid(int fd);
/* Send a "break" for a specific duration */ /* Send a "break" for a specific duration */
EXTERN int tcsendbreak(int fd, int duration); int tcsendbreak(int fd, int duration);
/* Set the parameters associated with the terminal */ /* Set the parameters associated with the terminal */
EXTERN int tcsetattr(int fd, int options, FAR const struct termios *termiosp); int tcsetattr(int fd, int options, FAR const struct termios *termiosp);
/* Verify if a file descript is a terminal i/o file */
int isatty(int fd);
#undef EXTERN #undef EXTERN
#ifdef __cplusplus #ifdef __cplusplus

14
libc/termios/lib_isatty.c Normal file
View File

@ -0,0 +1,14 @@
/* Added by Alan Carvalho de Assis
This code is from:
https://github.com/raggi/apue.2e/blob/master/termios/isatty.c
based on Advanced Programming in the UNIX Environment
*/
#include <termios.h>
int isatty(int fd)
{
struct termios ts;
return(tcgetattr(fd, &ts) != -1); /* true if no error (is a tty) */
}