131 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008 Doug Coleman.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: assocs alien.syntax kernel io.serial system unix ;
 | 
						|
IN: io.serial.unix
 | 
						|
 | 
						|
CONSTANT: TCSANOW     0
 | 
						|
CONSTANT: TCSADRAIN   1
 | 
						|
CONSTANT: TCSAFLUSH   2
 | 
						|
 | 
						|
CONSTANT: TCIFLUSH    0
 | 
						|
CONSTANT: TCOFLUSH    1
 | 
						|
CONSTANT: TCIOFLUSH   2
 | 
						|
 | 
						|
CONSTANT: TCOOFF      0
 | 
						|
CONSTANT: TCOON       1
 | 
						|
CONSTANT: TCIOFF      2
 | 
						|
CONSTANT: TCION       3
 | 
						|
 | 
						|
! iflag
 | 
						|
CONSTANT: IGNBRK  OCT: 0000001
 | 
						|
CONSTANT: BRKINT  OCT: 0000002
 | 
						|
CONSTANT: IGNPAR  OCT: 0000004
 | 
						|
CONSTANT: PARMRK  OCT: 0000010
 | 
						|
CONSTANT: INPCK   OCT: 0000020
 | 
						|
CONSTANT: ISTRIP  OCT: 0000040
 | 
						|
CONSTANT: INLCR   OCT: 0000100
 | 
						|
CONSTANT: IGNCR   OCT: 0000200
 | 
						|
CONSTANT: ICRNL   OCT: 0000400
 | 
						|
CONSTANT: IUCLC   OCT: 0001000
 | 
						|
CONSTANT: IXON    OCT: 0002000
 | 
						|
CONSTANT: IXANY   OCT: 0004000
 | 
						|
CONSTANT: IXOFF   OCT: 0010000
 | 
						|
CONSTANT: IMAXBEL OCT: 0020000
 | 
						|
CONSTANT: IUTF8   OCT: 0040000
 | 
						|
 | 
						|
! oflag
 | 
						|
CONSTANT: OPOST   OCT: 0000001
 | 
						|
CONSTANT: OLCUC   OCT: 0000002
 | 
						|
CONSTANT: ONLCR   OCT: 0000004
 | 
						|
CONSTANT: OCRNL   OCT: 0000010
 | 
						|
CONSTANT: ONOCR   OCT: 0000020
 | 
						|
CONSTANT: ONLRET  OCT: 0000040
 | 
						|
CONSTANT: OFILL   OCT: 0000100
 | 
						|
CONSTANT: OFDEL   OCT: 0000200
 | 
						|
CONSTANT: NLDLY  OCT: 0000400
 | 
						|
CONSTANT:   NL0  OCT: 0000000
 | 
						|
CONSTANT:   NL1  OCT: 0000400
 | 
						|
CONSTANT: CRDLY  OCT: 0003000
 | 
						|
CONSTANT:   CR0  OCT: 0000000
 | 
						|
CONSTANT:   CR1  OCT: 0001000
 | 
						|
CONSTANT:   CR2  OCT: 0002000
 | 
						|
CONSTANT:   CR3  OCT: 0003000
 | 
						|
CONSTANT: TABDLY OCT: 0014000
 | 
						|
CONSTANT:   TAB0 OCT: 0000000
 | 
						|
CONSTANT:   TAB1 OCT: 0004000
 | 
						|
CONSTANT:   TAB2 OCT: 0010000
 | 
						|
CONSTANT:   TAB3 OCT: 0014000
 | 
						|
CONSTANT: BSDLY  OCT: 0020000
 | 
						|
CONSTANT:   BS0  OCT: 0000000
 | 
						|
CONSTANT:   BS1  OCT: 0020000
 | 
						|
CONSTANT: FFDLY  OCT: 0100000
 | 
						|
CONSTANT:   FF0  OCT: 0000000
 | 
						|
CONSTANT:   FF1  OCT: 0100000
 | 
						|
 | 
						|
! cflags
 | 
						|
CONSTANT: CSIZE   OCT: 0000060
 | 
						|
CONSTANT:   CS5   OCT: 0000000
 | 
						|
CONSTANT:   CS6   OCT: 0000020
 | 
						|
CONSTANT:   CS7   OCT: 0000040
 | 
						|
CONSTANT:   CS8   OCT: 0000060
 | 
						|
CONSTANT: CSTOPB  OCT: 0000100
 | 
						|
CONSTANT: CREAD   OCT: 0000200
 | 
						|
CONSTANT: PARENB  OCT: 0000400
 | 
						|
CONSTANT: PARODD  OCT: 0001000
 | 
						|
CONSTANT: HUPCL   OCT: 0002000
 | 
						|
CONSTANT: CLOCAL  OCT: 0004000
 | 
						|
CONSTANT: CIBAUD  OCT: 002003600000
 | 
						|
CONSTANT: CRTSCTS OCT: 020000000000
 | 
						|
 | 
						|
! lflags
 | 
						|
CONSTANT: ISIG    OCT: 0000001
 | 
						|
CONSTANT: ICANON  OCT: 0000002
 | 
						|
CONSTANT: XCASE  OCT: 0000004
 | 
						|
CONSTANT: ECHO    OCT: 0000010
 | 
						|
CONSTANT: ECHOE   OCT: 0000020
 | 
						|
CONSTANT: ECHOK   OCT: 0000040
 | 
						|
CONSTANT: ECHONL  OCT: 0000100
 | 
						|
CONSTANT: NOFLSH  OCT: 0000200
 | 
						|
CONSTANT: TOSTOP  OCT: 0000400
 | 
						|
CONSTANT: ECHOCTL OCT: 0001000
 | 
						|
CONSTANT: ECHOPRT OCT: 0002000
 | 
						|
CONSTANT: ECHOKE  OCT: 0004000
 | 
						|
CONSTANT: FLUSHO  OCT: 0010000
 | 
						|
CONSTANT: PENDIN  OCT: 0040000
 | 
						|
CONSTANT: IEXTEN  OCT: 0100000
 | 
						|
 | 
						|
M: linux lookup-baud ( n -- n )
 | 
						|
    H{
 | 
						|
        { 0       OCT: 0000000 }
 | 
						|
        { 50      OCT: 0000001 }
 | 
						|
        { 75      OCT: 0000002 }
 | 
						|
        { 110     OCT: 0000003 }
 | 
						|
        { 134     OCT: 0000004 }
 | 
						|
        { 150     OCT: 0000005 }
 | 
						|
        { 200     OCT: 0000006 }
 | 
						|
        { 300     OCT: 0000007 }
 | 
						|
        { 600     OCT: 0000010 }
 | 
						|
        { 1200    OCT: 0000011 }
 | 
						|
        { 1800    OCT: 0000012 }
 | 
						|
        { 2400    OCT: 0000013 }
 | 
						|
        { 4800    OCT: 0000014 }
 | 
						|
        { 9600    OCT: 0000015 }
 | 
						|
        { 19200   OCT: 0000016 }
 | 
						|
        { 38400   OCT: 0000017 }
 | 
						|
        { 57600   OCT: 0010001 }
 | 
						|
        { 115200  OCT: 0010002 }
 | 
						|
        { 230400  OCT: 0010003 }
 | 
						|
        { 460800  OCT: 0010004 }
 | 
						|
        { 500000  OCT: 0010005 }
 | 
						|
        { 576000  OCT: 0010006 }
 | 
						|
        { 921600  OCT: 0010007 }
 | 
						|
        { 1000000 OCT: 0010010 }
 | 
						|
        { 1152000 OCT: 0010011 }
 | 
						|
        { 1500000 OCT: 0010012 }
 | 
						|
        { 2000000 OCT: 0010013 }
 | 
						|
        { 2500000 OCT: 0010014 }
 | 
						|
        { 3000000 OCT: 0010015 }
 | 
						|
        { 3500000 OCT: 0010016 }
 | 
						|
        { 4000000 OCT: 0010017 }
 | 
						|
    } ?at [ invalid-baud ] unless ;
 |