]> gitweb.factorcode.org Git - factor.git/blob - extra/io/serial/unix/bsd/bsd.factor
dbb013aca04ff7a8d3ed859d3738384286093cb0
[factor.git] / extra / io / serial / unix / bsd / bsd.factor
1 ! Copyright (C) 2008 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax kernel math.bitwise sequences system io.serial ;
4 IN: io.serial.unix
5
6 M: bsd lookup-baud ( m -- n )
7     dup {
8         0 50 75 110 134 150 200 300 600 1200 1800 2400 4800
9         7200 9600 14400 19200 28800 38400 57600 76800 115200
10         230400 460800 921600
11     } member? [ invalid-baud ] unless ;
12
13 CONSTANT: TCSANOW     0
14 CONSTANT: TCSADRAIN   1
15 CONSTANT: TCSAFLUSH   2
16 CONSTANT: TCSASOFT    HEX: 10
17
18 CONSTANT: TCIFLUSH    1
19 CONSTANT: TCOFLUSH    2
20 CONSTANT: TCIOFLUSH   3
21 CONSTANT: TCOOFF      1
22 CONSTANT: TCOON       2
23 CONSTANT: TCIOFF      3
24 CONSTANT: TCION       4
25
26 ! iflags
27 CONSTANT: IGNBRK      HEX: 00000001
28 CONSTANT: BRKINT      HEX: 00000002
29 CONSTANT: IGNPAR      HEX: 00000004
30 CONSTANT: PARMRK      HEX: 00000008
31 CONSTANT: INPCK       HEX: 00000010
32 CONSTANT: ISTRIP      HEX: 00000020
33 CONSTANT: INLCR       HEX: 00000040
34 CONSTANT: IGNCR       HEX: 00000080
35 CONSTANT: ICRNL       HEX: 00000100
36 CONSTANT: IXON        HEX: 00000200
37 CONSTANT: IXOFF       HEX: 00000400
38 CONSTANT: IXANY       HEX: 00000800
39 CONSTANT: IMAXBEL     HEX: 00002000
40 CONSTANT: IUTF8       HEX: 00004000
41
42 ! oflags
43 CONSTANT: OPOST       HEX: 00000001
44 CONSTANT: ONLCR       HEX: 00000002
45 CONSTANT: OXTABS      HEX: 00000004
46 CONSTANT: ONOEOT      HEX: 00000008
47
48 ! cflags
49 CONSTANT: CIGNORE     HEX: 00000001
50 CONSTANT: CSIZE       HEX: 00000300
51 CONSTANT: CS5         HEX: 00000000
52 CONSTANT: CS6         HEX: 00000100
53 CONSTANT: CS7         HEX: 00000200
54 CONSTANT: CS8         HEX: 00000300
55 CONSTANT: CSTOPB      HEX: 00000400
56 CONSTANT: CREAD       HEX: 00000800
57 CONSTANT: PARENB      HEX: 00001000
58 CONSTANT: PARODD      HEX: 00002000
59 CONSTANT: HUPCL       HEX: 00004000
60 CONSTANT: CLOCAL      HEX: 00008000
61 CONSTANT: CCTS_OFLOW  HEX: 00010000
62 CONSTANT: CRTS_IFLOW  HEX: 00020000
63 : CRTSCTS ( -- n )  { CCTS_OFLOW CRTS_IFLOW } flags ; inline
64 CONSTANT: CDTR_IFLOW  HEX: 00040000
65 CONSTANT: CDSR_OFLOW  HEX: 00080000
66 CONSTANT: CCAR_OFLOW  HEX: 00100000
67 CONSTANT: MDMBUF      HEX: 00100000
68
69 ! lflags
70 CONSTANT: ECHOKE      HEX: 00000001
71 CONSTANT: ECHOE       HEX: 00000002
72 CONSTANT: ECHOK       HEX: 00000004
73 CONSTANT: ECHO        HEX: 00000008
74 CONSTANT: ECHONL      HEX: 00000010
75 CONSTANT: ECHOPRT     HEX: 00000020
76 CONSTANT: ECHOCTL     HEX: 00000040
77 CONSTANT: ISIG        HEX: 00000080
78 CONSTANT: ICANON      HEX: 00000100
79 CONSTANT: ALTWERASE   HEX: 00000200
80 CONSTANT: IEXTEN      HEX: 00000400
81 CONSTANT: EXTPROC     HEX: 00000800
82 CONSTANT: TOSTOP      HEX: 00400000
83 CONSTANT: FLUSHO      HEX: 00800000
84 CONSTANT: NOKERNINFO  HEX: 02000000
85 CONSTANT: PENDIN      HEX: 20000000
86 CONSTANT: NOFLSH      HEX: 80000000