summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2017-01-09 12:06:14 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2017-01-09 12:06:14 +0000
commita20de2b86d0939a58dfb2f51057f86b1cbbdc7e3 (patch)
tree01ec6f321f5fced0705bf704008295474009f941
parent3bf32d20a3f6b8bfaabf39e2ef539e46e311e973 (diff)
parentb7b26e12d252c977b500719111379b6b9aeeb4e5 (diff)
downloadillumos-joyent-a20de2b86d0939a58dfb2f51057f86b1cbbdc7e3.tar.gz
[illumos-gate merge]
commit 9a2c4685271c2f0cb4b08f4cc1192387e67af3f9 1599 backspace should perform delete on console commit d98490e4c04a9cb28c4a2c73887e16e5da1d9468 7734 uts: update properties with correct type 7735 uts: bootfs should use ddi_prop_get_int64() commit b130c20454b5d071292134d42cf34c9f5938c1d5 7738 libipadm`ipadm_enable_addr() leaks addrnvl commit cc6b30399e68fb9666466c57ed822f297b2c6ae4 7737 libipadm`ipadm_enable_if() leaks ifnvl
-rw-r--r--exception_lists/cstyle1
-rw-r--r--usr/src/cmd/ttymon/stty.c6
-rw-r--r--usr/src/cmd/ttymon/sttyparse.c6
-rw-r--r--usr/src/lib/libipadm/common/ipadm_addr.c1
-rw-r--r--usr/src/lib/libipadm/common/ipadm_if.c2
-rw-r--r--usr/src/man/man1/stty.139
-rw-r--r--usr/src/man/man3head/termios.h.3head17
-rw-r--r--usr/src/man/man7i/termio.7i88
-rw-r--r--usr/src/uts/common/fs/bootfs/bootfs_construct.c28
-rw-r--r--usr/src/uts/common/io/ldterm.c4
-rw-r--r--usr/src/uts/common/io/options.conf2
-rw-r--r--usr/src/uts/common/io/tty_common.c5
-rw-r--r--usr/src/uts/common/sys/termios.h4
-rw-r--r--usr/src/uts/i86pc/os/ddi_impl.c43
-rw-r--r--usr/src/uts/sun4u/blade/io/options.conf4
-rw-r--r--usr/src/uts/sun4u/opl/io/options.conf4
16 files changed, 120 insertions, 134 deletions
diff --git a/exception_lists/cstyle b/exception_lists/cstyle
index e10642f884..1184618adc 100644
--- a/exception_lists/cstyle
+++ b/exception_lists/cstyle
@@ -187,6 +187,7 @@ usr/src/cmd/mandoc/term_ps.c
usr/src/cmd/mandoc/term.c
usr/src/cmd/mandoc/term.h
usr/src/cmd/mandoc/tree.c
+usr/src/cmd/ttymon/sttyparse.c
usr/src/common/ficl/ficltokens.h
usr/src/common/bzip2/bzlib.h
usr/src/common/bzip2/crctable.c
diff --git a/usr/src/cmd/ttymon/stty.c b/usr/src/cmd/ttymon/stty.c
index bfccdd3cc0..8ae976fdbd 100644
--- a/usr/src/cmd/ttymon/stty.c
+++ b/usr/src/cmd/ttymon/stty.c
@@ -321,6 +321,10 @@ prmodes(void) /* print modes, no options, argc is 1 */
pit(cb.c_cc[VQUIT], "quit", "; ");
if (cb.c_cc[VERASE] != CERASE)
pit(cb.c_cc[VERASE], "erase", "; ");
+ if (term & TERMIOS) {
+ if (cb.c_cc[VERASE2] != CERASE2)
+ pit(cb.c_cc[VERASE], "erase2", "; ");
+ }
if (cb.c_cc[VKILL] != CKILL)
pit(cb.c_cc[VKILL], "kill", "; ");
if (cb.c_cc[VEOF] != CEOF)
@@ -543,6 +547,8 @@ pramodes(void) /* print all modes, -a option */
pit(cb.c_cc[VINTR], "intr", "; ");
pit(cb.c_cc[VQUIT], "quit", "; ");
pit(cb.c_cc[VERASE], "erase", "; ");
+ if (term & TERMIOS)
+ pit(cb.c_cc[VERASE2], "erase2", "; ");
pit(cb.c_cc[VKILL], "kill", ";\n");
pit(cb.c_cc[VEOF], "eof", "; ");
pit(cb.c_cc[VEOL], "eol", "; ");
diff --git a/usr/src/cmd/ttymon/sttyparse.c b/usr/src/cmd/ttymon/sttyparse.c
index 03eccb8011..84599af825 100644
--- a/usr/src/cmd/ttymon/sttyparse.c
+++ b/usr/src/cmd/ttymon/sttyparse.c
@@ -131,11 +131,15 @@ sttyparse(int argc, char *argv[], int term, struct termio *ocb,
cb->c_cc[VLNEXT] = gct(*++argv, term);
else if (eq("status") && --argc)
cb->c_cc[VSTATUS] = gct(*++argv, term);
+ else if (eq("erase2") && --argc)
+ cb->c_cc[VERASE2] = gct(*++argv, term);
}
if (match)
continue;
if (eq("ek")) {
cb->c_cc[VERASE] = CERASE;
+ if (term & TERMIOS)
+ cb->c_cc[VERASE2] = CERASE2;
cb->c_cc[VKILL] = CKILL;
} else if (eq("line") &&
!(term & TERMIOS) && --argc) {
@@ -149,6 +153,8 @@ sttyparse(int argc, char *argv[], int term, struct termio *ocb,
cb->c_cc[VEOL] = CNUL;
} else if (eq("sane")) {
cb->c_cc[VERASE] = CERASE;
+ if (term & TERMIOS)
+ cb->c_cc[VERASE2] = CERASE2;
cb->c_cc[VKILL] = CKILL;
cb->c_cc[VQUIT] = CQUIT;
cb->c_cc[VINTR] = CINTR;
diff --git a/usr/src/lib/libipadm/common/ipadm_addr.c b/usr/src/lib/libipadm/common/ipadm_addr.c
index 0668c1de5b..a62bcb165b 100644
--- a/usr/src/lib/libipadm/common/ipadm_addr.c
+++ b/usr/src/lib/libipadm/common/ipadm_addr.c
@@ -3578,6 +3578,7 @@ ipadm_enable_addr(ipadm_handle_t iph, const char *aobjname, uint32_t flags)
break;
}
+ nvlist_free(addrnvl);
return (status);
}
diff --git a/usr/src/lib/libipadm/common/ipadm_if.c b/usr/src/lib/libipadm/common/ipadm_if.c
index 6d1e27dcbf..41f22e4eeb 100644
--- a/usr/src/lib/libipadm/common/ipadm_if.c
+++ b/usr/src/lib/libipadm/common/ipadm_if.c
@@ -1501,6 +1501,8 @@ ipadm_enable_if(ipadm_handle_t iph, const char *ifname, uint32_t flags)
iph->iph_flags |= IPH_INIT;
status = i_ipadm_init_ifobj(iph, ifname, ifnvl);
iph->iph_flags &= ~IPH_INIT;
+
+ nvlist_free(ifnvl);
return (status);
}
diff --git a/usr/src/man/man1/stty.1 b/usr/src/man/man1/stty.1
index 21e44cae64..1783a7c613 100644
--- a/usr/src/man/man1/stty.1
+++ b/usr/src/man/man1/stty.1
@@ -11,7 +11,7 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
.\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH STTY 1 "Jan 04, 2014"
+.TH STTY 1 "Dec 30, 2016"
.SH NAME
stty \- set the options for a terminal
.SH SYNOPSIS
@@ -46,7 +46,6 @@ stty \- set the options for a terminal
.fi
.SH DESCRIPTION
-.sp
.LP
The \fBstty\fR utility sets certain terminal I/O options for the device that is
the current standard input. Without arguments, \fBstty\fR reports the settings
@@ -70,7 +69,6 @@ options in the earlier sections. Notice that many combinations of options make
no sense, but no sanity checking is performed. Hardware flow control and clock
modes options might not be supported by all hardware interfaces.
.SH OPTIONS
-.sp
.LP
The following options are supported:
.sp
@@ -94,11 +92,9 @@ it. Otherwise, it emits termio-type output.
.RE
.SH OPERANDS
-.sp
.LP
The following \fImode\fR operands are supported:
.SS "Control Modes"
-.sp
.ne 2
.na
\fB\fBparenb\fR(\fB-parenb\fR)\fR
@@ -293,7 +289,6 @@ the line is hung up immediately.
.RE
.SS "Input Modes"
-.sp
.ne 2
.na
\fB\fBignbrk\fR (\fB-ignbrk\fR)\fR
@@ -427,7 +422,6 @@ stream overflows.
.RE
.SS "Output Modes"
-.sp
.ne 2
.na
\fB\fBopost\fR (\fB-opost\fR)\fR
@@ -555,7 +549,6 @@ Select style of delay for vertical tabs (see \fBtermio\fR(7I)).
.RE
.SS "Local Modes"
-.sp
.ne 2
.na
\fB\fBisig\fR(\fB-isig\fR)\fR
@@ -738,7 +731,6 @@ Use application mode (use line mode) on a synchronous line.
.RE
.SS "Hardware Flow Control Modes"
-.sp
.ne 2
.na
\fB\fBrtsxoff\fR (\fB-rtsxoff\fR)\fR
@@ -784,7 +776,6 @@ Enable (disable) isochronous hardware flow control on input.
.RE
.SS "Clock Modes"
-.sp
.ne 2
.na
\fB\fBxcibrg\fR\fR
@@ -941,7 +932,6 @@ timing (DTE source) lead, CCITT V.24 circuit 128, no EIA-232-D pin.
.RE
.SS "Control Assignments"
-.sp
.ne 2
.na
\fB\fIcontrol-character\fR \fIc\fR\fR
@@ -956,10 +946,10 @@ Set \fIcontrol-character\fR to \fIc\fR, where:
.ad
.RS 21n
is \fBctab\fR, \fBdiscard\fR, \fBdsusp\fR, \fBeof\fR, \fBeol\fR, \fBeol2\fR,
-\fBerase\fR, \fBintr\fR, \fBkill\fR, \fBlnext\fR, \fBquit\fR, \fBreprint\fR,
-\fBstart\fR, \fBstop\fR, \fBsusp\fR, \fBstatus\fR, \fBswtch\fR, or \fBwerase\fR
-(\fBctab\fR is used with \fB-stappl\fR, see \fBtermio\fR(7I)). For information
-on \fBswtch\fR, see NOTES.
+\fBerase\fR, \fBerase2\fR, \fBintr\fR, \fBkill\fR, \fBlnext\fR, \fBquit\fR,
+\fBreprint\fR, \fBstart\fR, \fBstop\fR, \fBsusp\fR, \fBstatus\fR, \fBswtch\fR,
+or \fBwerase\fR (\fBctab\fR is used with \fB-stappl\fR, see \fBtermio\fR(7I)).
+For information on \fBswtch\fR, see NOTES.
.RE
.sp
@@ -1025,7 +1015,6 @@ Set line discipline to \fIi\fR ( \fB0\fR< \fIi\fR <\fB127\fR).
.RE
.SS "Combination Modes"
-.sp
.ne 2
.na
\fB\fIsaved\fR \fIsettings\fR\fR
@@ -1125,7 +1114,6 @@ stty cs8 -icanon min 1 time 0 -isig -xcase \e
.RE
.SS "/usr/bin/stty, /usr/xpg6/bin/stty"
-.sp
.ne 2
.na
\fB\fBnl\fR (\fB-nl\fR)\fR
@@ -1136,7 +1124,6 @@ Unset (set) \fBicrnl\fR, \fBonlcr\fR. In addition \fB-nl\fR unsets \fBinlcr\fR,
.RE
.SS "/usr/xpg4/bin/stty"
-.sp
.ne 2
.na
\fB\fBnl\fR (\fB-nl\fR)\fR
@@ -1180,7 +1167,8 @@ Preserve (expand to spaces) tabs when printing.
\fB\fBek\fR\fR
.ad
.RS 24n
-Reset ERASE and KILL characters back to normal DEL and CTRL-u, respectively.
+Reset ERASE, ERASE2, and KILL characters back to normal DEL, CTRL-h, and CTRL-u,
+respectively.
.RE
.sp
@@ -1214,7 +1202,6 @@ Set normal asynchronous communications where clock settings are \fBxcibrg\fR,
.RE
.SS "Window Size"
-.sp
.ne 2
.na
\fB\fBrows\fR \fIn\fR\fR
@@ -1261,7 +1248,6 @@ Set horizontal window size to \fIn\fR pixels.
.RE
.SH USAGE
-.sp
.LP
The \fB-g\fR flag is designed to facilitate the saving and restoring of
terminal state from the shell level. For example, a program can:
@@ -1281,13 +1267,11 @@ stty $saveterm # restore terminal state
Since the \fB-a\fR format is so loosely specified, scripts that save and
restore terminal settings should use the \fB-g\fR option.
.SH ENVIRONMENT VARIABLES
-.sp
.LP
See \fBenviron\fR(5) for descriptions of the following environment variables
that affect the execution of \fBstty\fR: \fBLANG\fR, \fBLC_ALL\fR,
\fBLC_CTYPE\fR, \fBLC_MESSAGES\fR, and \fBNLSPATH\fR.
.SH EXIT STATUS
-.sp
.LP
The following exit values are returned:
.sp
@@ -1309,13 +1293,9 @@ An error occurred.
.RE
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.SS "/usr/xpg4/bin/stty"
-.sp
-
-.sp
.TS
box;
c | c
@@ -1328,9 +1308,6 @@ Standard See \fBstandards\fR(5).
.TE
.SS "/usr/xpg6/bin/stty"
-.sp
-
-.sp
.TS
box;
c | c
@@ -1343,13 +1320,11 @@ Standard See \fBstandards\fR(5).
.TE
.SH SEE ALSO
-.sp
.LP
\fBtabs\fR(1), \fBioctl\fR(2), \fBwrite\fR(2), \fBgetwidth\fR(3C),
\fBattributes\fR(5), \fBenviron\fR(5), \fBstandards\fR(5), \fBldterm\fR(7M),
\fBtermio\fR(7I), \fBtermiox\fR(7I)
.SH NOTES
-.sp
.LP
Solaris does not support any of the actions implied by \fBswtch\fR, which was
used by the \fBsxt\fR driver on System V release 4. Solaris allows the
diff --git a/usr/src/man/man3head/termios.h.3head b/usr/src/man/man3head/termios.h.3head
index cb29f860ac..cbb49a4249 100644
--- a/usr/src/man/man3head/termios.h.3head
+++ b/usr/src/man/man3head/termios.h.3head
@@ -7,7 +7,7 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH TERMIOS.H 3HEAD "Jan 04, 2014"
+.TH TERMIOS.H 3HEAD "Dec 30, 2016"
.SH NAME
termios.h, termios \- define values for termios
.SH SYNOPSIS
@@ -17,13 +17,11 @@ termios.h, termios \- define values for termios
.fi
.SH DESCRIPTION
-.sp
.LP
The <\fBtermios.h\fR> header contains the definitions used by the terminal I/O
interfaces. See \fBtermios\fR(3C) and \fBtermio\fR(7I) for an overview of the
terminal interface.
.SS "The termios Structure"
-.sp
.LP
The following data types are defined through \fBtypedef\fR:
.sp
@@ -97,11 +95,13 @@ The following subscript names for the array \fBc_cc\fR are defined:
.TS
c c c
l l l .
-Subscript UsageCanonical Mode Subscript UsageNon-Canonical Mode Description
+Subscript Usage Subscript Usage Description
+Canonical Mode Non-Canonical Mode
_
\fBVEOF\fR EOF character
\fBVEOL\fR EOL character
\fBVERASE\fR ERASE character
+\fBVERASE2\fR ERASE2 character
\fBVINTR\fR \fBVINTR\fR INTR character
\fBVKILL\fR KILL character
\fBVMIN\fR MIN value
@@ -122,7 +122,6 @@ subscripts, respectively.
.LP
The header file provides the flags described below.
.SS "Input Modes"
-.sp
.LP
The \fBc_iflag\fR field describes the basic terminal input control:
.sp
@@ -234,7 +233,6 @@ Mark parity errors.
.RE
.SS "Output Modes"
-.sp
.LP
The \fBc_oflag\fR field specifies the system treatment of output:
.sp
@@ -490,7 +488,6 @@ form-feed delay type 1
.RE
.SS "Baud Rate Selection"
-.sp
.LP
The input and output baud rates are stored in the \fBtermios\fR structure.
These are the valid values for objects of type \fBspeed_ t\fR. The following
@@ -641,7 +638,6 @@ Hang up
.RE
.SS "Control Modes"
-.sp
.LP
The \fBc_cflag\fR field describes the hardware control of the terminal; not all
values specified are required to be supported by the underlying hardware:
@@ -749,7 +745,6 @@ Ignore modem status lines.
The implementation supports the functionality associated with the symbols
\fBCS7\fR, \fBCS8\fR, \fBCSTOPB\fR, \fBPARODD\fR, and \fBPARENB\fR.
.SS "Local Modes"
-.sp
.LP
The \fBc_lflag\fR field of the argument structure is used to control various
terminal functions:
@@ -835,7 +830,6 @@ Send \fBSIGTTOU\fR for background output.
.RE
.SS "Attribute Selection"
-.sp
.LP
The following symbolic constants for use with \fBtcsetattr()\fR are defined:
.sp
@@ -866,7 +860,6 @@ Change attributes when output has drained; also flush pending input.
.RE
.SS "Line Control"
-.sp
.LP
The following symbolic constants for use with \fBtcflush()\fR are defined:
.sp
@@ -936,7 +929,6 @@ Restart output.
.RE
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -952,7 +944,6 @@ Interface Stability Standard
.TE
.SH SEE ALSO
-.sp
.LP
\fBgetconf\fR(1), \fBcfgetispeed\fR(3C), \fBcfsetispeed\fR(3C),
\fBconfstr\fR(3C), \fBtcdrain\fR(3C), \fBtcflow\fR(3C), \fBtcflush\fR(3C),
diff --git a/usr/src/man/man7i/termio.7i b/usr/src/man/man7i/termio.7i
index 71c78d0e96..f7fa1bdc44 100644
--- a/usr/src/man/man7i/termio.7i
+++ b/usr/src/man/man7i/termio.7i
@@ -5,7 +5,7 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH TERMIO 7I "Sep 14, 2005"
+.TH TERMIO 7I "Dec 30, 2016"
.SH NAME
termio \- general terminal interface
.SH SYNOPSIS
@@ -29,7 +29,6 @@ termio \- general terminal interface
.fi
.SH DESCRIPTION
-.sp
.LP
This release supports a general interface for asynchronous communications ports
that is hardware-independent. The user interface to this functionality is using
@@ -60,7 +59,6 @@ input characters that have not yet been read by some program. When the input
limit is reached, all the characters saved in the buffer up to that point are
thrown away without notice.
.SS "Session Management (Job Control)"
-.sp
.LP
A control terminal will distinguish one of the process groups in the session
associated with it to be the foreground process group. All other process
@@ -113,7 +111,6 @@ process is not ignoring or holding \fBSIGTTOU\fR and is a member of an orphaned
process group, the write will fail with \fBerrno\fR set to \fBEIO\fR, and no
signal will be sent.
.SS "Canonical Mode Input Processing"
-.sp
.LP
Normally, terminal input is processed in units of lines. A line is delimited by
a newline (\fBASCII LF\fR) character, an end-of-file (\fBASCII EOT\fR)
@@ -124,15 +121,15 @@ It is not necessary, however, to read a whole line at once; any number of
characters may be requested in a read, even one, without losing information.
.sp
.LP
-During input, erase and kill processing is normally done. The \fBERASE\fR
-character (by default, the character \fBDEL\fR) erases the last character
+During input, erase, erase2, and kill processing is normally done. The
+\fBERASE\fR and \fBERASE2\fR character (by default, the character \fBDEL\fR for \fBERASE\fR and \fBControl-h\fR for \fBERASE2\fR) erases the last character
typed. The \fBWERASE\fR character (the character \fBControl-w\fR) erases the
last "word" typed in the current input line (but not any preceding spaces or
tabs). A "word" is defined as a sequence of non-blank characters, with tabs
-counted as blanks. Neither \fBERASE\fR nor \fBWERASE\fR will erase beyond the
-beginning of the line. The \fBKILL\fR character (by default, the character
-\fBNAK\fR) kills (deletes) the entire input line, and optionally outputs a
-newline character. All these characters operate on a key stroke basis,
+counted as blanks. None of \fBERASE\fR or \fBERASE2\fR or \fBWERASE\fR will
+erase beyond the beginning of the line. The \fBKILL\fR character (by default,
+the character \fBNAK\fR) kills (deletes) the entire input line, and optionally
+outputs a newline character. All these characters operate on a key stroke basis,
independent of any backspacing or tabbing that may have been done. The
\fBREPRINT\fR character (the character Control-r) prints a newline followed by
all characters that have not been read. Reprinting also occurs automatically if
@@ -141,11 +138,11 @@ output. The characters are reprinted as if they were being echoed;
consequencely, if \fBECHO\fR is not set, they are not printed.
.sp
.LP
-The \fBERASE\fR and \fBKILL\fR characters may be entered literally by preceding
-them with the escape character. In this case, the escape character is not read.
-The erase and kill characters may be changed.
+The \fBERASE\fR, \fBERASE2\fR, and \fBKILL\fR characters may be entered
+literally by preceding them with the escape character. In this case, the
+escape character is not read. The erase, erase2, and kill characters may be
+changed.
.SS "Non-canonical Mode Input Processing"
-.sp
.LP
In non-canonical mode input processing, input characters are not assembled into
lines, and erase and kill processing does not occur. The \fBMIN\fR and
@@ -222,7 +219,6 @@ returned without waiting for more characters to be input.
.RE
.SS "Comparing Different Cases of MIN, TIME Interaction"
-.sp
.LP
Some points to note about \fBMIN\fR and \fBTIME\fR :
.RS +4
@@ -263,7 +259,6 @@ denote a record length. For example, if a program does a read of 20 bytes,
\fBMIN\fR is 10, and 25 characters are present, then 20 characters will be
returned to the user.
.SS "Writing Characters"
-.sp
.LP
When one or more characters are written, they are transmitted to the terminal
as soon as previously written characters have finished typing. Input characters
@@ -272,7 +267,6 @@ characters more rapidly than they can be typed, it will be suspended when its
output queue exceeds some limit. When the queue is drained down to some
threshold, the program is resumed.
.SS "Special Characters"
-.sp
.LP
Certain characters have special functions on input. These functions and their
default character values are summarized as follows:
@@ -307,9 +301,19 @@ file (called \fBcore\fR) will be created in the current working directory.
\fB\fBERASE\fR\fR
.ad
.RS 11n
-(DEL) erases the preceding character. It does not erase beyond the start of a
-line, as delimited by a \fBNL\fR, \fBEOF\fR, \fBEOL\fR, or \fBEOL2\fR
-character.
+(DEL) erases the preceding character. It does not erase beyond
+the start of a line, as delimited by a \fBNL\fR, \fBEOF\fR, \fBEOL\fR, or
+\fBEOL2\fR character.
+.RE
+
+.sp
+.ne 2
+.na
+\fB\fBERASE2\fR\fR
+.ad
+.RS 11n
+(Control-h or \fBASCII BS\fR) erases the preceding character, with behaviour
+identical to that of ERASE.
.RE
.sp
@@ -476,19 +480,20 @@ signal will be ignored.
to be ignored. This works for all the special characters mentioned above. It
allows characters to be input that would otherwise be interpreted by the system
(for example \fBKILL, QUIT\fR). The character values for \fBINTR\fR,
-\fBQUIT\fR, \fBERASE\fR, \fBWERASE\fR, \fBKILL\fR, \fBREPRINT\fR, \fBEOF\fR,
-\fBEOL\fR, \fBEOL2\fR, \fBSWTCH\fR, \fBSUSP\fR, \fBDSUSP\fR, \fBSTOP\fR,
-\fBSTART\fR, \fBDISCARD\fR, \fBSTATUS\fR, and \fBLNEXT\fR may be changed to suit
-individual tastes. If the value of a special control character is
-_POSIX_VDISABLE (0), the function of that special control character is disabled.
-The \fBERASE\fR, \fBKILL\fR, and \fBEOF\fR characters may be escaped by a
-preceding backslash (\e) character, in which case no special function is done.
+\fBQUIT\fR, \fBERASE\fR, \fBERASE2\fR, \fBWERASE\fR, \fBKILL\fR, \fBREPRINT\fR,
+\fBEOF\fR, \fBEOL\fR, \fBEOL2\fR, \fBSWTCH\fR, \fBSUSP\fR, \fBDSUSP\fR,
+\fBSTOP\fR, \fBSTART\fR, \fBDISCARD\fR, \fBSTATUS\fR, and \fBLNEXT\fR may be
+changed to suit individual tastes. If the value of a special control character
+is _POSIX_VDISABLE (0), the function of that special control character is
+disabled.
+The \fBERASE\fR, \fBERASE2\fR, \fBKILL\fR, and \fBEOF\fR characters may be
+escaped by a preceding backslash (\e) character, in which case no special
+function is done.
Any of the special characters may be preceded by the \fBLNEXT\fR character, in
which case no special function is done.
.RE
.SS "Modem Disconnect"
-.sp
.LP
When a modem disconnect is detected, a \fBSIGHUP\fR signal is sent to the
terminal's controlling process. Unless other arrangements have been made, these
@@ -514,7 +519,6 @@ The controlling terminal will remain in this state until it is reinitialized
with a successful open by the controlling process, or deallocated by the
controlling process.
.SS "Terminal Parameters"
-.sp
.LP
The parameters that control the behavior of devices and modules providing the
\fBtermios\fR interface are specified by the \fBtermios\fR structure defined by
@@ -580,11 +584,12 @@ _
_
16 VSTATUS DC4
_
-17-19 Reserved
+17 VERASE2 BS
+_
+18-19 Reserved
.TE
.SS "Input Modes"
-.sp
.LP
The \fBc_iflag\fR field describes the basic terminal input control:
.sp
@@ -785,7 +790,6 @@ the input stream is not disturbed. If \fBIMAXBEL\fR is not set, no \fBBEL\fR
character is echoed, and all input present in the input queue is discarded if
the input stream overflows.
.SS "Output Modes"
-.sp
.LP
The \fBc_oflag\fR field specifies the system treatment of output:
.sp
@@ -1064,7 +1068,6 @@ character is transmitted.
.LP
The actual delays depend on line speed and system load.
.SS "Control Modes"
-.sp
.LP
The \fBc_cflag\fR field describes the hardware control of the terminal:
.sp
@@ -1619,7 +1622,6 @@ flow control and RTS signal to do inbound flow control.
.RE
.SS "Local Modes"
-.sp
.LP
The \fBc_lflag\fR field of the argument structure is used by the line
discipline to control terminal functions. The basic line discipline provides
@@ -1820,16 +1822,16 @@ When \fBICANON\fR is set, the following echo functions are possible.
.ie t \(bu
.el o
If \fBECHO\fR and \fBECHOE\fR are set, and \fBECHOPRT\fR is not set, the
-\fBERASE\fR and \fBWERASE\fR characters are echoed as one or more ASCII BS SP
-BS, which clears the last character(s) from a \fBCRT\fR screen.
+\fBERASE\fR, \fBERASE2\fR, and \fBWERASE\fR characters are echoed as one or
+more ASCII BS SP BS, which clears the last character(s) from a \fBCRT\fR screen.
.RE
.RS +4
.TP
.ie t \(bu
.el o
-If \fBECHO\fR, \fBECHOPRT\fR, and \fBIEXTEN\fR are set, the first \fBERASE\fR
-and \fBWERASE\fR character in a sequence echoes as a backslash (\fB\e\fR),
-followed by the characters being erased. Subsequent \fBERASE\fR and
+If \fBECHO\fR, \fBECHOPRT\fR, and \fBIEXTEN\fR are set, the first \fBERASE\fR,
+\fBERASE2\fR, and \fBWERASE\fR character in a sequence echoes as a backslash
+(\fB\e\fR), followed by the characters being erased. Subsequent \fBERASE\fR and
\fBWERASE\fR characters echo the characters being erased, in reverse order. The
next non-erase character causes a `/' (slash) to be typed before it is echoed.
\fBECHOPRT\fR should be used for hard copy terminals.
@@ -1900,13 +1902,11 @@ enabled: special characters ( \fBWERASE\fR, \fBREPRINT\fR, \fBDISCARD\fR, and
\fBLNEXT\fR) and local flags ( \fBTOSTOP\fR, \fBECHOCTL\fR, \fBECHOPRT\fR,
\fBECHOKE\fR, \fBFLUSHO\fR, and \fBPENDIN\fR).
.SS "Minimum and Timeout"
-.sp
.LP
The \fBMIN\fR and \fBTIME\fR values were described previously, in the
subsection, \fBNon-canonical Mode Input Processing\fR. The initial value of
\fBMIN\fR is 1, and the initial value of \fBTIME\fR is 0.
.SS "Terminal Size"
-.sp
.LP
The number of lines and columns on the terminal's display is specified in the
\fBwinsize\fR structure defined by \fBsys/termios.h\fR and includes the
@@ -1922,7 +1922,6 @@ unsigned short ws_ypixel; /* vertical size, in pixels */
.in -2
.SS "Termio Structure"
-.sp
.LP
The SunOS/SVR4 \fBtermio\fR structure is used by some \fBioctl\fRs; it is
defined by \fBsys/termio.h\fR and includes the following members:
@@ -1983,7 +1982,6 @@ The calls that use the \fBtermio\fR structure only affect the flags and control
characters that can be stored in the \fBtermio\fR structure; all other flags
and control characters are unaffected.
.SS "Modem Lines"
-.sp
.LP
On special files representing serial ports, modem control lines can be read.
Control lines (if the underlying hardware supports it) may also be changed.
@@ -2093,7 +2091,6 @@ To be able to issue the \fBTIOCGSOFTCAR\fR and \fBTIOCSSOFTCAR\fR \fBioctl\fR
calls, the \fBtty\fR line should be opened with \fBO_NDELAY\fR so that the
\fBopen\fR(2) will not wait for the carrier.
.SS "Default Values"
-.sp
.LP
The initial \fBtermios\fR values upon driver open is configurable. This is
accomplished by setting the "ttymodes" property in the file
@@ -2111,7 +2108,6 @@ effect. The initial input control value is \fBBRKINT\fR, \fBICRNL\fR,
\fBISIG\fR, \fBICANON\fR, \fBIEXTEN\fR, \fBECHO\fR, \fBECHOK\fR, \fBECHOE\fR,
\fBECHOKE\fR, \fBECHOCTL\fR.
.SH IOCTLS
-.sp
.LP
The \fBioctl\fRs supported by devices and \fBSTREAMS\fR modules providing the
\fBtermios\fR(3C) interface are listed below. Some calls may not be supported
@@ -2415,11 +2411,9 @@ will automatically calibrate to it.
.RE
.SH FILES
-.sp
.LP
Files in or under /\fBdev\fR
.SH SEE ALSO
-.sp
.LP
\fBstty\fR(1), \fBfork\fR(2), \fBgetpgid\fR(2), \fBgetsid\fR(2),
\fBioctl\fR(2), \fBsetsid\fR(2), \fBsigaction\fR(2), \fBsignal\fR(3C),
diff --git a/usr/src/uts/common/fs/bootfs/bootfs_construct.c b/usr/src/uts/common/fs/bootfs/bootfs_construct.c
index b909b5d121..e94c967b13 100644
--- a/usr/src/uts/common/fs/bootfs/bootfs_construct.c
+++ b/usr/src/uts/common/fs/bootfs/bootfs_construct.c
@@ -292,11 +292,10 @@ bootfs_construct_entry(bootfs_t *bfs, uintptr_t addr, uint64_t size,
void
bootfs_construct(bootfs_t *bfs)
{
- uint_t id = 0, ndata;
+ uint_t id = 0;
char paddr[64], psize[64], pname[64], *mname;
dev_info_t *root;
- uchar_t *datap;
- uint64_t size = 0, addr = 0;
+ uint64_t size, addr;
int ret;
bootfs_mkroot(bfs);
@@ -318,25 +317,14 @@ bootfs_construct(bootfs_t *bfs)
sizeof (paddr))
break;
- if (ddi_prop_lookup_byte_array(DDI_DEV_T_ANY, root,
- DDI_PROP_DONTPASS, paddr, &datap, &ndata) !=
- DDI_PROP_SUCCESS)
+ addr = (uint64_t)ddi_prop_get_int64(DDI_DEV_T_ANY, root,
+ DDI_PROP_DONTPASS, paddr, 0);
+ if (addr == 0 || addr == DDI_PROP_NOT_FOUND)
break;
- if (ndata == 8)
- bcopy(datap, &addr, sizeof (uint64_t));
- ddi_prop_free(datap);
- if (ndata != 8)
- break;
-
- if (ddi_prop_lookup_byte_array(DDI_DEV_T_ANY, root,
- DDI_PROP_DONTPASS, psize, &datap, &ndata) !=
- DDI_PROP_SUCCESS)
- break;
- if (ndata == 8)
- bcopy(datap, &size, sizeof (uint64_t));
- ddi_prop_free(datap);
- if (ndata != 8)
+ size = (uint64_t)ddi_prop_get_int64(DDI_DEV_T_ANY, root,
+ DDI_PROP_DONTPASS, psize, 0);
+ if (size == 0 || size == DDI_PROP_NOT_FOUND)
break;
if (ddi_prop_lookup_string(DDI_DEV_T_ANY, root,
diff --git a/usr/src/uts/common/io/ldterm.c b/usr/src/uts/common/io/ldterm.c
index 9d4baf4790..f48b126ead 100644
--- a/usr/src/uts/common/io/ldterm.c
+++ b/usr/src/uts/common/io/ldterm.c
@@ -1768,7 +1768,7 @@ ldterm_docanon(uchar_t c, mblk_t *bpt, size_t ebsize, queue_t *q,
* the end of the buffer is a multi-byte and/or multi-column
* character.
*/
- if (c == tp->t_modes.c_cc[VERASE]) {
+ if (c == tp->t_modes.c_cc[VERASE] || c == tp->t_modes.c_cc[VERASE2]) {
if (tp->t_state & TS_QUOT) {
/*
* Get rid of the backslash, and put the
@@ -3972,7 +3972,7 @@ outofbufs:
#if !defined(__sparc)
int
movtuc(size_t size, unsigned char *from, unsigned char *origto,
- unsigned char *table)
+ unsigned char *table)
{
unsigned char *to = origto;
unsigned char c;
diff --git a/usr/src/uts/common/io/options.conf b/usr/src/uts/common/io/options.conf
index d88ae22788..8a315e7b8d 100644
--- a/usr/src/uts/common/io/options.conf
+++ b/usr/src/uts/common/io/options.conf
@@ -45,4 +45,4 @@
#
name="options" class="root"
-ttymodes="2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14";
+ttymodes="2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14:8";
diff --git a/usr/src/uts/common/io/tty_common.c b/usr/src/uts/common/io/tty_common.c
index 0ad4a3b25a..c967af2c5e 100644
--- a/usr/src/uts/common/io/tty_common.c
+++ b/usr/src/uts/common/io/tty_common.c
@@ -52,7 +52,8 @@ static struct termios default_termios = {
CFLUSH,
CWERASE,
CLNEXT,
- CSTATUS
+ CSTATUS,
+ CERASE2
}
};
@@ -421,7 +422,7 @@ allocfailure:
return (ioctlrespsize);
}
-#define NFIELDS 21 /* 16 control characters + 4 sets of modes */
+#define NFIELDS 22 /* 18 control characters + 4 sets of modes */
/*
* Init routine run from main at boot time.
diff --git a/usr/src/uts/common/sys/termios.h b/usr/src/uts/common/sys/termios.h
index 889a7096cd..4c158fcb9a 100644
--- a/usr/src/uts/common/sys/termios.h
+++ b/usr/src/uts/common/sys/termios.h
@@ -144,7 +144,8 @@ extern pid_t tcgetsid(int);
#define VWERASE 14
#define VLNEXT 15
#define VSTATUS 16
-/* 17 through 19 reserved for future use */
+#define VERASE2 17
+/* 18 through 19 reserved for future use */
/*
* control characters form Xenix termio.h
@@ -161,6 +162,7 @@ extern pid_t tcgetsid(int);
#define CINTR CTRL('c')
#define CQUIT 034 /* FS, cntl | */
#define CERASE 0177 /* DEL */
+#define CERASE2 CTRL('h')
#define CKILL CTRL('u')
#define CEOT 04
#define CEOL 0
diff --git a/usr/src/uts/i86pc/os/ddi_impl.c b/usr/src/uts/i86pc/os/ddi_impl.c
index fa65b87441..ff8935f3a9 100644
--- a/usr/src/uts/i86pc/os/ddi_impl.c
+++ b/usr/src/uts/i86pc/os/ddi_impl.c
@@ -1407,7 +1407,7 @@ contig_free(void *addr, size_t size)
*/
static void *
kalloca(size_t size, size_t align, int cansleep, int physcontig,
- ddi_dma_attr_t *attr)
+ ddi_dma_attr_t *attr)
{
size_t *addr, *raddr, rsize;
size_t hdrsize = 4 * sizeof (size_t); /* must be power of 2 */
@@ -1606,9 +1606,9 @@ i_ddi_cacheattr_to_hatacc(uint_t flags, uint_t *hataccp)
/*ARGSUSED*/
int
i_ddi_mem_alloc(dev_info_t *dip, ddi_dma_attr_t *attr,
- size_t length, int cansleep, int flags,
- ddi_device_acc_attr_t *accattrp, caddr_t *kaddrp,
- size_t *real_length, ddi_acc_hdl_t *ap)
+ size_t length, int cansleep, int flags,
+ ddi_device_acc_attr_t *accattrp, caddr_t *kaddrp,
+ size_t *real_length, ddi_acc_hdl_t *ap)
{
caddr_t a;
int iomin;
@@ -1905,6 +1905,29 @@ get_boot_properties(void)
} else if (strcmp(name, "stdout") == 0) {
(void) ndi_prop_update_int(DDI_DEV_T_NONE, devi,
property_name, *((int *)bop_staging_area));
+ } else if (strcmp(name, "boot-args") == 0) {
+ copy_boot_str(bop_staging_area, property_val, 50);
+ (void) e_ddi_prop_update_string(DDI_DEV_T_NONE, devi,
+ property_name, property_val);
+ } else if (strcmp(name, "bootargs") == 0) {
+ copy_boot_str(bop_staging_area, property_val, 50);
+ (void) e_ddi_prop_update_string(DDI_DEV_T_NONE, devi,
+ property_name, property_val);
+ } else if (strcmp(name, "bootp-response") == 0) {
+ (void) e_ddi_prop_update_byte_array(DDI_DEV_T_NONE,
+ devi, property_name, bop_staging_area, length);
+ } else if (strcmp(name, "ramdisk_start") == 0) {
+ (void) e_ddi_prop_update_int64(DDI_DEV_T_NONE, devi,
+ property_name, *((int64_t *)bop_staging_area));
+ } else if (strcmp(name, "ramdisk_end") == 0) {
+ (void) e_ddi_prop_update_int64(DDI_DEV_T_NONE, devi,
+ property_name, *((int64_t *)bop_staging_area));
+ } else if (strncmp(name, "module-addr-", 12) == 0) {
+ (void) e_ddi_prop_update_int64(DDI_DEV_T_NONE, devi,
+ property_name, *((int64_t *)bop_staging_area));
+ } else if (strncmp(name, "module-size-", 12) == 0) {
+ (void) e_ddi_prop_update_int64(DDI_DEV_T_NONE, devi,
+ property_name, *((int64_t *)bop_staging_area));
} else {
/* Property type unknown, use old prop interface */
(void) e_ddi_prop_create(DDI_DEV_T_NONE, devi,
@@ -2431,10 +2454,10 @@ pci_peekpoke_check_nofma(void *arg, ddi_ctl_enum_t ctlop)
int
pci_peekpoke_check(dev_info_t *dip, dev_info_t *rdip,
- ddi_ctl_enum_t ctlop, void *arg, void *result,
- int (*handler)(dev_info_t *, dev_info_t *, ddi_ctl_enum_t, void *,
- void *), kmutex_t *err_mutexp, kmutex_t *peek_poke_mutexp,
- void (*scan)(dev_info_t *, ddi_fm_error_t *))
+ ddi_ctl_enum_t ctlop, void *arg, void *result,
+ int (*handler)(dev_info_t *, dev_info_t *, ddi_ctl_enum_t, void *,
+ void *), kmutex_t *err_mutexp, kmutex_t *peek_poke_mutexp,
+ void (*scan)(dev_info_t *, ddi_fm_error_t *))
{
int rval;
peekpoke_ctlops_t *in_args = (peekpoke_ctlops_t *)arg;
@@ -2769,7 +2792,7 @@ i_ddi_caut_put64(ddi_acc_impl_t *hp, uint64_t *addr, uint64_t value)
void
i_ddi_caut_rep_get8(ddi_acc_impl_t *hp, uint8_t *host_addr, uint8_t *dev_addr,
- size_t repcount, uint_t flags)
+ size_t repcount, uint_t flags)
{
i_ddi_caut_getput_ctlops(hp, (uintptr_t)host_addr, (uintptr_t)dev_addr,
sizeof (uint8_t), repcount, flags, DDI_CTLOPS_PEEK);
@@ -2801,7 +2824,7 @@ i_ddi_caut_rep_get64(ddi_acc_impl_t *hp, uint64_t *host_addr,
void
i_ddi_caut_rep_put8(ddi_acc_impl_t *hp, uint8_t *host_addr, uint8_t *dev_addr,
- size_t repcount, uint_t flags)
+ size_t repcount, uint_t flags)
{
i_ddi_caut_getput_ctlops(hp, (uintptr_t)host_addr, (uintptr_t)dev_addr,
sizeof (uint8_t), repcount, flags, DDI_CTLOPS_POKE);
diff --git a/usr/src/uts/sun4u/blade/io/options.conf b/usr/src/uts/sun4u/blade/io/options.conf
index 6f46d75247..99dabb338d 100644
--- a/usr/src/uts/sun4u/blade/io/options.conf
+++ b/usr/src/uts/sun4u/blade/io/options.conf
@@ -23,8 +23,6 @@
# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#ident "%Z%%M% %I% %E% SMI"
-#
# The property "ttymodes" defines the default termios modes
# (upon driver open) for the console ttys on Stiletto/JBOS blades.
#
@@ -40,4 +38,4 @@
#
name="options" class="root"
-ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";
+ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14:8";
diff --git a/usr/src/uts/sun4u/opl/io/options.conf b/usr/src/uts/sun4u/opl/io/options.conf
index ecf2bf358e..0a26d7abc3 100644
--- a/usr/src/uts/sun4u/opl/io/options.conf
+++ b/usr/src/uts/sun4u/opl/io/options.conf
@@ -22,8 +22,6 @@
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#ident "%Z%%M% %I% %E% SMI"
-#
# The property "ttymodes" defines the default termios modes
# (upon driver open) for the console ttys on OPL platform.
#
@@ -39,4 +37,4 @@
#
name="options" class="root"
-ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16";
+ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14:8";