1  /* do not edit automatically generated by mc from termios.  */
       2  /* termios.def provides a procedural interface to termios.
       3  
       4  Copyright (C) 2005-2023 Free Software Foundation, Inc.
       5  Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
       6  
       7  This file is part of GNU Modula-2.
       8  
       9  GNU Modula-2 is free software; you can redistribute it and/or modify
      10  it under the terms of the GNU General Public License as published by
      11  the Free Software Foundation; either version 3, or (at your option)
      12  any later version.
      13  
      14  GNU Modula-2 is distributed in the hope that it will be useful, but
      15  WITHOUT ANY WARRANTY; without even the implied warranty of
      16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      17  General Public License for more details.
      18  
      19  Under Section 7 of GPL version 3, you are granted additional
      20  permissions described in the GCC Runtime Library Exception, version
      21  3.1, as published by the Free Software Foundation.
      22  
      23  You should have received a copy of the GNU General Public License and
      24  a copy of the GCC Runtime Library Exception along with this program;
      25  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      26  <http://www.gnu.org/licenses/>.  */
      27  
      28  
      29  #if !defined (_termios_H)
      30  #   define _termios_H
      31  
      32  #include "config.h"
      33  #include "system.h"
      34  #   ifdef __cplusplus
      35  extern "C" {
      36  #   endif
      37  #   if !defined (PROC_D)
      38  #      define PROC_D
      39         typedef void (*PROC_t) (void);
      40         typedef struct { PROC_t proc; } PROC;
      41  #   endif
      42  
      43  #   include "GSYSTEM.h"
      44  
      45  #   if defined (_termios_C)
      46  #      define EXTERN
      47  #   else
      48  #      define EXTERN extern
      49  #   endif
      50  
      51  typedef void *termios_TERMIOS;
      52  
      53  typedef enum {termios_vintr, termios_vquit, termios_verase, termios_vkill, termios_veof, termios_vtime, termios_vmin, termios_vswtc, termios_vstart, termios_vstop, termios_vsusp, termios_veol, termios_vreprint, termios_vdiscard, termios_vwerase, termios_vlnext, termios_veol2} termios_ControlChar;
      54  
      55  typedef enum {termios_ignbrk, termios_ibrkint, termios_ignpar, termios_iparmrk, termios_inpck, termios_istrip, termios_inlcr, termios_igncr, termios_icrnl, termios_iuclc, termios_ixon, termios_ixany, termios_ixoff, termios_imaxbel, termios_opost, termios_olcuc, termios_onlcr, termios_ocrnl, termios_onocr, termios_onlret, termios_ofill, termios_ofdel, termios_onl0, termios_onl1, termios_ocr0, termios_ocr1, termios_ocr2, termios_ocr3, termios_otab0, termios_otab1, termios_otab2, termios_otab3, termios_obs0, termios_obs1, termios_off0, termios_off1, termios_ovt0, termios_ovt1, termios_b0, termios_b50, termios_b75, termios_b110, termios_b135, termios_b150, termios_b200, termios_b300, termios_b600, termios_b1200, termios_b1800, termios_b2400, termios_b4800, termios_b9600, termios_b19200, termios_b38400, termios_b57600, termios_b115200, termios_b240400, termios_b460800, termios_b500000, termios_b576000, termios_b921600, termios_b1000000, termios_b1152000, termios_b1500000, termios_b2000000, termios_b2500000, termios_b3000000, termios_b3500000, termios_b4000000, termios_maxbaud, termios_crtscts, termios_cs5, termios_cs6, termios_cs7, termios_cs8, termios_cstopb, termios_cread, termios_parenb, termios_parodd, termios_hupcl, termios_clocal, termios_lisig, termios_licanon, termios_lxcase, termios_lecho, termios_lechoe, termios_lechok, termios_lechonl, termios_lnoflsh, termios_ltopstop, termios_lechoctl, termios_lechoprt, termios_lechoke, termios_lflusho, termios_lpendin, termios_liexten} termios_Flag;
      56  
      57  
      58  /*
      59     InitTermios - new data structure.
      60  */
      61  
      62  EXTERN termios_TERMIOS termios_InitTermios (void);
      63  
      64  /*
      65     KillTermios - delete data structure.
      66  */
      67  
      68  EXTERN termios_TERMIOS termios_KillTermios (termios_TERMIOS t);
      69  
      70  /*
      71     cfgetospeed - return output baud rate.
      72  */
      73  
      74  EXTERN int termios_cfgetospeed (termios_TERMIOS t);
      75  
      76  /*
      77     cfgetispeed - return input baud rate.
      78  */
      79  
      80  EXTERN int termios_cfgetispeed (termios_TERMIOS t);
      81  
      82  /*
      83     cfsetospeed - set output baud rate.
      84  */
      85  
      86  EXTERN int termios_cfsetospeed (termios_TERMIOS t, unsigned int b);
      87  
      88  /*
      89     cfsetispeed - set input baud rate.
      90  */
      91  
      92  EXTERN int termios_cfsetispeed (termios_TERMIOS t, unsigned int b);
      93  
      94  /*
      95     cfsetspeed - set input and output baud rate.
      96  */
      97  
      98  EXTERN int termios_cfsetspeed (termios_TERMIOS t, unsigned int b);
      99  
     100  /*
     101     tcgetattr - get state of, fd, into, t.
     102  */
     103  
     104  EXTERN int termios_tcgetattr (int fd, termios_TERMIOS t);
     105  EXTERN int termios_tcsnow (void);
     106  EXTERN int termios_tcsdrain (void);
     107  EXTERN int termios_tcsflush (void);
     108  
     109  /*
     110     tcsetattr - set state of, fd, to, t, using option.
     111  */
     112  
     113  EXTERN int termios_tcsetattr (int fd, int option, termios_TERMIOS t);
     114  
     115  /*
     116     cfmakeraw - sets, t, to raw mode.
     117  */
     118  
     119  EXTERN void termios_cfmakeraw (termios_TERMIOS t);
     120  
     121  /*
     122     tcsendbreak - send zero bits for duration.
     123  */
     124  
     125  EXTERN int termios_tcsendbreak (int fd, int duration);
     126  
     127  /*
     128     tcdrain - waits for pending output to be written on, fd.
     129  */
     130  
     131  EXTERN int termios_tcdrain (int fd);
     132  
     133  /*
     134     tcflushi - flush input.
     135  */
     136  
     137  EXTERN int termios_tcflushi (int fd);
     138  
     139  /*
     140     tcflusho - flush output.
     141  */
     142  
     143  EXTERN int termios_tcflusho (int fd);
     144  
     145  /*
     146     tcflushio - flush input and output.
     147  */
     148  
     149  EXTERN int termios_tcflushio (int fd);
     150  
     151  /*
     152     tcflowoni - restart input on, fd.
     153  */
     154  
     155  EXTERN int termios_tcflowoni (int fd);
     156  
     157  /*
     158     tcflowoffi - stop input on, fd.
     159  */
     160  
     161  EXTERN int termios_tcflowoffi (int fd);
     162  
     163  /*
     164     tcflowono - restart output on, fd.
     165  */
     166  
     167  EXTERN int termios_tcflowono (int fd);
     168  
     169  /*
     170     tcflowoffo - stop output on, fd.
     171  */
     172  
     173  EXTERN int termios_tcflowoffo (int fd);
     174  
     175  /*
     176     GetFlag - sets a flag value from, t, in, b, and returns TRUE
     177               if, t, supports, f.
     178  */
     179  
     180  EXTERN unsigned int termios_GetFlag (termios_TERMIOS t, termios_Flag f, unsigned int *b);
     181  
     182  /*
     183     SetFlag - sets a flag value in, t, to, b, and returns TRUE if
     184               this flag value is supported.
     185  */
     186  
     187  EXTERN unsigned int termios_SetFlag (termios_TERMIOS t, termios_Flag f, unsigned int b);
     188  
     189  /*
     190     GetChar - sets a CHAR, ch, value from, t, and returns TRUE if
     191               this value is supported.
     192  */
     193  
     194  EXTERN unsigned int termios_GetChar (termios_TERMIOS t, termios_ControlChar c, char *ch);
     195  
     196  /*
     197     SetChar - sets a CHAR value in, t, and returns TRUE if, c,
     198               is supported.
     199  */
     200  
     201  EXTERN unsigned int termios_SetChar (termios_TERMIOS t, termios_ControlChar c, char ch);
     202  #   ifdef __cplusplus
     203  }
     204  #   endif
     205  
     206  #   undef EXTERN
     207  #endif