/** * Interfaces for PHP FFI * * Most of the structure code is cribbed from GLib * * Defines are not (generally) recognized by the FFI integration */ // PHP 'constants' for FFI integration // These seem to be the only define statements supported by the FFI integration #define FFI_SCOPE "terminal" #define FFI_LIB "libc.so.6" // ----------------------------------------------------------------------------- //! // ----------------------------------------------------------------------------- /* Type of terminal control flag masks. */ typedef unsigned long int tcflag_t; /* Type of control characters. */ typedef unsigned char cc_t; /* Type of baud rate specifiers. */ typedef long int speed_t; /* Terminal control structure. */ struct termios { /* Input modes. */ tcflag_t c_iflag; /* Output modes. */ tcflag_t c_oflag; /* Control modes. */ tcflag_t c_cflag; /* Local modes. */ tcflag_t c_lflag; /* Control characters. */ cc_t c_cc[20]; /* Input and output baud rates. */ speed_t __ispeed, __ospeed; }; int tcgetattr (int fd, struct termios *termios_p); int tcsetattr (int fd, int optional_actions, const struct termios *termios_p); void cfmakeraw (struct termios *termios_p); // ----------------------------------------------------------------------------- //! // ----------------------------------------------------------------------------- int iscntrl (int);