


## posix-tty.api
# Compiled by:
# src/lib/std/src/standard-core.sublib# Api for POSIX 1003.1 operations on terminal devices
### "I wanted to avoid special IO for terminals."
###
### -- Ken Thompson
api Posix_Tty {
eqtype Process_Id; # process ID
eqtype File_Descriptor; # file descriptor
package i:
api {
include Bit_Flags; # Bit_Flags is from src/lib/std/src/bit-flags.api
brkint: Flags;
icrnl: Flags;
ignbrk: Flags;
igncr: Flags;
ignpar: Flags;
inlcr: Flags;
inpck: Flags;
istrip: Flags;
ixoff: Flags;
ixon: Flags;
parmrk: Flags;
};
package o:
api {
include Bit_Flags; # Bit_Flags is from src/lib/std/src/bit-flags.api
opost: Flags;
};
package c:
api {
include Bit_Flags; # Bit_Flags is from src/lib/std/src/bit-flags.api
clocal: Flags;
cread: Flags;
csize: Flags;
cs5: Flags;
cs6: Flags;
cs7: Flags;
cs8: Flags;
cstopb: Flags;
hupcl: Flags;
parenb: Flags;
parodd: Flags;
};
package l:
api {
include Bit_Flags; # Bit_Flags is from src/lib/std/src/bit-flags.api
echo: Flags;
echoe: Flags;
echok: Flags;
echonl: Flags;
icanon: Flags;
iexten: Flags;
isig: Flags;
noflsh: Flags;
tostop: Flags;
};
package v:
api {
eof: Int;
eol: Int;
erase: Int;
intr: Int;
kill: Int;
min: Int;
quit: Int;
susp: Int;
time: Int;
start: Int;
stop: Int;
nccs: Int;
Cc;
cc: List ((Int, Char)) -> Cc;
update: ((Cc, List ((Int, Char)))) -> Cc;
sub: ((Cc, Int)) -> Char;
};
eqtype Speed;
compare_speed: (Speed, Speed) -> exceptions_guts::Order; # exceptions_guts is from src/lib/std/src/exceptions-guts.pkg speed_to_unt: Speed -> host_unt::Unt;
unt_to_speed: host_unt::Unt -> Speed;
b0: Speed;
b50: Speed;
b75: Speed;
b110: Speed;
b134: Speed;
b150: Speed;
b200: Speed;
b300: Speed;
b600: Speed;
b1200: Speed;
b1800: Speed;
b2400: Speed;
b4800: Speed;
b9600: Speed;
b19200: Speed;
b38400: Speed;
Termios;
termios: { iflag: i::Flags,
oflag: o::Flags,
cflag: c::Flags,
lflag: l::Flags,
cc: v::Cc,
ispeed: Speed,
ospeed: Speed } -> Termios;
fields_of: Termios -> { iflag: i::Flags,
oflag: o::Flags,
cflag: c::Flags,
lflag: l::Flags,
cc: v::Cc,
ispeed: Speed,
ospeed: Speed };
getiflag: Termios -> i::Flags;
getoflag: Termios -> o::Flags;
getcflag: Termios -> c::Flags;
getlflag: Termios -> l::Flags;
getcc: Termios -> v::Cc;
getospeed: Termios -> Speed;
setospeed: ((Termios, Speed)) -> Termios;
getispeed: Termios -> Speed;
setispeed: ((Termios, Speed)) -> Termios;
package tc:
api {
eqtype Set_Action;
sanow: Set_Action;
sadrain: Set_Action;
saflush: Set_Action;
eqtype Flow_Action;
ooff: Flow_Action;
oon: Flow_Action;
ioff: Flow_Action;
ion: Flow_Action;
eqtype Queue_Sel;
iflush: Queue_Sel;
oflush: Queue_Sel;
ioflush: Queue_Sel;
};
getattr: File_Descriptor -> Termios;
setattr: (File_Descriptor, tc::Set_Action, Termios) -> Void;
sendbreak: (File_Descriptor, Int) -> Void;
drain: File_Descriptor -> Void;
flush: (File_Descriptor, tc::Queue_Sel) -> Void;
flow: (File_Descriptor, tc::Flow_Action) -> Void;
getpgrp: File_Descriptor -> Process_Id;
setpgrp: (File_Descriptor, Process_Id) -> Void;
}; # Api Posix_Tty
## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


