10Sstevel@tonic-gate /* 20Sstevel@tonic-gate * CDDL HEADER START 30Sstevel@tonic-gate * 40Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*9354STim.Marsland@Sun.COM * Common Development and Distribution License (the "License"). 6*9354STim.Marsland@Sun.COM * You may not use this file except in compliance with the License. 70Sstevel@tonic-gate * 80Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 90Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 100Sstevel@tonic-gate * See the License for the specific language governing permissions 110Sstevel@tonic-gate * and limitations under the License. 120Sstevel@tonic-gate * 130Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 140Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 150Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 160Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 170Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 180Sstevel@tonic-gate * 190Sstevel@tonic-gate * CDDL HEADER END 200Sstevel@tonic-gate */ 21*9354STim.Marsland@Sun.COM 220Sstevel@tonic-gate /* 23*9354STim.Marsland@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 240Sstevel@tonic-gate * Use is subject to license terms. 250Sstevel@tonic-gate */ 260Sstevel@tonic-gate 270Sstevel@tonic-gate /* 280Sstevel@tonic-gate * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 290Sstevel@tonic-gate * All Rights Reserved 300Sstevel@tonic-gate * 310Sstevel@tonic-gate */ 320Sstevel@tonic-gate 330Sstevel@tonic-gate #include <stdio.h> 340Sstevel@tonic-gate #include <sys/types.h> 350Sstevel@tonic-gate #include <termio.h> 360Sstevel@tonic-gate #include <sys/stermio.h> 370Sstevel@tonic-gate #include <sys/termiox.h> 380Sstevel@tonic-gate #include "stty.h" 390Sstevel@tonic-gate 400Sstevel@tonic-gate const struct speeds speeds[] = { 410Sstevel@tonic-gate "0", B0, 0, 420Sstevel@tonic-gate "50", B50, 50, 430Sstevel@tonic-gate "75", B75, 75, 440Sstevel@tonic-gate "110", B110, 110, 450Sstevel@tonic-gate "134", B134, 134, 460Sstevel@tonic-gate "134.5", B134, 134, 470Sstevel@tonic-gate "150", B150, 150, 480Sstevel@tonic-gate "200", B200, 200, 490Sstevel@tonic-gate "300", B300, 300, 500Sstevel@tonic-gate "600", B600, 600, 510Sstevel@tonic-gate "1200", B1200, 1200, 520Sstevel@tonic-gate "1800", B1800, 1800, 530Sstevel@tonic-gate "2400", B2400, 2400, 540Sstevel@tonic-gate "4800", B4800, 4800, 550Sstevel@tonic-gate "9600", B9600, 9600, 560Sstevel@tonic-gate "19200", B19200, 19200, 570Sstevel@tonic-gate "19.2", B19200, 19200, 580Sstevel@tonic-gate "38400", B38400, 38400, 590Sstevel@tonic-gate "38.4", B38400, 38400, 600Sstevel@tonic-gate "57600", B57600, 57600, 610Sstevel@tonic-gate "57.6", B57600, 57600, 620Sstevel@tonic-gate "76800", B76800, 76800, 630Sstevel@tonic-gate "76.8", B76800, 76800, 640Sstevel@tonic-gate "115200", B115200, 115200, 650Sstevel@tonic-gate "115.2", B115200, 115200, 660Sstevel@tonic-gate "153600", B153600, 153600, 670Sstevel@tonic-gate "153.6", B153600, 153600, 680Sstevel@tonic-gate "230400", B230400, 230400, 690Sstevel@tonic-gate "230.4", B230400, 230400, 700Sstevel@tonic-gate "307200", B307200, 307200, 710Sstevel@tonic-gate "307.2", B307200, 307200, 720Sstevel@tonic-gate "460800", B460800, 460800, 730Sstevel@tonic-gate "460.8", B460800, 460800, 74*9354STim.Marsland@Sun.COM "921600", B921600, 921600, 75*9354STim.Marsland@Sun.COM "921.6", B921600, 921600, 760Sstevel@tonic-gate 0, 770Sstevel@tonic-gate }; 780Sstevel@tonic-gate 790Sstevel@tonic-gate const struct mds cmodes[] = { 800Sstevel@tonic-gate "-parity", CS8, PARENB|CSIZE, 810Sstevel@tonic-gate "-evenp", CS8, PARENB|CSIZE, 820Sstevel@tonic-gate "-oddp", CS8, PARENB|PARODD|CSIZE, 830Sstevel@tonic-gate "parity", PARENB|CS7, PARODD|CSIZE, 840Sstevel@tonic-gate "evenp", PARENB|CS7, PARODD|CSIZE, 850Sstevel@tonic-gate "oddp", PARENB|PARODD|CS7, CSIZE, 860Sstevel@tonic-gate "parenb", PARENB, 0, 870Sstevel@tonic-gate "-parenb", 0, PARENB, 880Sstevel@tonic-gate "parodd", PARODD, 0, 890Sstevel@tonic-gate "-parodd", 0, PARODD, 900Sstevel@tonic-gate "cs8", CS8, CSIZE, 910Sstevel@tonic-gate "cs7", CS7, CSIZE, 920Sstevel@tonic-gate "cs6", CS6, CSIZE, 930Sstevel@tonic-gate "cs5", CS5, CSIZE, 940Sstevel@tonic-gate "cstopb", CSTOPB, 0, 950Sstevel@tonic-gate "-cstopb", 0, CSTOPB, 960Sstevel@tonic-gate "hupcl", HUPCL, 0, 970Sstevel@tonic-gate "hup", HUPCL, 0, 980Sstevel@tonic-gate "-hupcl", 0, HUPCL, 990Sstevel@tonic-gate "-hup", 0, HUPCL, 1000Sstevel@tonic-gate "clocal", CLOCAL, 0, 1010Sstevel@tonic-gate "-clocal", 0, CLOCAL, 1020Sstevel@tonic-gate "loblk", LOBLK, 0, 1030Sstevel@tonic-gate "-loblk", 0, LOBLK, 1040Sstevel@tonic-gate "cread", CREAD, 0, 1050Sstevel@tonic-gate "-cread", 0, CREAD, 1060Sstevel@tonic-gate "crtscts", (long)CRTSCTS, 0, 1070Sstevel@tonic-gate "-crtscts", 0, (long)CRTSCTS, 1080Sstevel@tonic-gate "crtsxoff", CRTSXOFF, 0, 1090Sstevel@tonic-gate "-crtsxoff", 0, CRTSXOFF, 1100Sstevel@tonic-gate "raw", CS8, (CSIZE|PARENB), 1110Sstevel@tonic-gate "-raw", (CS7|PARENB), CSIZE, 1120Sstevel@tonic-gate "cooked", (CS7|PARENB), CSIZE, 1130Sstevel@tonic-gate "sane", (CS7|PARENB|CREAD), (CSIZE|PARODD|CLOCAL), 1140Sstevel@tonic-gate 0 1150Sstevel@tonic-gate }; 1160Sstevel@tonic-gate 1170Sstevel@tonic-gate const struct mds ncmodes[] = { 1180Sstevel@tonic-gate "parext", PAREXT, 0, 1190Sstevel@tonic-gate "-parext", 0, PAREXT, 1200Sstevel@tonic-gate "markp", (PARENB|PARODD|CS7|PAREXT), CSIZE, 1210Sstevel@tonic-gate "-markp", CS8, (PARENB|PARODD|CSIZE|PAREXT), 1220Sstevel@tonic-gate "spacep", (PARENB|CS7|PAREXT), PARODD|CSIZE, 1230Sstevel@tonic-gate "-spacep", CS8, (PARENB|CSIZE|PAREXT), 1240Sstevel@tonic-gate 0 1250Sstevel@tonic-gate }; 1260Sstevel@tonic-gate 1270Sstevel@tonic-gate const struct mds imodes[] = { 1280Sstevel@tonic-gate "ignbrk", IGNBRK, 0, 1290Sstevel@tonic-gate "-ignbrk", 0, IGNBRK, 1300Sstevel@tonic-gate "brkint", BRKINT, 0, 1310Sstevel@tonic-gate "-brkint", 0, BRKINT, 1320Sstevel@tonic-gate "ignpar", IGNPAR, 0, 1330Sstevel@tonic-gate "-ignpar", 0, IGNPAR, 1340Sstevel@tonic-gate "parmrk", PARMRK, 0, 1350Sstevel@tonic-gate "-parmrk", 0, PARMRK, 1360Sstevel@tonic-gate "inpck", INPCK, 0, 1370Sstevel@tonic-gate "-inpck", 0, INPCK, 1380Sstevel@tonic-gate "istrip", ISTRIP, 0, 1390Sstevel@tonic-gate "-istrip", 0, ISTRIP, 1400Sstevel@tonic-gate "inlcr", INLCR, 0, 1410Sstevel@tonic-gate "-inlcr", 0, INLCR, 1420Sstevel@tonic-gate "igncr", IGNCR, 0, 1430Sstevel@tonic-gate "-igncr", 0, IGNCR, 1440Sstevel@tonic-gate "icrnl", ICRNL, 0, 1450Sstevel@tonic-gate "-icrnl", 0, ICRNL, 1460Sstevel@tonic-gate #ifdef XPG4 1470Sstevel@tonic-gate "-nl", 0, (ICRNL|INLCR|IGNCR), 1480Sstevel@tonic-gate "nl", ICRNL, 0, 1490Sstevel@tonic-gate #else 1500Sstevel@tonic-gate "-nl", ICRNL, (INLCR|IGNCR), 1510Sstevel@tonic-gate "nl", 0, ICRNL, 1520Sstevel@tonic-gate #endif 1530Sstevel@tonic-gate "iuclc", IUCLC, 0, 1540Sstevel@tonic-gate "-iuclc", 0, IUCLC, 1550Sstevel@tonic-gate "lcase", IUCLC, 0, 1560Sstevel@tonic-gate "-lcase", 0, IUCLC, 1570Sstevel@tonic-gate "LCASE", IUCLC, 0, 1580Sstevel@tonic-gate "-LCASE", 0, IUCLC, 1590Sstevel@tonic-gate "ixon", IXON, 0, 1600Sstevel@tonic-gate "-ixon", 0, IXON, 1610Sstevel@tonic-gate "ixany", IXANY, 0, 1620Sstevel@tonic-gate "-ixany", 0, IXANY, 1630Sstevel@tonic-gate "ixoff", IXOFF, 0, 1640Sstevel@tonic-gate "-ixoff", 0, IXOFF, 1650Sstevel@tonic-gate "raw", 0, -1, 1660Sstevel@tonic-gate "-raw", (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON), 0, 1670Sstevel@tonic-gate "cooked", (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON), 0, 1680Sstevel@tonic-gate "sane", (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON|IMAXBEL), 1690Sstevel@tonic-gate (IGNBRK|PARMRK|INPCK|INLCR|IGNCR|IUCLC|IXOFF|IXANY), 1700Sstevel@tonic-gate 0 1710Sstevel@tonic-gate }; 1720Sstevel@tonic-gate 1730Sstevel@tonic-gate 1740Sstevel@tonic-gate const struct mds nimodes[] = { 1750Sstevel@tonic-gate "imaxbel", IMAXBEL, 0, 1760Sstevel@tonic-gate "-imaxbel", 0, IMAXBEL, 1770Sstevel@tonic-gate 0 1780Sstevel@tonic-gate }; 1790Sstevel@tonic-gate 1800Sstevel@tonic-gate const struct mds lmodes[] = { 1810Sstevel@tonic-gate "isig", ISIG, 0, 1820Sstevel@tonic-gate "-isig", 0, ISIG, 1830Sstevel@tonic-gate "icanon", ICANON, 0, 1840Sstevel@tonic-gate "-icanon", 0, ICANON, 1850Sstevel@tonic-gate "xcase", XCASE, 0, 1860Sstevel@tonic-gate "-xcase", 0, XCASE, 1870Sstevel@tonic-gate "lcase", XCASE, 0, 1880Sstevel@tonic-gate "-lcase", 0, XCASE, 1890Sstevel@tonic-gate "LCASE", XCASE, 0, 1900Sstevel@tonic-gate "-LCASE", 0, XCASE, 1910Sstevel@tonic-gate "echo", ECHO, 0, 1920Sstevel@tonic-gate "-echo", 0, ECHO, 1930Sstevel@tonic-gate "echoe", ECHOE, 0, 1940Sstevel@tonic-gate "-echoe", 0, ECHOE, 1950Sstevel@tonic-gate "echok", ECHOK, 0, 1960Sstevel@tonic-gate "-echok", 0, ECHOK, 1970Sstevel@tonic-gate "lfkc", ECHOK, 0, 1980Sstevel@tonic-gate "-lfkc", 0, ECHOK, 1990Sstevel@tonic-gate "echonl", ECHONL, 0, 2000Sstevel@tonic-gate "-echonl", 0, ECHONL, 2010Sstevel@tonic-gate "noflsh", NOFLSH, 0, 2020Sstevel@tonic-gate "-noflsh", 0, NOFLSH, 2030Sstevel@tonic-gate "raw", 0, (ISIG|ICANON|XCASE), 2040Sstevel@tonic-gate "-raw", (ISIG|ICANON), 0, 2050Sstevel@tonic-gate "cooked", (ISIG|ICANON), 0, 2060Sstevel@tonic-gate "sane", (ISIG|ICANON|IEXTEN|ECHO|ECHOK|ECHOE|ECHOKE|ECHOCTL), 2070Sstevel@tonic-gate (XCASE|ECHONL|NOFLSH|STFLUSH|STWRAP|STAPPL), 2080Sstevel@tonic-gate "stflush", STFLUSH, 0, 2090Sstevel@tonic-gate "-stflush", 0, STFLUSH, 2100Sstevel@tonic-gate "stwrap", STWRAP, 0, 2110Sstevel@tonic-gate "-stwrap", 0, STWRAP, 2120Sstevel@tonic-gate "stappl", STAPPL, 0, 2130Sstevel@tonic-gate "-stappl", 0, STAPPL, 2140Sstevel@tonic-gate 0, 2150Sstevel@tonic-gate }; 2160Sstevel@tonic-gate 2170Sstevel@tonic-gate const struct mds nlmodes[] = { 2180Sstevel@tonic-gate "tostop", TOSTOP, 0, 2190Sstevel@tonic-gate "-tostop", 0, TOSTOP, 2200Sstevel@tonic-gate "echoctl", ECHOCTL, 0, 2210Sstevel@tonic-gate "-echoctl", 0, ECHOCTL, 2220Sstevel@tonic-gate "echoprt", ECHOPRT, 0, 2230Sstevel@tonic-gate "-echoprt", 0, ECHOPRT, 2240Sstevel@tonic-gate "echoke", ECHOKE, 0, 2250Sstevel@tonic-gate "-echoke", 0, ECHOKE, 2260Sstevel@tonic-gate "defecho", DEFECHO, 0, 2270Sstevel@tonic-gate "-defecho", 0, DEFECHO, 2280Sstevel@tonic-gate "flusho", FLUSHO, 0, 2290Sstevel@tonic-gate "-flusho", 0, FLUSHO, 2300Sstevel@tonic-gate "pendin", PENDIN, 0, 2310Sstevel@tonic-gate "-pendin", 0, PENDIN, 2320Sstevel@tonic-gate "iexten", IEXTEN, 0, 2330Sstevel@tonic-gate "-iexten", 0, IEXTEN, 2340Sstevel@tonic-gate 0 2350Sstevel@tonic-gate }; 2360Sstevel@tonic-gate 2370Sstevel@tonic-gate const struct mds omodes[] = { 2380Sstevel@tonic-gate "opost", OPOST, 0, 2390Sstevel@tonic-gate "-opost", 0, OPOST, 2400Sstevel@tonic-gate "olcuc", OLCUC, 0, 2410Sstevel@tonic-gate "-olcuc", 0, OLCUC, 2420Sstevel@tonic-gate "lcase", OLCUC, 0, 2430Sstevel@tonic-gate "-lcase", 0, OLCUC, 2440Sstevel@tonic-gate "LCASE", OLCUC, 0, 2450Sstevel@tonic-gate "-LCASE", 0, OLCUC, 2460Sstevel@tonic-gate "onlcr", ONLCR, 0, 2470Sstevel@tonic-gate "-onlcr", 0, ONLCR, 2480Sstevel@tonic-gate "-nl", ONLCR, (OCRNL|ONLRET), 2490Sstevel@tonic-gate "nl", 0, ONLCR, 2500Sstevel@tonic-gate "ocrnl", OCRNL, 0, 2510Sstevel@tonic-gate "-ocrnl", 0, OCRNL, 2520Sstevel@tonic-gate "onocr", ONOCR, 0, 2530Sstevel@tonic-gate "-onocr", 0, ONOCR, 2540Sstevel@tonic-gate "onlret", ONLRET, 0, 2550Sstevel@tonic-gate "-onlret", 0, ONLRET, 2560Sstevel@tonic-gate "fill", OFILL, OFDEL, 2570Sstevel@tonic-gate "-fill", 0, OFILL|OFDEL, 2580Sstevel@tonic-gate "nul-fill", OFILL, OFDEL, 2590Sstevel@tonic-gate "del-fill", OFILL|OFDEL, 0, 2600Sstevel@tonic-gate "ofill", OFILL, 0, 2610Sstevel@tonic-gate "-ofill", 0, OFILL, 2620Sstevel@tonic-gate "ofdel", OFDEL, 0, 2630Sstevel@tonic-gate "-ofdel", 0, OFDEL, 2640Sstevel@tonic-gate "cr0", CR0, CRDLY, 2650Sstevel@tonic-gate "cr1", CR1, CRDLY, 2660Sstevel@tonic-gate "cr2", CR2, CRDLY, 2670Sstevel@tonic-gate "cr3", CR3, CRDLY, 2680Sstevel@tonic-gate "tab0", TAB0, TABDLY, 2690Sstevel@tonic-gate "tabs", TAB0, TABDLY, 2700Sstevel@tonic-gate "tab1", TAB1, TABDLY, 2710Sstevel@tonic-gate "tab2", TAB2, TABDLY, 2720Sstevel@tonic-gate "tab3", TAB3, TABDLY, 2730Sstevel@tonic-gate "-tabs", TAB3, TABDLY, 2740Sstevel@tonic-gate "tab8", TAB3, TABDLY, 2750Sstevel@tonic-gate "nl0", NL0, NLDLY, 2760Sstevel@tonic-gate "nl1", NL1, NLDLY, 2770Sstevel@tonic-gate "ff0", FF0, FFDLY, 2780Sstevel@tonic-gate "ff1", FF1, FFDLY, 2790Sstevel@tonic-gate "vt0", VT0, VTDLY, 2800Sstevel@tonic-gate "vt1", VT1, VTDLY, 2810Sstevel@tonic-gate "bs0", BS0, BSDLY, 2820Sstevel@tonic-gate "bs1", BS1, BSDLY, 2830Sstevel@tonic-gate "raw", 0, OPOST, 2840Sstevel@tonic-gate "-raw", OPOST, 0, 2850Sstevel@tonic-gate "cooked", OPOST, 0, 2860Sstevel@tonic-gate "tty33", CR1, (CRDLY|TABDLY|NLDLY|FFDLY|VTDLY|BSDLY), 2870Sstevel@tonic-gate "tn300", CR1, (CRDLY|TABDLY|NLDLY|FFDLY|VTDLY|BSDLY), 2880Sstevel@tonic-gate "ti700", CR2, (CRDLY|TABDLY|NLDLY|FFDLY|VTDLY|BSDLY), 2890Sstevel@tonic-gate "vt05", NL1, (CRDLY|TABDLY|NLDLY|FFDLY|VTDLY|BSDLY), 2900Sstevel@tonic-gate "tek", FF1, (CRDLY|TABDLY|NLDLY|FFDLY|VTDLY|BSDLY), 2910Sstevel@tonic-gate "tty37", (FF1|VT1|CR2|TAB1|NL1), (NLDLY|CRDLY|TABDLY|BSDLY|VTDLY|FFDLY), 2920Sstevel@tonic-gate "sane", (OPOST|ONLCR), (OLCUC|OCRNL|ONOCR|ONLRET|OFILL|OFDEL| 2930Sstevel@tonic-gate NLDLY|CRDLY|TABDLY|BSDLY|VTDLY|FFDLY), 2940Sstevel@tonic-gate 0, 2950Sstevel@tonic-gate }; 2960Sstevel@tonic-gate 2970Sstevel@tonic-gate const struct mds hmodes[] = { 2980Sstevel@tonic-gate "-rtsxoff", 0, RTSXOFF, 2990Sstevel@tonic-gate "rtsxoff", RTSXOFF, 0, 3000Sstevel@tonic-gate "-ctsxon", 0, CTSXON, 3010Sstevel@tonic-gate "ctsxon", CTSXON, 0, 3020Sstevel@tonic-gate "-dtrxoff", 0, DTRXOFF, 3030Sstevel@tonic-gate "dtrxoff", DTRXOFF, 0, 3040Sstevel@tonic-gate "-cdxon", 0, CDXON, 3050Sstevel@tonic-gate "cdxon", CDXON, 0, 3060Sstevel@tonic-gate "-isxoff", 0, ISXOFF, 3070Sstevel@tonic-gate "isxoff", ISXOFF, 0, 3080Sstevel@tonic-gate 0, 3090Sstevel@tonic-gate }; 3100Sstevel@tonic-gate 3110Sstevel@tonic-gate const struct mds clkmodes[] = { 3120Sstevel@tonic-gate "xcibrg", XCIBRG, XMTCLK, 3130Sstevel@tonic-gate "xctset", XCTSET, XMTCLK, 3140Sstevel@tonic-gate "xcrset", XCRSET, XMTCLK, 3150Sstevel@tonic-gate "rcibrg", RCIBRG, RCVCLK, 3160Sstevel@tonic-gate "rctset", RCTSET, RCVCLK, 3170Sstevel@tonic-gate "rcrset", RCRSET, RCVCLK, 3180Sstevel@tonic-gate "tsetcoff", TSETCOFF, TSETCLK, 3190Sstevel@tonic-gate "tsetcrbrg", TSETCRBRG, TSETCLK, 3200Sstevel@tonic-gate "tsetctbrg", TSETCTBRG, TSETCLK, 3210Sstevel@tonic-gate "tsetctset", TSETCTSET, TSETCLK, 3220Sstevel@tonic-gate "tsetcrset", TSETCRSET, TSETCLK, 3230Sstevel@tonic-gate "rsetcoff", RSETCOFF, RSETCLK, 3240Sstevel@tonic-gate "rsetcrbrg", RSETCRBRG, RSETCLK, 3250Sstevel@tonic-gate "rsetctbrg", RSETCTBRG, RSETCLK, 3260Sstevel@tonic-gate "rsetctset", RSETCTSET, RSETCLK, 3270Sstevel@tonic-gate "rsetcrset", RSETCRSET, RSETCLK, 3280Sstevel@tonic-gate "async", XCIBRG|RCIBRG|TSETCOFF|RSETCOFF, XMTCLK|RCVCLK|TSETCLK|RSETCLK, 3290Sstevel@tonic-gate 0, 3300Sstevel@tonic-gate }; 3310Sstevel@tonic-gate 3320Sstevel@tonic-gate const char *not_supported[] = { 3330Sstevel@tonic-gate "rtsxoff", 3340Sstevel@tonic-gate "ctsxon", 3350Sstevel@tonic-gate "dtrxoff", 3360Sstevel@tonic-gate "cdxon", 3370Sstevel@tonic-gate "isxoff", 3380Sstevel@tonic-gate "xcibrg", 3390Sstevel@tonic-gate "xctset", 3400Sstevel@tonic-gate "scrset", 3410Sstevel@tonic-gate "rcibrg", 3420Sstevel@tonic-gate "rctset", 3430Sstevel@tonic-gate "rcrset", 3440Sstevel@tonic-gate "tsetcoff", 3450Sstevel@tonic-gate "tsetcrbrg", 3460Sstevel@tonic-gate "rsetcbrg", 3470Sstevel@tonic-gate "rsetctbrg", 3480Sstevel@tonic-gate "rsetctset", 3490Sstevel@tonic-gate "rsetcrset", 3500Sstevel@tonic-gate 0, 3510Sstevel@tonic-gate }; 352