87 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008 Doug Coleman.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: alien.syntax kernel math.bitfields sequences system serial ;
 | 
						|
IN: 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 ;
 | 
						|
 | 
						|
: TCSANOW     0 ; inline
 | 
						|
: TCSADRAIN   1 ; inline
 | 
						|
: TCSAFLUSH   2 ; inline
 | 
						|
: TCSASOFT    HEX: 10 ; inline
 | 
						|
 | 
						|
: TCIFLUSH    1 ; inline
 | 
						|
: TCOFLUSH    2 ; inline
 | 
						|
: TCIOFLUSH   3 ; inline
 | 
						|
: TCOOFF      1 ; inline
 | 
						|
: TCOON       2 ; inline
 | 
						|
: TCIOFF      3 ; inline
 | 
						|
: TCION       4 ; inline
 | 
						|
 | 
						|
! iflags
 | 
						|
: IGNBRK      HEX: 00000001 ; inline
 | 
						|
: BRKINT      HEX: 00000002 ; inline
 | 
						|
: IGNPAR      HEX: 00000004 ; inline
 | 
						|
: PARMRK      HEX: 00000008 ; inline
 | 
						|
: INPCK       HEX: 00000010 ; inline
 | 
						|
: ISTRIP      HEX: 00000020 ; inline
 | 
						|
: INLCR       HEX: 00000040 ; inline
 | 
						|
: IGNCR       HEX: 00000080 ; inline
 | 
						|
: ICRNL       HEX: 00000100 ; inline
 | 
						|
: IXON        HEX: 00000200 ; inline
 | 
						|
: IXOFF       HEX: 00000400 ; inline
 | 
						|
: IXANY       HEX: 00000800 ; inline
 | 
						|
: IMAXBEL     HEX: 00002000 ; inline
 | 
						|
: IUTF8       HEX: 00004000 ; inline
 | 
						|
 | 
						|
! oflags
 | 
						|
: OPOST       HEX: 00000001 ; inline
 | 
						|
: ONLCR       HEX: 00000002 ; inline
 | 
						|
: OXTABS      HEX: 00000004 ; inline
 | 
						|
: ONOEOT      HEX: 00000008 ; inline
 | 
						|
 | 
						|
! cflags
 | 
						|
: CIGNORE     HEX: 00000001 ; inline
 | 
						|
: CSIZE       HEX: 00000300 ; inline
 | 
						|
: CS5         HEX: 00000000 ; inline
 | 
						|
: CS6         HEX: 00000100 ; inline
 | 
						|
: CS7         HEX: 00000200 ; inline
 | 
						|
: CS8         HEX: 00000300 ; inline
 | 
						|
: CSTOPB      HEX: 00000400 ; inline
 | 
						|
: CREAD       HEX: 00000800 ; inline
 | 
						|
: PARENB      HEX: 00001000 ; inline
 | 
						|
: PARODD      HEX: 00002000 ; inline
 | 
						|
: HUPCL       HEX: 00004000 ; inline
 | 
						|
: CLOCAL      HEX: 00008000 ; inline
 | 
						|
: CCTS_OFLOW  HEX: 00010000 ; inline
 | 
						|
: CRTS_IFLOW  HEX: 00020000 ; inline
 | 
						|
: CRTSCTS     { CCTS_OFLOW CRTS_IFLOW } flags ; inline
 | 
						|
: CDTR_IFLOW  HEX: 00040000 ; inline
 | 
						|
: CDSR_OFLOW  HEX: 00080000 ; inline
 | 
						|
: CCAR_OFLOW  HEX: 00100000 ; inline
 | 
						|
: MDMBUF      HEX: 00100000 ; inline
 | 
						|
 | 
						|
! lflags
 | 
						|
: ECHOKE      HEX: 00000001 ; inline
 | 
						|
: ECHOE       HEX: 00000002 ; inline
 | 
						|
: ECHOK       HEX: 00000004 ; inline
 | 
						|
: ECHO        HEX: 00000008 ; inline
 | 
						|
: ECHONL      HEX: 00000010 ; inline
 | 
						|
: ECHOPRT     HEX: 00000020 ; inline
 | 
						|
: ECHOCTL     HEX: 00000040 ; inline
 | 
						|
: ISIG        HEX: 00000080 ; inline
 | 
						|
: ICANON      HEX: 00000100 ; inline
 | 
						|
: ALTWERASE   HEX: 00000200 ; inline
 | 
						|
: IEXTEN      HEX: 00000400 ; inline
 | 
						|
: EXTPROC     HEX: 00000800 ; inline
 | 
						|
: TOSTOP      HEX: 00400000 ; inline
 | 
						|
: FLUSHO      HEX: 00800000 ; inline
 | 
						|
: NOKERNINFO  HEX: 02000000 ; inline
 | 
						|
: PENDIN      HEX: 20000000 ; inline
 | 
						|
: NOFLSH      HEX: 80000000 ; inline
 |