github.com/mem/u-root@v2.0.1-0.20181004165302-9b18b4636a33+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  
    11  type bit struct {
    12  	word int
    13  	mask uint32
    14  }
    15  
    16  var (
    17  	boolFields = map[string]*bit{
    18  		// Input processing
    19  		"ignbrk":  {word: I, mask: syscall.IGNBRK},
    20  		"brkint":  {word: I, mask: syscall.BRKINT},
    21  		"ignpar":  {word: I, mask: syscall.IGNPAR},
    22  		"parmrk":  {word: I, mask: syscall.PARMRK},
    23  		"inpck":   {word: I, mask: syscall.INPCK},
    24  		"istrip":  {word: I, mask: syscall.ISTRIP},
    25  		"inlcr":   {word: I, mask: syscall.INLCR},
    26  		"igncr":   {word: I, mask: syscall.IGNCR},
    27  		"icrnl":   {word: I, mask: syscall.ICRNL},
    28  		"iuclc":   {word: I, mask: syscall.IUCLC},
    29  		"ixon":    {word: I, mask: syscall.IXON},
    30  		"ixany":   {word: I, mask: syscall.IXANY},
    31  		"ixoff":   {word: I, mask: syscall.IXOFF},
    32  		"imaxbel": {word: I, mask: syscall.IMAXBEL},
    33  		"iutf8":   {word: I, mask: syscall.IUTF8},
    34  
    35  		//Outputprocessing
    36  		"opost":  {word: O, mask: syscall.OPOST},
    37  		"olcuc":  {word: O, mask: syscall.OLCUC},
    38  		"onlcr":  {word: O, mask: syscall.ONLCR},
    39  		"ocrnl":  {word: O, mask: syscall.OCRNL},
    40  		"onocr":  {word: O, mask: syscall.ONOCR},
    41  		"onlret": {word: O, mask: syscall.ONLRET},
    42  		"ofill":  {word: O, mask: syscall.OFILL},
    43  		"ofdel":  {word: O, mask: syscall.OFDEL},
    44  
    45  		//Localprocessing
    46  		"isig":    {word: L, mask: syscall.ISIG},
    47  		"icanon":  {word: L, mask: syscall.ICANON},
    48  		"xcase":   {word: L, mask: syscall.XCASE},
    49  		"echo":    {word: L, mask: syscall.ECHO},
    50  		"echoe":   {word: L, mask: syscall.ECHOE},
    51  		"echok":   {word: L, mask: syscall.ECHOK},
    52  		"echonl":  {word: L, mask: syscall.ECHONL},
    53  		"noflsh":  {word: L, mask: syscall.NOFLSH},
    54  		"tostop":  {word: L, mask: syscall.TOSTOP},
    55  		"echoctl": {word: L, mask: syscall.ECHOCTL},
    56  		"echoprt": {word: L, mask: syscall.ECHOPRT},
    57  		"echoke":  {word: L, mask: syscall.ECHOKE},
    58  		"flusho":  {word: L, mask: syscall.FLUSHO},
    59  		"pendin":  {word: L, mask: syscall.PENDIN},
    60  		"iexten":  {word: L, mask: syscall.IEXTEN},
    61  
    62  		//Controlprocessing
    63  
    64  		"cstopb": {word: C, mask: syscall.CSTOPB},
    65  		"cread":  {word: C, mask: syscall.CREAD},
    66  		"parenb": {word: C, mask: syscall.PARENB},
    67  		"parodd": {word: C, mask: syscall.PARODD},
    68  		"hupcl":  {word: C, mask: syscall.HUPCL},
    69  		"clocal": {word: C, mask: syscall.CLOCAL},
    70  	}
    71  	cc = map[string]int{
    72  		"min":   5,
    73  		"time":  0,
    74  		"lnext": syscall.VLNEXT,
    75  		//"flush": syscall.VFLUSH,
    76  		"intr":  syscall.VINTR,
    77  		"quit":  syscall.VQUIT,
    78  		"erase": syscall.VERASE,
    79  		"kill":  syscall.VKILL,
    80  		"eof":   syscall.VEOF,
    81  		"eol":   syscall.VEOL,
    82  		"eol2":  syscall.VEOL2,
    83  		//"swtch": syscall.VSWTCH,
    84  		"start": syscall.VSTART,
    85  		"stop":  syscall.VSTOP,
    86  		"susp":  syscall.VSUSP,
    87  		//"rprnt": syscall.VRPRNT,
    88  		"werase": syscall.VWERASE,
    89  	}
    90  )
    91  
    92  // These consts describe the offsets into the termios struct of various elements.
    93  const (
    94  	I = iota // Input control
    95  	O        // Output control
    96  	C        // Control
    97  	L        // Line control
    98  )