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  )