87 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008 Doug Coleman.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: alien.syntax kernel math.bitwise sequences system io.serial ;
 | 
						|
IN: io.serial.unix
 | 
						|
 | 
						|
M: bsd lookup-baud ( m -- n )
 | 
						|
    dup {
 | 
						|
        0 50 75 110 134 150 200 300 600 1200 1800 2400 4800
 | 
						|
        7200 9600 14400 19200 28800 38400 57600 76800 115200
 | 
						|
        230400 460800 921600
 | 
						|
    } member? [ invalid-baud ] unless ;
 | 
						|
 | 
						|
CONSTANT: TCSANOW     0
 | 
						|
CONSTANT: TCSADRAIN   1
 | 
						|
CONSTANT: TCSAFLUSH   2
 | 
						|
CONSTANT: TCSASOFT    HEX: 10
 | 
						|
 | 
						|
CONSTANT: TCIFLUSH    1
 | 
						|
CONSTANT: TCOFLUSH    2
 | 
						|
CONSTANT: TCIOFLUSH   3
 | 
						|
CONSTANT: TCOOFF      1
 | 
						|
CONSTANT: TCOON       2
 | 
						|
CONSTANT: TCIOFF      3
 | 
						|
CONSTANT: TCION       4
 | 
						|
 | 
						|
! iflags
 | 
						|
CONSTANT: IGNBRK      HEX: 00000001
 | 
						|
CONSTANT: BRKINT      HEX: 00000002
 | 
						|
CONSTANT: IGNPAR      HEX: 00000004
 | 
						|
CONSTANT: PARMRK      HEX: 00000008
 | 
						|
CONSTANT: INPCK       HEX: 00000010
 | 
						|
CONSTANT: ISTRIP      HEX: 00000020
 | 
						|
CONSTANT: INLCR       HEX: 00000040
 | 
						|
CONSTANT: IGNCR       HEX: 00000080
 | 
						|
CONSTANT: ICRNL       HEX: 00000100
 | 
						|
CONSTANT: IXON        HEX: 00000200
 | 
						|
CONSTANT: IXOFF       HEX: 00000400
 | 
						|
CONSTANT: IXANY       HEX: 00000800
 | 
						|
CONSTANT: IMAXBEL     HEX: 00002000
 | 
						|
CONSTANT: IUTF8       HEX: 00004000
 | 
						|
 | 
						|
! oflags
 | 
						|
CONSTANT: OPOST       HEX: 00000001
 | 
						|
CONSTANT: ONLCR       HEX: 00000002
 | 
						|
CONSTANT: OXTABS      HEX: 00000004
 | 
						|
CONSTANT: ONOEOT      HEX: 00000008
 | 
						|
 | 
						|
! cflags
 | 
						|
CONSTANT: CIGNORE     HEX: 00000001
 | 
						|
CONSTANT: CSIZE       HEX: 00000300
 | 
						|
CONSTANT: CS5         HEX: 00000000
 | 
						|
CONSTANT: CS6         HEX: 00000100
 | 
						|
CONSTANT: CS7         HEX: 00000200
 | 
						|
CONSTANT: CS8         HEX: 00000300
 | 
						|
CONSTANT: CSTOPB      HEX: 00000400
 | 
						|
CONSTANT: CREAD       HEX: 00000800
 | 
						|
CONSTANT: PARENB      HEX: 00001000
 | 
						|
CONSTANT: PARODD      HEX: 00002000
 | 
						|
CONSTANT: HUPCL       HEX: 00004000
 | 
						|
CONSTANT: CLOCAL      HEX: 00008000
 | 
						|
CONSTANT: CCTS_OFLOW  HEX: 00010000
 | 
						|
CONSTANT: CRTS_IFLOW  HEX: 00020000
 | 
						|
: CRTSCTS ( -- n )  { CCTS_OFLOW CRTS_IFLOW } flags ; inline
 | 
						|
CONSTANT: CDTR_IFLOW  HEX: 00040000
 | 
						|
CONSTANT: CDSR_OFLOW  HEX: 00080000
 | 
						|
CONSTANT: CCAR_OFLOW  HEX: 00100000
 | 
						|
CONSTANT: MDMBUF      HEX: 00100000
 | 
						|
 | 
						|
! lflags
 | 
						|
CONSTANT: ECHOKE      HEX: 00000001
 | 
						|
CONSTANT: ECHOE       HEX: 00000002
 | 
						|
CONSTANT: ECHOK       HEX: 00000004
 | 
						|
CONSTANT: ECHO        HEX: 00000008
 | 
						|
CONSTANT: ECHONL      HEX: 00000010
 | 
						|
CONSTANT: ECHOPRT     HEX: 00000020
 | 
						|
CONSTANT: ECHOCTL     HEX: 00000040
 | 
						|
CONSTANT: ISIG        HEX: 00000080
 | 
						|
CONSTANT: ICANON      HEX: 00000100
 | 
						|
CONSTANT: ALTWERASE   HEX: 00000200
 | 
						|
CONSTANT: IEXTEN      HEX: 00000400
 | 
						|
CONSTANT: EXTPROC     HEX: 00000800
 | 
						|
CONSTANT: TOSTOP      HEX: 00400000
 | 
						|
CONSTANT: FLUSHO      HEX: 00800000
 | 
						|
CONSTANT: NOKERNINFO  HEX: 02000000
 | 
						|
CONSTANT: PENDIN      HEX: 20000000
 | 
						|
CONSTANT: NOFLSH      HEX: 80000000
 |