github.com/xyproto/u-root@v6.0.1-0.20200302025726-5528e0c77a3c+incompatible/pkg/termios/var.go (about) 1 // Copyright 2015-2017 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package termios 6 7 import ( 8 "syscall" 9 10 "golang.org/x/sys/unix" 11 ) 12 13 type bit struct { 14 word int 15 mask uint32 16 } 17 18 var ( 19 boolFields = map[string]*bit{ 20 // Input processing 21 "ignbrk": {word: I, mask: syscall.IGNBRK}, 22 "brkint": {word: I, mask: syscall.BRKINT}, 23 "ignpar": {word: I, mask: syscall.IGNPAR}, 24 "parmrk": {word: I, mask: syscall.PARMRK}, 25 "inpck": {word: I, mask: syscall.INPCK}, 26 "istrip": {word: I, mask: syscall.ISTRIP}, 27 "inlcr": {word: I, mask: syscall.INLCR}, 28 "igncr": {word: I, mask: syscall.IGNCR}, 29 "icrnl": {word: I, mask: syscall.ICRNL}, 30 "iuclc": {word: I, mask: syscall.IUCLC}, 31 "ixon": {word: I, mask: syscall.IXON}, 32 "ixany": {word: I, mask: syscall.IXANY}, 33 "ixoff": {word: I, mask: syscall.IXOFF}, 34 "imaxbel": {word: I, mask: syscall.IMAXBEL}, 35 "iutf8": {word: I, mask: syscall.IUTF8}, 36 37 //Outputprocessing 38 "opost": {word: O, mask: syscall.OPOST}, 39 "olcuc": {word: O, mask: syscall.OLCUC}, 40 "onlcr": {word: O, mask: syscall.ONLCR}, 41 "ocrnl": {word: O, mask: syscall.OCRNL}, 42 "onocr": {word: O, mask: syscall.ONOCR}, 43 "onlret": {word: O, mask: syscall.ONLRET}, 44 "ofill": {word: O, mask: syscall.OFILL}, 45 "ofdel": {word: O, mask: syscall.OFDEL}, 46 47 //Localprocessing 48 "isig": {word: L, mask: syscall.ISIG}, 49 "icanon": {word: L, mask: syscall.ICANON}, 50 "xcase": {word: L, mask: syscall.XCASE}, 51 "echo": {word: L, mask: syscall.ECHO}, 52 "echoe": {word: L, mask: syscall.ECHOE}, 53 "echok": {word: L, mask: syscall.ECHOK}, 54 "echonl": {word: L, mask: syscall.ECHONL}, 55 "noflsh": {word: L, mask: syscall.NOFLSH}, 56 "tostop": {word: L, mask: syscall.TOSTOP}, 57 "echoctl": {word: L, mask: syscall.ECHOCTL}, 58 "echoprt": {word: L, mask: syscall.ECHOPRT}, 59 "echoke": {word: L, mask: syscall.ECHOKE}, 60 "flusho": {word: L, mask: syscall.FLUSHO}, 61 "pendin": {word: L, mask: syscall.PENDIN}, 62 "iexten": {word: L, mask: syscall.IEXTEN}, 63 64 //Controlprocessing 65 66 "cstopb": {word: C, mask: syscall.CSTOPB}, 67 "cread": {word: C, mask: syscall.CREAD}, 68 "parenb": {word: C, mask: syscall.PARENB}, 69 "parodd": {word: C, mask: syscall.PARODD}, 70 "hupcl": {word: C, mask: syscall.HUPCL}, 71 "clocal": {word: C, mask: syscall.CLOCAL}, 72 } 73 cc = map[string]int{ 74 "min": 5, 75 "time": 0, 76 "lnext": syscall.VLNEXT, 77 //"flush": syscall.VFLUSH, 78 "intr": syscall.VINTR, 79 "quit": syscall.VQUIT, 80 "erase": syscall.VERASE, 81 "kill": syscall.VKILL, 82 "eof": syscall.VEOF, 83 "eol": syscall.VEOL, 84 "eol2": syscall.VEOL2, 85 //"swtch": syscall.VSWTCH, 86 "start": syscall.VSTART, 87 "stop": syscall.VSTOP, 88 "susp": syscall.VSUSP, 89 //"rprnt": syscall.VRPRNT, 90 "werase": syscall.VWERASE, 91 } 92 ) 93 94 // These consts describe the offsets into the termios struct of various elements. 95 const ( 96 I = iota // Input control 97 O // Output control 98 C // Control 99 L // Line control 100 ) 101 102 var ( 103 // baud2unixB convert a baudrate to the corresponding unix const. 104 baud2unixB = map[int]uint32{ 105 50: unix.B50, 106 75: unix.B75, 107 110: unix.B110, 108 134: unix.B134, 109 150: unix.B150, 110 200: unix.B200, 111 300: unix.B300, 112 600: unix.B600, 113 1200: unix.B1200, 114 1800: unix.B1800, 115 2400: unix.B2400, 116 4800: unix.B4800, 117 9600: unix.B9600, 118 19200: unix.B19200, 119 38400: unix.B38400, 120 57600: unix.B57600, 121 115200: unix.B115200, 122 230400: unix.B230400, 123 460800: unix.B460800, 124 500000: unix.B500000, 125 576000: unix.B576000, 126 921600: unix.B921600, 127 1000000: unix.B1000000, 128 1152000: unix.B1152000, 129 1500000: unix.B1500000, 130 2000000: unix.B2000000, 131 2500000: unix.B2500000, 132 3000000: unix.B3000000, 133 3500000: unix.B3500000, 134 4000000: unix.B4000000, 135 } 136 )