summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exception_lists/copyright3
-rw-r--r--exception_lists/keywords1
-rw-r--r--exception_lists/wscheck1
-rw-r--r--manifest27
-rw-r--r--usr/src/cmd/ctfdump/ctfdump.c80
-rw-r--r--usr/src/cmd/dis/dis_target.c29
-rw-r--r--usr/src/cmd/getent/Makefile1
-rw-r--r--usr/src/cmd/getent/dogetnetgr.c71
-rw-r--r--usr/src/cmd/getent/getent.c5
-rw-r--r--usr/src/cmd/getent/getent.h2
-rw-r--r--usr/src/cmd/netfiles/nsswitch.ad2
-rw-r--r--usr/src/cmd/netfiles/nsswitch.conf2
-rw-r--r--usr/src/cmd/netfiles/nsswitch.dns5
-rw-r--r--usr/src/cmd/netfiles/nsswitch.files3
-rw-r--r--usr/src/cmd/netfiles/nsswitch.ldap3
-rw-r--r--usr/src/cmd/netfiles/nsswitch.nis3
-rw-r--r--usr/src/cmd/ucodeadm/ucodeadm.c16
-rw-r--r--usr/src/cmd/zfs/zfs_main.c3
-rw-r--r--usr/src/common/ucode/ucode_errno.h6
-rw-r--r--usr/src/common/ucode/ucode_utils.c55
-rw-r--r--usr/src/data/ucode/Makefile.links64
-rw-r--r--usr/src/data/ucode/README.ucode2
-rw-r--r--usr/src/data/ucode/intel/000306F2-01bin34816 -> 34816 bytes
-rw-r--r--usr/src/data/ucode/intel/000306F4-80bin18432 -> 19456 bytes
-rw-r--r--usr/src/data/ucode/intel/000406E3-40bin105472 -> 105472 bytes
-rw-r--r--usr/src/data/ucode/intel/000406F1-01bin30720 -> 31744 bytes
-rw-r--r--usr/src/data/ucode/intel/00050653-01bin33792 -> 34816 bytes
-rw-r--r--usr/src/data/ucode/intel/00050654-01bin35840 -> 36864 bytes
-rw-r--r--usr/src/data/ucode/intel/00050655-01bin0 -> 47104 bytes
-rw-r--r--usr/src/data/ucode/intel/00050656-01bin52224 -> 30720 bytes
-rw-r--r--usr/src/data/ucode/intel/00050657-01bin52224 -> 30720 bytes
-rw-r--r--usr/src/data/ucode/intel/0005065B-01bin27648 -> 27648 bytes
-rw-r--r--usr/src/data/ucode/intel/00050663-10bin24576 -> 24576 bytes
-rw-r--r--usr/src/data/ucode/intel/00050664-10bin24576 -> 24576 bytes
-rw-r--r--usr/src/data/ucode/intel/00050665-10bin19456 -> 19456 bytes
-rw-r--r--usr/src/data/ucode/intel/000506C9-01bin17408 -> 17408 bytes
-rw-r--r--usr/src/data/ucode/intel/000506CA-01bin15360 -> 15360 bytes
-rw-r--r--usr/src/data/ucode/intel/000506E3-02bin105472 -> 105472 bytes
-rw-r--r--usr/src/data/ucode/intel/000506F1-01bin11264 -> 11264 bytes
-rw-r--r--usr/src/data/ucode/intel/000606A5-01bin0 -> 283648 bytes
-rw-r--r--usr/src/data/ucode/intel/000606A6-01bin0 -> 283648 bytes
-rw-r--r--usr/src/data/ucode/intel/000706A1-01bin74752 -> 74752 bytes
-rw-r--r--usr/src/data/ucode/intel/000706A8-01bin75776 -> 75776 bytes
-rw-r--r--usr/src/data/ucode/intel/000706E5-80bin109568 -> 110592 bytes
-rw-r--r--usr/src/data/ucode/intel/00080664-01bin0 -> 130048 bytes
-rw-r--r--usr/src/data/ucode/intel/000806A1-10bin32768 -> 32768 bytes
-rw-r--r--usr/src/data/ucode/intel/000806C1-80bin107520 -> 109568 bytes
-rw-r--r--usr/src/data/ucode/intel/000806C2-02bin0 -> 94208 bytes
-rw-r--r--usr/src/data/ucode/intel/000806D1-02bin0 -> 99328 bytes
-rw-r--r--usr/src/data/ucode/intel/000806E9-10bin104448 -> 104448 bytes
-rw-r--r--usr/src/data/ucode/intel/000806E9-40bin104448 -> 104448 bytes
-rw-r--r--usr/src/data/ucode/intel/000806EA-40bin104448 -> 103424 bytes
-rw-r--r--usr/src/data/ucode/intel/000806EB-10bin104448 -> 104448 bytes
-rw-r--r--usr/src/data/ucode/intel/000806EC-04bin104448 -> 104448 bytes
-rw-r--r--usr/src/data/ucode/intel/00090661-01bin0 -> 19456 bytes
-rw-r--r--usr/src/data/ucode/intel/000906C0-01bin0 -> 19456 bytes
-rw-r--r--usr/src/data/ucode/intel/000906E9-02bin104448 -> 104448 bytes
-rw-r--r--usr/src/data/ucode/intel/000906EA-02bin103424 -> 102400 bytes
-rw-r--r--usr/src/data/ucode/intel/000906EB-02bin104448 -> 104448 bytes
-rw-r--r--usr/src/data/ucode/intel/000906EC-02bin103424 -> 103424 bytes
-rw-r--r--usr/src/data/ucode/intel/000906ED-02bin103424 -> 103424 bytes
-rw-r--r--usr/src/data/ucode/intel/000A0652-20bin93184 -> 93184 bytes
-rw-r--r--usr/src/data/ucode/intel/000A0653-02bin94208 -> 94208 bytes
-rw-r--r--usr/src/data/ucode/intel/000A0655-02bin93184 -> 94208 bytes
-rw-r--r--usr/src/data/ucode/intel/000A0660-80bin94208 -> 94208 bytes
-rw-r--r--usr/src/data/ucode/intel/000A0661-80bin93184 -> 93184 bytes
-rw-r--r--usr/src/data/ucode/intel/000A0671-02bin0 -> 100352 bytes
-rw-r--r--usr/src/grub/capability3
-rw-r--r--usr/src/grub/grub-0.97/stage2/builtins.c3
-rw-r--r--usr/src/grub/grub-0.97/stage2/disk_io.c3
-rw-r--r--usr/src/grub/grub-0.97/stage2/expand.c18
-rw-r--r--usr/src/grub/grub-0.97/stage2/fsys_zfs.c19
-rw-r--r--usr/src/grub/grub-0.97/stage2/shared.h3
-rw-r--r--usr/src/head/nss_dbdefs.h11
-rw-r--r--usr/src/lib/nsswitch/files/Makefile.com4
-rw-r--r--usr/src/lib/nsswitch/files/common/getnetgrent.c869
-rw-r--r--usr/src/lib/nsswitch/files/common/mapfile-vers4
-rw-r--r--usr/src/man/man1/kinit.114
-rw-r--r--usr/src/man/man1/krb5-config.116
-rw-r--r--usr/src/man/man1/login.113
-rw-r--r--usr/src/man/man1/vacation.121
-rw-r--r--usr/src/man/man1b/lpc.1b12
-rw-r--r--usr/src/man/man1m/cfgadm_pci.1m24
-rw-r--r--usr/src/man/man1m/datadm.1m12
-rw-r--r--usr/src/man/man1m/dladm.1m4
-rw-r--r--usr/src/man/man1m/fstyp.1m14
-rw-r--r--usr/src/man/man1m/fwflash.1m17
-rw-r--r--usr/src/man/man1m/getent.1m53
-rw-r--r--usr/src/man/man1m/ikecert.1m18
-rw-r--r--usr/src/man/man1m/in.rlogind.1m23
-rw-r--r--usr/src/man/man1m/in.rshd.1m21
-rw-r--r--usr/src/man/man1m/in.telnetd.1m11
-rw-r--r--usr/src/man/man1m/kdb5_ldap_util.1m44
-rw-r--r--usr/src/man/man1m/logadm.1m25
-rw-r--r--usr/src/man/man1m/lpadmin.1m25
-rw-r--r--usr/src/man/man1m/smrsh.1m4
-rw-r--r--usr/src/man/man1m/syslogd.1m15
-rw-r--r--usr/src/man/man2/mmapobj.216
-rw-r--r--usr/src/man/man3c/addsev.3c16
-rw-r--r--usr/src/man/man3c/drand48.3c14
-rw-r--r--usr/src/man/man3c/getnetgrent.3c13
-rw-r--r--usr/src/man/man3c/getwchar.3c11
-rw-r--r--usr/src/man/man3c_db/td_thr_get_info.3c_db22
-rw-r--r--usr/src/man/man3gss/gss_display_status.3gss19
-rw-r--r--usr/src/man/man3ldap/ldap_entry2text.3ldap25
-rw-r--r--usr/src/man/man3m/fex_set_log.3m23
-rw-r--r--usr/src/man/man3m/modf.3m17
-rw-r--r--usr/src/man/man3pam/pam_sm_open_session.3pam25
-rw-r--r--usr/src/man/man3sasl/sasl_set_alloc.3sasl16
-rw-r--r--usr/src/man/man3sasl/sasl_version.3sasl14
-rw-r--r--usr/src/man/man3scf/scf_simple_prop_get.3scf16
-rw-r--r--usr/src/man/man3slp/slp_api.3slp68
-rw-r--r--usr/src/man/man3tnf/libtnfctl.3tnf49
-rw-r--r--usr/src/man/man4/NISLDAPmapping.46
-rw-r--r--usr/src/man/man4/netgroup.461
-rw-r--r--usr/src/man/man4/power.conf.416
-rw-r--r--usr/src/man/man4/terminfo.444
-rw-r--r--usr/src/man/man4/tnf_kernel_probes.44
-rw-r--r--usr/src/man/man7d/hxge.7d37
-rw-r--r--usr/src/man/man7fs/pcfs.7fs21
-rw-r--r--usr/src/man/man7fs/udfs.7fs20
-rw-r--r--usr/src/man/man7m/ldterm.7m17
-rw-r--r--usr/src/man/man9f/ddi_prop_create.9f4
-rw-r--r--usr/src/man/man9f/dupb.9f51
-rw-r--r--usr/src/man/man9p/size.9p10
-rw-r--r--usr/src/pkg/manifests/system-microcode-intel.mf38
-rw-r--r--usr/src/uts/common/fs/smbsrv/smb2_negotiate.c4
-rw-r--r--usr/src/uts/common/sys/ucode.h2
-rw-r--r--usr/src/uts/i86pc/io/vmm/intel/vmx.c143
-rw-r--r--usr/src/uts/i86pc/io/vmm/intel/vmx.h3
-rw-r--r--usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c95
-rw-r--r--usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h16
-rw-r--r--usr/src/uts/i86pc/os/microcode.c19
133 files changed, 1739 insertions, 943 deletions
diff --git a/exception_lists/copyright b/exception_lists/copyright
index deb66e0c57..2d1d784da5 100644
--- a/exception_lists/copyright
+++ b/exception_lists/copyright
@@ -23,9 +23,9 @@
# Copyright 2020 Tintri by DDN, Inc. All rights reserved.
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011 by Delphix. All rights reserved.
-# Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
# Copyright (c) 2018, Joyent, Inc.
# Copyright 2020 Oxide Computer Company
+# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
#
syntax: glob
@@ -129,6 +129,7 @@ usr/src/data/hwdata/THIRDPARTYLICENSE.efifixes.tmpl
usr/src/data/hwdata/pci.ids
usr/src/data/hwdata/usb.ids
usr/src/data/perfmon/*
+usr/src/data/ucode/Makefile.links
usr/src/data/ucode/amd/*
usr/src/data/ucode/intel/*
usr/src/grub/grub-0.97/stage2/Makefile.am
diff --git a/exception_lists/keywords b/exception_lists/keywords
index 9fa6b154c6..4db53981e3 100644
--- a/exception_lists/keywords
+++ b/exception_lists/keywords
@@ -23,6 +23,7 @@
# Copyright (c) 2013 by Delphix. All rights reserved.
# Copyright 2016 Toomas Soome <tsoome@me.com>
# Copyright 2018 Joyent, Inc.
+# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
#
syntax: glob
diff --git a/exception_lists/wscheck b/exception_lists/wscheck
index 0777d32c0c..679fdabfee 100644
--- a/exception_lists/wscheck
+++ b/exception_lists/wscheck
@@ -80,6 +80,7 @@ usr/src/compat/freebsd/*/*.h
usr/src/compat/freebsd/amd64/machine/*.h
usr/src/data/hwdata/pci.ids
usr/src/data/hwdata/usb.ids
+usr/src/data/ucode/intel/*
usr/src/data/perfmon/readme.txt
usr/contrib/freebsd/*/*.h
usr/contrib/freebsd/*/*/*.h
diff --git a/manifest b/manifest
index 37d492e044..5804899cf7 100644
--- a/manifest
+++ b/manifest
@@ -2302,6 +2302,12 @@ h platform/i86pc/ucode/GenuineIntel/00050654-04=platform/i86pc/ucode/GenuineInte
h platform/i86pc/ucode/GenuineIntel/00050654-10=platform/i86pc/ucode/GenuineIntel/00050654-01
h platform/i86pc/ucode/GenuineIntel/00050654-20=platform/i86pc/ucode/GenuineIntel/00050654-01
h platform/i86pc/ucode/GenuineIntel/00050654-80=platform/i86pc/ucode/GenuineIntel/00050654-01
+f platform/i86pc/ucode/GenuineIntel/00050655-01 0444 root sys
+h platform/i86pc/ucode/GenuineIntel/00050655-02=platform/i86pc/ucode/GenuineIntel/00050655-01
+h platform/i86pc/ucode/GenuineIntel/00050655-04=platform/i86pc/ucode/GenuineIntel/00050655-01
+h platform/i86pc/ucode/GenuineIntel/00050655-10=platform/i86pc/ucode/GenuineIntel/00050655-01
+h platform/i86pc/ucode/GenuineIntel/00050655-20=platform/i86pc/ucode/GenuineIntel/00050655-01
+h platform/i86pc/ucode/GenuineIntel/00050655-80=platform/i86pc/ucode/GenuineIntel/00050655-01
f platform/i86pc/ucode/GenuineIntel/00050656-01 0444 root sys
h platform/i86pc/ucode/GenuineIntel/00050656-02=platform/i86pc/ucode/GenuineIntel/00050656-01
h platform/i86pc/ucode/GenuineIntel/00050656-04=platform/i86pc/ucode/GenuineIntel/00050656-01
@@ -2325,7 +2331,6 @@ h platform/i86pc/ucode/GenuineIntel/0005065B-20=platform/i86pc/ucode/GenuineInte
h platform/i86pc/ucode/GenuineIntel/0005065B-80=platform/i86pc/ucode/GenuineIntel/0005065B-01
f platform/i86pc/ucode/GenuineIntel/00050662-10 0444 root sys
f platform/i86pc/ucode/GenuineIntel/00050663-10 0444 root sys
-f platform/i86pc/ucode/GenuineIntel/00060663-80 0444 root sys
f platform/i86pc/ucode/GenuineIntel/00050664-10 0444 root sys
f platform/i86pc/ucode/GenuineIntel/00050665-10 0444 root sys
f platform/i86pc/ucode/GenuineIntel/000506C2-01 0444 root sys
@@ -2338,11 +2343,28 @@ h platform/i86pc/ucode/GenuineIntel/000506E3-04=platform/i86pc/ucode/GenuineInte
h platform/i86pc/ucode/GenuineIntel/000506E3-10=platform/i86pc/ucode/GenuineIntel/000506E3-02
h platform/i86pc/ucode/GenuineIntel/000506E3-20=platform/i86pc/ucode/GenuineIntel/000506E3-02
f platform/i86pc/ucode/GenuineIntel/000506F1-01 0444 root sys
+f platform/i86pc/ucode/GenuineIntel/00060663-80 0444 root sys
+f platform/i86pc/ucode/GenuineIntel/000606A5-01 0444 root sys
+h platform/i86pc/ucode/GenuineIntel/000606A5-02=platform/i86pc/ucode/GenuineIntel/000606A5-01
+h platform/i86pc/ucode/GenuineIntel/000606A5-04=platform/i86pc/ucode/GenuineIntel/000606A5-01
+h platform/i86pc/ucode/GenuineIntel/000606A5-80=platform/i86pc/ucode/GenuineIntel/000606A5-01
+f platform/i86pc/ucode/GenuineIntel/000606A6-01 0444 root sys
+h platform/i86pc/ucode/GenuineIntel/000606A6-02=platform/i86pc/ucode/GenuineIntel/000606A6-01
+h platform/i86pc/ucode/GenuineIntel/000606A6-04=platform/i86pc/ucode/GenuineIntel/000606A6-01
+h platform/i86pc/ucode/GenuineIntel/000606A6-80=platform/i86pc/ucode/GenuineIntel/000606A6-01
f platform/i86pc/ucode/GenuineIntel/000706A1-01 0444 root sys
f platform/i86pc/ucode/GenuineIntel/000706A8-01 0444 root sys
f platform/i86pc/ucode/GenuineIntel/000706E5-80 0444 root sys
+f platform/i86pc/ucode/GenuineIntel/00080664-01 0444 root sys
+h platform/i86pc/ucode/GenuineIntel/00080665-01=platform/i86pc/ucode/GenuineIntel/00080664-01
f platform/i86pc/ucode/GenuineIntel/000806A1-10 0444 root sys
f platform/i86pc/ucode/GenuineIntel/000806C1-80 0444 root sys
+f platform/i86pc/ucode/GenuineIntel/000806C2-02 0444 root sys
+h platform/i86pc/ucode/GenuineIntel/000806C2-40=platform/i86pc/ucode/GenuineIntel/000806C2-02
+h platform/i86pc/ucode/GenuineIntel/000806C2-80=platform/i86pc/ucode/GenuineIntel/000806C2-02
+f platform/i86pc/ucode/GenuineIntel/000806D1-02 0444 root sys
+h platform/i86pc/ucode/GenuineIntel/000806D1-40=platform/i86pc/ucode/GenuineIntel/000806D1-02
+h platform/i86pc/ucode/GenuineIntel/000806D1-80=platform/i86pc/ucode/GenuineIntel/000806D1-02
f platform/i86pc/ucode/GenuineIntel/000806E9-10 0444 root sys
f platform/i86pc/ucode/GenuineIntel/000806E9-40 0444 root sys
h platform/i86pc/ucode/GenuineIntel/000806E9-80=platform/i86pc/ucode/GenuineIntel/000806E9-40
@@ -2354,6 +2376,8 @@ h platform/i86pc/ucode/GenuineIntel/000806EB-80=platform/i86pc/ucode/GenuineInte
f platform/i86pc/ucode/GenuineIntel/000806EC-04 0444 root sys
h platform/i86pc/ucode/GenuineIntel/000806EC-10=platform/i86pc/ucode/GenuineIntel/000806EC-04
h platform/i86pc/ucode/GenuineIntel/000806EC-80=platform/i86pc/ucode/GenuineIntel/000806EC-04
+f platform/i86pc/ucode/GenuineIntel/00090661-01 0444 root sys
+f platform/i86pc/ucode/GenuineIntel/000906C0-01 0444 root sys
f platform/i86pc/ucode/GenuineIntel/000906E9-02 0444 root sys
h platform/i86pc/ucode/GenuineIntel/000906E9-08=platform/i86pc/ucode/GenuineIntel/000906E9-02
h platform/i86pc/ucode/GenuineIntel/000906E9-20=platform/i86pc/ucode/GenuineIntel/000906E9-02
@@ -2371,6 +2395,7 @@ f platform/i86pc/ucode/GenuineIntel/000A0655-02 0444 root sys
h platform/i86pc/ucode/GenuineIntel/000A0655-20=platform/i86pc/ucode/GenuineIntel/000A0653-02
f platform/i86pc/ucode/GenuineIntel/000A0660-80 0444 root sys
f platform/i86pc/ucode/GenuineIntel/000A0661-80 0444 root sys
+f platform/i86pc/ucode/GenuineIntel/000A0671-02 0444 root sys
d proc 0755 root root
d root 0755 root root
f root/.bash_profile 0644 root root
diff --git a/usr/src/cmd/ctfdump/ctfdump.c b/usr/src/cmd/ctfdump/ctfdump.c
index a2e668d266..d54b50c6e7 100644
--- a/usr/src/cmd/ctfdump/ctfdump.c
+++ b/usr/src/cmd/ctfdump/ctfdump.c
@@ -121,7 +121,7 @@ ctfdump_printf(ctfdump_arg_t arg, const char *fmt, ...)
va_end(ap);
}
-static void
+static void __NORETURN
ctfdump_fatal(const char *fmt, ...)
{
va_list ap;
@@ -987,8 +987,82 @@ ctfsrc_function(ctf_idname_t *idn)
static int
idname_compare(const void *lhs, const void *rhs)
{
- return (strcmp(((ctf_idname_t *)lhs)->ci_name,
- ((ctf_idname_t *)rhs)->ci_name));
+ int ret;
+ char lname[MAX_NAMELEN] = {0};
+ char rname[MAX_NAMELEN] = {0};
+ const ctf_idname_t *l = lhs;
+ const ctf_idname_t *r = rhs;
+ uint_t arity = 0;
+
+ if ((ret = strcmp(l->ci_name, r->ci_name)) != 0)
+ return (ret);
+
+ /* If the names match, try arity */
+ if (l->ci_funcinfo.ctc_argc < r->ci_funcinfo.ctc_argc)
+ return (-1);
+ else if (l->ci_funcinfo.ctc_argc > r->ci_funcinfo.ctc_argc)
+ return (1);
+ else
+ arity = l->ci_funcinfo.ctc_argc;
+
+ /* If arity doesn't help, try return type */
+ (void) strlcpy(lname, "unknown_t", sizeof (lname));
+ (void) strlcpy(rname, "unknown_t", sizeof (rname));
+ (void) ctf_type_name(g_fp, l->ci_funcinfo.ctc_return, lname,
+ sizeof (lname));
+ (void) ctf_type_name(g_fp, r->ci_funcinfo.ctc_return, rname,
+ sizeof (rname));
+
+ if ((ret = strcmp(lname, rname)) != 0)
+ return (ret);
+
+ /* if return type doesn't help, try parameter types */
+ if (arity == 0)
+ return (0);
+
+ ctf_id_t *largs = calloc(arity, sizeof (ctf_id_t));
+ ctf_id_t *rargs = calloc(arity, sizeof (ctf_id_t));
+
+ if ((largs == NULL) || (rargs == NULL)) {
+ free(rargs);
+ free(largs);
+ ctfdump_fatal("failed to alloc argument ids for sorting: "
+ " %s\n", strerror(errno));
+ }
+
+ if (ctf_func_args(g_fp, l->ci_symidx, arity, largs) == CTF_ERR) {
+ free(rargs);
+ free(largs);
+ ctfdump_fatal("failed to get arguments for function "
+ "%s: %s\n", l->ci_name,
+ ctf_errmsg(ctf_errno(g_fp)));
+ }
+
+ if (ctf_func_args(g_fp, r->ci_symidx, arity, rargs) == CTF_ERR) {
+ free(rargs);
+ free(largs);
+ ctfdump_fatal("failed to get arguments for function "
+ "%s: %s\n", r->ci_name,
+ ctf_errmsg(ctf_errno(g_fp)));
+ }
+
+ for (uint_t i = 0; i < arity; i++) {
+ (void) strlcpy(lname, "unknown_t", sizeof (lname));
+ (void) ctf_type_name(g_fp, largs[i], lname, sizeof (lname));
+
+ (void) strlcpy(rname, "unknown_t", sizeof (rname));
+ (void) ctf_type_name(g_fp, rargs[i], rname, sizeof (rname));
+
+ if ((ret = strcmp(lname, rname)) != 0) {
+ free(rargs);
+ free(largs);
+ return (ret);
+ }
+ }
+
+ free(rargs);
+ free(largs);
+ return (0);
}
static void
diff --git a/usr/src/cmd/dis/dis_target.c b/usr/src/cmd/dis/dis_target.c
index 37ab5cc3bc..ec280628b9 100644
--- a/usr/src/cmd/dis/dis_target.c
+++ b/usr/src/cmd/dis/dis_target.c
@@ -68,7 +68,7 @@ typedef struct sym_entry {
* mess up symbol resolution (which uses the virtual address).
*/
typedef struct dis_shnmap {
- const char *dm_name; /* name of section */
+ const char *dm_name; /* name of section */
uint64_t dm_start; /* virtual address of section */
size_t dm_length; /* address length */
boolean_t dm_mapped; /* did we assign the mapping */
@@ -157,6 +157,8 @@ sym_compare(const void *a, const void *b)
const sym_entry_t *symb = b;
const char *aname = syma->se_name;
const char *bname = symb->se_name;
+ size_t alen;
+ size_t blen;
if (syma->se_sym.st_value < symb->se_sym.st_value)
return (-1);
@@ -179,9 +181,9 @@ sym_compare(const void *a, const void *b)
* For symbols with the same address and type, we sort them according to
* a hierarchy:
*
- * 1. weak symbols (common name)
- * 2. global symbols (external name)
- * 3. local symbols
+ * 1. weak symbols (common name)
+ * 2. global symbols (external name)
+ * 3. local symbols
*/
if (GELF_ST_BIND(syma->se_sym.st_info) !=
GELF_ST_BIND(symb->se_sym.st_info)) {
@@ -224,10 +226,23 @@ sym_compare(const void *a, const void *b)
return (1);
/*
- * We really do have two identical symbols for some reason. Just report
- * them as equal, and to the lucky one go the spoils.
+ * We really do have two identical symbols, choose the one with the
+ * shortest name if we can, heuristically taking it to be the most
+ * representative.
*/
- return (0);
+ alen = strlen(syma->se_name);
+ blen = strlen(symb->se_name);
+
+ if (alen < blen)
+ return (-1);
+ else if (alen > blen)
+ return (1);
+
+ /*
+ * If all else fails, compare the names, so that we give a stable
+ * sort
+ */
+ return (strcmp(syma->se_name, symb->se_name));
}
/*
diff --git a/usr/src/cmd/getent/Makefile b/usr/src/cmd/getent/Makefile
index c68e2d91fe..174cb40fbb 100644
--- a/usr/src/cmd/getent/Makefile
+++ b/usr/src/cmd/getent/Makefile
@@ -38,6 +38,7 @@ OBJECTS= \
dogethost.o \
dogetipnodes.o \
dogetnet.o \
+ dogetnetgr.o \
dogetnetmask.o \
dogetprofattr.o \
dogetproject.o \
diff --git a/usr/src/cmd/getent/dogetnetgr.c b/usr/src/cmd/getent/dogetnetgr.c
new file mode 100644
index 0000000000..7addef787b
--- /dev/null
+++ b/usr/src/cmd/getent/dogetnetgr.c
@@ -0,0 +1,71 @@
+/*
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source. A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ */
+
+/*
+ * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2021 Planets Communications B.V.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <netdb.h>
+#include <string.h>
+#include "getent.h"
+
+int
+dogetnetgr(const char **list)
+{
+ uint_t cnt;
+ char *host, *user, *dom;
+ const char *host_filter, *user_filter, *dom_filter;
+ int rc = EXC_SUCCESS;
+
+ if (list == NULL || *list == NULL)
+ return (EXC_ENUM_NOT_SUPPORTED);
+
+ /*
+ * Count the arguments given.
+ */
+ cnt = 0;
+ while (list[cnt] != NULL)
+ cnt++;
+
+ switch (cnt) {
+ case 1:
+ if (setnetgrent(list[0]) != 0)
+ return (EXC_ERROR);
+ printf("%s", list[0]);
+ while (getnetgrent(&host, &user, &dom) != 0) {
+ printf(" (%s,%s,%s)",
+ (host) ? host : "",
+ (user) ? user : "",
+ (dom) ? dom : "");
+ }
+ printf("\n");
+ break;
+ case 4:
+ host_filter = (strcmp(list[1], "*") == 0) ? NULL : list[1];
+ user_filter = (strcmp(list[2], "*") == 0) ? NULL : list[2];
+ dom_filter = (strcmp(list[3], "*") == 0) ? NULL : list[3];
+ printf("%-21s (%s,%s,%s) = %d\n", list[0],
+ (host_filter) ? host_filter : "",
+ (user_filter) ? user_filter : "",
+ (dom_filter) ? dom_filter : "",
+ innetgr(list[0], host_filter, user_filter, dom_filter));
+ break;
+ default:
+ rc = EXC_SYNTAX;
+ break;
+ }
+
+ return (rc);
+}
diff --git a/usr/src/cmd/getent/getent.c b/usr/src/cmd/getent/getent.c
index 782034d956..ea15e1dd9b 100644
--- a/usr/src/cmd/getent/getent.c
+++ b/usr/src/cmd/getent/getent.c
@@ -56,6 +56,7 @@ static struct table t[] = {
{ "exec_attr", dogetexecattr },
{ "prof_attr", dogetprofattr },
{ "user_attr", dogetuserattr },
+ { "netgroup", dogetnetgr },
{ NULL, NULL }
};
@@ -89,6 +90,10 @@ main(int argc, const char **argv)
(void) fprintf(stderr,
gettext("Syntax error\n"));
break;
+ case EXC_ERROR:
+ (void) fprintf(stderr,
+ gettext("Internal error\n"));
+ break;
case EXC_ENUM_NOT_SUPPORTED:
(void) fprintf(stderr,
gettext("Enumeration not supported on %s\n"), argv[1]);
diff --git a/usr/src/cmd/getent/getent.h b/usr/src/cmd/getent/getent.h
index 99b5cac075..6d5f6ed74a 100644
--- a/usr/src/cmd/getent/getent.h
+++ b/usr/src/cmd/getent/getent.h
@@ -40,6 +40,7 @@ extern "C" {
#define EXC_SYNTAX 1
#define EXC_NAME_NOT_FOUND 2
#define EXC_ENUM_NOT_SUPPORTED 3
+#define EXC_ERROR 4
extern int dogetpw(const char **);
extern int dogetsp(const char **);
@@ -56,6 +57,7 @@ extern int dogetauthattr(const char **);
extern int dogetexecattr(const char **);
extern int dogetprofattr(const char **);
extern int dogetuserattr(const char **);
+extern int dogetnetgr(const char **);
#ifdef __cplusplus
}
diff --git a/usr/src/cmd/netfiles/nsswitch.ad b/usr/src/cmd/netfiles/nsswitch.ad
index e869c6bd32..bec5c72c2d 100644
--- a/usr/src/cmd/netfiles/nsswitch.ad
+++ b/usr/src/cmd/netfiles/nsswitch.ad
@@ -61,8 +61,6 @@ ethers: files
netmasks: files
bootparams: files
publickey: files
-# At present there isn't a 'files' backend for netgroup; the system will
-# figure it out pretty quickly, and won't use netgroups at all.
netgroup: files
automount: files
aliases: files
diff --git a/usr/src/cmd/netfiles/nsswitch.conf b/usr/src/cmd/netfiles/nsswitch.conf
index 166e5e0ca3..573b3107af 100644
--- a/usr/src/cmd/netfiles/nsswitch.conf
+++ b/usr/src/cmd/netfiles/nsswitch.conf
@@ -38,8 +38,6 @@ ethers: files
netmasks: files
bootparams: files
publickey: files
-# At present there isn't a 'files' backend for netgroup; the system will
-# figure it out pretty quickly, and won't use netgroups at all.
netgroup: files
automount: files
aliases: files
diff --git a/usr/src/cmd/netfiles/nsswitch.dns b/usr/src/cmd/netfiles/nsswitch.dns
index ff4bafcc0c..cb58c3bc0a 100644
--- a/usr/src/cmd/netfiles/nsswitch.dns
+++ b/usr/src/cmd/netfiles/nsswitch.dns
@@ -21,7 +21,6 @@
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-#ident "%Z%%M% %I% %E% SMI"
#
# /etc/nsswitch.dns:
@@ -39,7 +38,7 @@ passwd: files
group: files
# You must also set up the /etc/resolv.conf file for DNS name
-# server lookup. See resolv.conf(4). For lookup via mdns
+# server lookup. See resolv.conf(4). For lookup via mdns
# svc:/network/dns/multicast:default must also be enabled. See mdnsd(1M)
hosts: files dns mdns
@@ -54,8 +53,6 @@ ethers: files
netmasks: files
bootparams: files
publickey: files
-# At present there isn't a 'files' backend for netgroup; the system will
-# figure it out pretty quickly, and won't use netgroups at all.
netgroup: files
automount: files
aliases: files
diff --git a/usr/src/cmd/netfiles/nsswitch.files b/usr/src/cmd/netfiles/nsswitch.files
index da48bed918..f847a442f6 100644
--- a/usr/src/cmd/netfiles/nsswitch.files
+++ b/usr/src/cmd/netfiles/nsswitch.files
@@ -20,7 +20,6 @@
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# ident "%Z%%M% %I% %E% SMI"
#
# /etc/nsswitch.files:
@@ -42,8 +41,6 @@ ethers: files
netmasks: files
bootparams: files
publickey: files
-# At present there isn't a 'files' backend for netgroup; the system will
-# figure it out pretty quickly, and won't use netgroups at all.
netgroup: files
automount: files
aliases: files
diff --git a/usr/src/cmd/netfiles/nsswitch.ldap b/usr/src/cmd/netfiles/nsswitch.ldap
index ccf75b4962..abf28da3d1 100644
--- a/usr/src/cmd/netfiles/nsswitch.ldap
+++ b/usr/src/cmd/netfiles/nsswitch.ldap
@@ -36,7 +36,6 @@
passwd: files ldap
group: files ldap
-# consult /etc "files" only if ldap is down.
hosts: files ldap
# Note that IPv4 addresses are searched for in all of the ipnodes databases
@@ -51,7 +50,7 @@ netmasks: files ldap
bootparams: files ldap
publickey: files ldap
-netgroup: ldap
+netgroup: files ldap
automount: files ldap
aliases: files ldap
diff --git a/usr/src/cmd/netfiles/nsswitch.nis b/usr/src/cmd/netfiles/nsswitch.nis
index 064fdc40d9..9d31c9ac4d 100644
--- a/usr/src/cmd/netfiles/nsswitch.nis
+++ b/usr/src/cmd/netfiles/nsswitch.nis
@@ -36,7 +36,6 @@
passwd: files nis
group: files nis
-# consult /etc "files" only if nis is down.
hosts: files nis
# Note that IPv4 addresses are searched for in all of the ipnodes databases
@@ -51,7 +50,7 @@ netmasks: files nis
bootparams: files nis
publickey: files nis
-netgroup: nis
+netgroup: files nis
automount: files nis
aliases: files nis
diff --git a/usr/src/cmd/ucodeadm/ucodeadm.c b/usr/src/cmd/ucodeadm/ucodeadm.c
index 18d0162b82..65f61facea 100644
--- a/usr/src/cmd/ucodeadm/ucodeadm.c
+++ b/usr/src/cmd/ucodeadm/ucodeadm.c
@@ -387,11 +387,10 @@ ucode_gen_files_intel(uint8_t *buf, int size, char *path)
dprintf("proc_flags = %x, platid = %x, name = %s\n",
uhp->uh_proc_flags, platid, name);
- if (ucode_should_update_intel(name, uhp->uh_rev) != 0) {
-
+ if (ucode_should_update_intel(name,
+ uhp->uh_rev) != 0) {
/* Remove the existing one first */
(void) unlink(name);
-
if (link(firstname, name) == -1) {
ucode_perror(name, EM_SYS);
return (EM_SYS);
@@ -422,12 +421,15 @@ ucode_gen_files_intel(uint8_t *buf, int size, char *path)
continue;
(void) snprintf(name, PATH_MAX,
- "%s/%08X-%02X", path, extp->uet_ext_sig[i],
- id);
+ "%s/%08X-%02X", path,
+ uesp->ues_signature, id);
- if (ucode_should_update_intel(name, uhp->uh_rev)
- != 0) {
+ dprintf("extsig: proc_flags = %x, "
+ "platid = %x, name = %s\n",
+ uesp->ues_proc_flags, id, name);
+ if (ucode_should_update_intel(name,
+ uhp->uh_rev) != 0) {
/* Remove the existing one first */
(void) unlink(name);
if (link(firstname, name) == -1) {
diff --git a/usr/src/cmd/zfs/zfs_main.c b/usr/src/cmd/zfs/zfs_main.c
index c8c7c525ba..69a9af8ea7 100644
--- a/usr/src/cmd/zfs/zfs_main.c
+++ b/usr/src/cmd/zfs/zfs_main.c
@@ -30,6 +30,7 @@
* Copyright 2016 Igor Kozhukhov <ikozhukhov@gmail.com>.
* Copyright 2016 Nexenta Systems, Inc.
* Copyright (c) 2018 Datto Inc.
+ * Copyright 2021 RackTop Systems, Inc.
*/
#include <assert.h>
@@ -6142,7 +6143,7 @@ zfs_do_holds(int argc, char **argv)
/*
* 1. collect holds data, set format options
*/
- ret = zfs_for_each(argc, argv, flags, types, NULL, NULL, limit,
+ ret = zfs_for_each(1, &argv[i], flags, types, NULL, NULL, limit,
holds_callback, &cb);
if (ret != 0)
++errors;
diff --git a/usr/src/common/ucode/ucode_errno.h b/usr/src/common/ucode/ucode_errno.h
index 96471142df..ba371ff523 100644
--- a/usr/src/common/ucode/ucode_errno.h
+++ b/usr/src/common/ucode/ucode_errno.h
@@ -22,13 +22,13 @@
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
*/
#ifndef _UCODE_ERRNO_H
#define _UCODE_ERRNO_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -40,6 +40,8 @@ typedef enum ucode_errno {
EM_FILEFORMAT, /* Not a valid microcode file */
EM_HEADER, /* File header is invalid */
EM_CHECKSUM, /* Checksum is invalid */
+ EM_EXTCHECKSUM, /* Extended signature table checksum is invalid */
+ EM_SIGCHECKSUM, /* Extended signature checksum is invalid */
EM_INVALIDARG, /* Invalid argument(s) */
EM_NOMATCH, /* No matching microcode found */
EM_HIGHERREV, /* File does not contain higher revision microcode */
diff --git a/usr/src/common/ucode/ucode_utils.c b/usr/src/common/ucode/ucode_utils.c
index ec3efa63ee..79c2669413 100644
--- a/usr/src/common/ucode/ucode_utils.c
+++ b/usr/src/common/ucode/ucode_utils.c
@@ -37,7 +37,7 @@
/*
* Refer to
* Intel 64 and IA-32 Architectures Software Developers's Manual
- * Chapter 9.11 Microcode Update Facilities
+ * Chapter 9.11 Microcode Update Facilities [1]
* for details.
*/
@@ -116,6 +116,31 @@ ucode_checksum_intel(uint32_t sum, uint32_t size, uint8_t *code)
return (sum);
}
+uint32_t
+ucode_checksum_intel_extsig(ucode_header_intel_t *uhp,
+ ucode_ext_sig_intel_t *uesp)
+{
+ /*
+ * From [1], table 9-7, the checksum field contained in the extended
+ * patch signature is the checksum across the entire update which would
+ * result if the primary processor signature and processor flags were
+ * replaced with the values from this entry.
+ *
+ * We can therefore just calculate the difference in the checksum
+ * between the old and new values and return that to the caller. If the
+ * difference is zero then the checksum for the patch is valid.
+ */
+ uint32_t diff;
+
+ diff = uesp->ues_signature +
+ uesp->ues_proc_flags + uesp->ues_checksum;
+ diff -= uhp->uh_signature + uhp->uh_proc_flags +
+ uhp->uh_checksum;
+
+ return (diff);
+}
+
+
ucode_errno_t
ucode_validate_amd(uint8_t *ucodep, int size)
{
@@ -177,37 +202,35 @@ ucode_validate_intel(uint8_t *ucodep, int size)
uint8_t *curbuf = &ucodep[size - remaining];
ucode_errno_t rc;
- uhp = (ucode_header_intel_t *)(intptr_t)curbuf;
+ uhp = (ucode_header_intel_t *)curbuf;
if ((rc = ucode_header_validate_intel(uhp)) != EM_OK)
return (rc);
total_size = UCODE_TOTAL_SIZE_INTEL(uhp->uh_total_size);
- if (ucode_checksum_intel(0, total_size, curbuf))
+ if (ucode_checksum_intel(0, total_size, curbuf) != 0)
return (EM_CHECKSUM);
body_size = UCODE_BODY_SIZE_INTEL(uhp->uh_body_size);
ext_size = total_size - (header_size + body_size);
if (ext_size > 0) {
+ ucode_ext_table_intel_t *ext;
uint32_t i;
- if (ucode_checksum_intel(0, ext_size,
- &curbuf[header_size + body_size])) {
- return (EM_CHECKSUM);
- }
+ ext = (ucode_ext_table_intel_t *)
+ &curbuf[header_size + body_size];
+
+ if (ucode_checksum_intel(0, ext_size, (uint8_t *)ext))
+ return (EM_EXTCHECKSUM);
- ext_size -= UCODE_EXT_TABLE_SIZE_INTEL;
- for (i = 0; i < ext_size / UCODE_EXT_SIG_SIZE_INTEL;
- i++) {
- if (ucode_checksum_intel(0,
- UCODE_EXT_SIG_SIZE_INTEL,
- &curbuf[total_size - ext_size +
- i * UCODE_EXT_SIG_SIZE_INTEL])) {
+ for (i = 0; i < ext->uet_count; i++) {
+ ucode_ext_sig_intel_t *sig =
+ &ext->uet_ext_sig[i];
- return (EM_CHECKSUM);
- }
+ if (ucode_checksum_intel_extsig(uhp, sig) != 0)
+ return (EM_SIGCHECKSUM);
}
}
diff --git a/usr/src/data/ucode/Makefile.links b/usr/src/data/ucode/Makefile.links
index 0f74a1beb7..39be3efa48 100644
--- a/usr/src/data/ucode/Makefile.links
+++ b/usr/src/data/ucode/Makefile.links
@@ -119,6 +119,11 @@ INTEL_LINKS = \
00050654-10 \
00050654-20 \
00050654-80 \
+ 00050655-02 \
+ 00050655-04 \
+ 00050655-10 \
+ 00050655-20 \
+ 00050655-80 \
00050656-02 \
00050656-04 \
00050656-08 \
@@ -142,6 +147,17 @@ INTEL_LINKS = \
000506E3-04 \
000506E3-10 \
000506E3-20 \
+ 000606A5-02 \
+ 000606A5-04 \
+ 000606A5-80 \
+ 000606A6-02 \
+ 000606A6-04 \
+ 000606A6-80 \
+ 00080665-01 \
+ 000806C2-40 \
+ 000806C2-80 \
+ 000806D1-40 \
+ 000806D1-80 \
000806E9-80 \
000806EA-80 \
000806EB-40 \
@@ -483,6 +499,21 @@ $(ROOTINTELDIR)/00050654-20: $(ROOTINTELDIR)/00050654-01
$(ROOTINTELDIR)/00050654-80: $(ROOTINTELDIR)/00050654-01
$(RM) $@; $(LN) $^ $@
+$(ROOTINTELDIR)/00050655-02: $(ROOTINTELDIR)/00050655-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/00050655-04: $(ROOTINTELDIR)/00050655-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/00050655-10: $(ROOTINTELDIR)/00050655-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/00050655-20: $(ROOTINTELDIR)/00050655-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/00050655-80: $(ROOTINTELDIR)/00050655-01
+ $(RM) $@; $(LN) $^ $@
+
$(ROOTINTELDIR)/00050656-02: $(ROOTINTELDIR)/00050656-01
$(RM) $@; $(LN) $^ $@
@@ -552,6 +583,39 @@ $(ROOTINTELDIR)/000506E3-10: $(ROOTINTELDIR)/000506E3-02
$(ROOTINTELDIR)/000506E3-20: $(ROOTINTELDIR)/000506E3-02
$(RM) $@; $(LN) $^ $@
+$(ROOTINTELDIR)/000606A5-02: $(ROOTINTELDIR)/000606A5-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000606A5-04: $(ROOTINTELDIR)/000606A5-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000606A5-80: $(ROOTINTELDIR)/000606A5-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000606A6-02: $(ROOTINTELDIR)/000606A6-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000606A6-04: $(ROOTINTELDIR)/000606A6-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000606A6-80: $(ROOTINTELDIR)/000606A6-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/00080665-01: $(ROOTINTELDIR)/00080664-01
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000806C2-40: $(ROOTINTELDIR)/000806C2-02
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000806C2-80: $(ROOTINTELDIR)/000806C2-02
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000806D1-40: $(ROOTINTELDIR)/000806D1-02
+ $(RM) $@; $(LN) $^ $@
+
+$(ROOTINTELDIR)/000806D1-80: $(ROOTINTELDIR)/000806D1-02
+ $(RM) $@; $(LN) $^ $@
+
$(ROOTINTELDIR)/000806E9-80: $(ROOTINTELDIR)/000806E9-40
$(RM) $@; $(LN) $^ $@
diff --git a/usr/src/data/ucode/README.ucode b/usr/src/data/ucode/README.ucode
index 4d074c7d85..c2f0b03d81 100644
--- a/usr/src/data/ucode/README.ucode
+++ b/usr/src/data/ucode/README.ucode
@@ -38,4 +38,4 @@ of updating the manifest as necessary. Be careful about new files.
AMD: Updated in March 2012 as part of illumos#2546. Exact revision
unknown.
-Intel: Linux 20200616 release
+Intel: Linux 20210608 release
diff --git a/usr/src/data/ucode/intel/000306F2-01 b/usr/src/data/ucode/intel/000306F2-01
index 8c9f14b1f8..04a67cf050 100644
--- a/usr/src/data/ucode/intel/000306F2-01
+++ b/usr/src/data/ucode/intel/000306F2-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000306F4-80 b/usr/src/data/ucode/intel/000306F4-80
index 2cdbb7c270..fa7f56f52b 100644
--- a/usr/src/data/ucode/intel/000306F4-80
+++ b/usr/src/data/ucode/intel/000306F4-80
Binary files differ
diff --git a/usr/src/data/ucode/intel/000406E3-40 b/usr/src/data/ucode/intel/000406E3-40
index 31f9692d1a..d9426ae970 100644
--- a/usr/src/data/ucode/intel/000406E3-40
+++ b/usr/src/data/ucode/intel/000406E3-40
Binary files differ
diff --git a/usr/src/data/ucode/intel/000406F1-01 b/usr/src/data/ucode/intel/000406F1-01
index b38c4a5cc5..1c6e7933a5 100644
--- a/usr/src/data/ucode/intel/000406F1-01
+++ b/usr/src/data/ucode/intel/000406F1-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050653-01 b/usr/src/data/ucode/intel/00050653-01
index 58a19b54bb..c76fac3ab0 100644
--- a/usr/src/data/ucode/intel/00050653-01
+++ b/usr/src/data/ucode/intel/00050653-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050654-01 b/usr/src/data/ucode/intel/00050654-01
index 382287077a..cca28e70a8 100644
--- a/usr/src/data/ucode/intel/00050654-01
+++ b/usr/src/data/ucode/intel/00050654-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050655-01 b/usr/src/data/ucode/intel/00050655-01
new file mode 100644
index 0000000000..923b87da82
--- /dev/null
+++ b/usr/src/data/ucode/intel/00050655-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050656-01 b/usr/src/data/ucode/intel/00050656-01
index 8370d641fb..96169ce3fe 100644
--- a/usr/src/data/ucode/intel/00050656-01
+++ b/usr/src/data/ucode/intel/00050656-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050657-01 b/usr/src/data/ucode/intel/00050657-01
index 8b1f7e4876..f7779ee1dd 100644
--- a/usr/src/data/ucode/intel/00050657-01
+++ b/usr/src/data/ucode/intel/00050657-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/0005065B-01 b/usr/src/data/ucode/intel/0005065B-01
index 999c0ad32f..96deb26c6e 100644
--- a/usr/src/data/ucode/intel/0005065B-01
+++ b/usr/src/data/ucode/intel/0005065B-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050663-10 b/usr/src/data/ucode/intel/00050663-10
index 37f7333bc6..2a9d8eaf7c 100644
--- a/usr/src/data/ucode/intel/00050663-10
+++ b/usr/src/data/ucode/intel/00050663-10
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050664-10 b/usr/src/data/ucode/intel/00050664-10
index 0e8fc2b5fe..9bb6fbea80 100644
--- a/usr/src/data/ucode/intel/00050664-10
+++ b/usr/src/data/ucode/intel/00050664-10
Binary files differ
diff --git a/usr/src/data/ucode/intel/00050665-10 b/usr/src/data/ucode/intel/00050665-10
index b2c17aa506..12badd3891 100644
--- a/usr/src/data/ucode/intel/00050665-10
+++ b/usr/src/data/ucode/intel/00050665-10
Binary files differ
diff --git a/usr/src/data/ucode/intel/000506C9-01 b/usr/src/data/ucode/intel/000506C9-01
index 40a5a92115..34e1525d17 100644
--- a/usr/src/data/ucode/intel/000506C9-01
+++ b/usr/src/data/ucode/intel/000506C9-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000506CA-01 b/usr/src/data/ucode/intel/000506CA-01
index e106f988cd..44ca47239a 100644
--- a/usr/src/data/ucode/intel/000506CA-01
+++ b/usr/src/data/ucode/intel/000506CA-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000506E3-02 b/usr/src/data/ucode/intel/000506E3-02
index 35b10f7545..b44e31abae 100644
--- a/usr/src/data/ucode/intel/000506E3-02
+++ b/usr/src/data/ucode/intel/000506E3-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000506F1-01 b/usr/src/data/ucode/intel/000506F1-01
index a1e3d414b7..f0f4c78068 100644
--- a/usr/src/data/ucode/intel/000506F1-01
+++ b/usr/src/data/ucode/intel/000506F1-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000606A5-01 b/usr/src/data/ucode/intel/000606A5-01
new file mode 100644
index 0000000000..ab203913cf
--- /dev/null
+++ b/usr/src/data/ucode/intel/000606A5-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000606A6-01 b/usr/src/data/ucode/intel/000606A6-01
new file mode 100644
index 0000000000..e19f676689
--- /dev/null
+++ b/usr/src/data/ucode/intel/000606A6-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000706A1-01 b/usr/src/data/ucode/intel/000706A1-01
index 68ee033cba..ee8a144fad 100644
--- a/usr/src/data/ucode/intel/000706A1-01
+++ b/usr/src/data/ucode/intel/000706A1-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000706A8-01 b/usr/src/data/ucode/intel/000706A8-01
index 7401dfcafa..9099bd3108 100644
--- a/usr/src/data/ucode/intel/000706A8-01
+++ b/usr/src/data/ucode/intel/000706A8-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000706E5-80 b/usr/src/data/ucode/intel/000706E5-80
index 9cc6c0b4fc..0f8b5772f8 100644
--- a/usr/src/data/ucode/intel/000706E5-80
+++ b/usr/src/data/ucode/intel/000706E5-80
Binary files differ
diff --git a/usr/src/data/ucode/intel/00080664-01 b/usr/src/data/ucode/intel/00080664-01
new file mode 100644
index 0000000000..2d3c357f8c
--- /dev/null
+++ b/usr/src/data/ucode/intel/00080664-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806A1-10 b/usr/src/data/ucode/intel/000806A1-10
index 17587d26bf..45b544affe 100644
--- a/usr/src/data/ucode/intel/000806A1-10
+++ b/usr/src/data/ucode/intel/000806A1-10
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806C1-80 b/usr/src/data/ucode/intel/000806C1-80
index ae606737b9..e01ba0c1e9 100644
--- a/usr/src/data/ucode/intel/000806C1-80
+++ b/usr/src/data/ucode/intel/000806C1-80
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806C2-02 b/usr/src/data/ucode/intel/000806C2-02
new file mode 100644
index 0000000000..12da9fe36f
--- /dev/null
+++ b/usr/src/data/ucode/intel/000806C2-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806D1-02 b/usr/src/data/ucode/intel/000806D1-02
new file mode 100644
index 0000000000..5ac418b395
--- /dev/null
+++ b/usr/src/data/ucode/intel/000806D1-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806E9-10 b/usr/src/data/ucode/intel/000806E9-10
index 7845f7b24a..11fcf69c93 100644
--- a/usr/src/data/ucode/intel/000806E9-10
+++ b/usr/src/data/ucode/intel/000806E9-10
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806E9-40 b/usr/src/data/ucode/intel/000806E9-40
index 59d344ea1e..e08e7da081 100644
--- a/usr/src/data/ucode/intel/000806E9-40
+++ b/usr/src/data/ucode/intel/000806E9-40
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806EA-40 b/usr/src/data/ucode/intel/000806EA-40
index 7132da991c..d9b7508844 100644
--- a/usr/src/data/ucode/intel/000806EA-40
+++ b/usr/src/data/ucode/intel/000806EA-40
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806EB-10 b/usr/src/data/ucode/intel/000806EB-10
index f31533186f..6fb591d3bc 100644
--- a/usr/src/data/ucode/intel/000806EB-10
+++ b/usr/src/data/ucode/intel/000806EB-10
Binary files differ
diff --git a/usr/src/data/ucode/intel/000806EC-04 b/usr/src/data/ucode/intel/000806EC-04
index f899df17ae..00980231fe 100644
--- a/usr/src/data/ucode/intel/000806EC-04
+++ b/usr/src/data/ucode/intel/000806EC-04
Binary files differ
diff --git a/usr/src/data/ucode/intel/00090661-01 b/usr/src/data/ucode/intel/00090661-01
new file mode 100644
index 0000000000..8140fcc082
--- /dev/null
+++ b/usr/src/data/ucode/intel/00090661-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000906C0-01 b/usr/src/data/ucode/intel/000906C0-01
new file mode 100644
index 0000000000..2cf44b1bef
--- /dev/null
+++ b/usr/src/data/ucode/intel/000906C0-01
Binary files differ
diff --git a/usr/src/data/ucode/intel/000906E9-02 b/usr/src/data/ucode/intel/000906E9-02
index 6f22886383..23327ecf8f 100644
--- a/usr/src/data/ucode/intel/000906E9-02
+++ b/usr/src/data/ucode/intel/000906E9-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000906EA-02 b/usr/src/data/ucode/intel/000906EA-02
index d251c40073..13855bb023 100644
--- a/usr/src/data/ucode/intel/000906EA-02
+++ b/usr/src/data/ucode/intel/000906EA-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000906EB-02 b/usr/src/data/ucode/intel/000906EB-02
index c8ee8e2734..c49cdc673c 100644
--- a/usr/src/data/ucode/intel/000906EB-02
+++ b/usr/src/data/ucode/intel/000906EB-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000906EC-02 b/usr/src/data/ucode/intel/000906EC-02
index 958bce4860..f9b5c5ae9f 100644
--- a/usr/src/data/ucode/intel/000906EC-02
+++ b/usr/src/data/ucode/intel/000906EC-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000906ED-02 b/usr/src/data/ucode/intel/000906ED-02
index c55b75e9c7..9b5a312dfc 100644
--- a/usr/src/data/ucode/intel/000906ED-02
+++ b/usr/src/data/ucode/intel/000906ED-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000A0652-20 b/usr/src/data/ucode/intel/000A0652-20
index 9a67b26901..eed05a9868 100644
--- a/usr/src/data/ucode/intel/000A0652-20
+++ b/usr/src/data/ucode/intel/000A0652-20
Binary files differ
diff --git a/usr/src/data/ucode/intel/000A0653-02 b/usr/src/data/ucode/intel/000A0653-02
index 5007693b9e..9bf967dfcd 100644
--- a/usr/src/data/ucode/intel/000A0653-02
+++ b/usr/src/data/ucode/intel/000A0653-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000A0655-02 b/usr/src/data/ucode/intel/000A0655-02
index 5910266f94..b8ede54fe6 100644
--- a/usr/src/data/ucode/intel/000A0655-02
+++ b/usr/src/data/ucode/intel/000A0655-02
Binary files differ
diff --git a/usr/src/data/ucode/intel/000A0660-80 b/usr/src/data/ucode/intel/000A0660-80
index 62f6195573..601bce5354 100644
--- a/usr/src/data/ucode/intel/000A0660-80
+++ b/usr/src/data/ucode/intel/000A0660-80
Binary files differ
diff --git a/usr/src/data/ucode/intel/000A0661-80 b/usr/src/data/ucode/intel/000A0661-80
index 370c93ed55..c38c1510f6 100644
--- a/usr/src/data/ucode/intel/000A0661-80
+++ b/usr/src/data/ucode/intel/000A0661-80
Binary files differ
diff --git a/usr/src/data/ucode/intel/000A0671-02 b/usr/src/data/ucode/intel/000A0671-02
new file mode 100644
index 0000000000..b8e29c36c7
--- /dev/null
+++ b/usr/src/data/ucode/intel/000A0671-02
Binary files differ
diff --git a/usr/src/grub/capability b/usr/src/grub/capability
index dd7c6018df..69b12a3b4e 100644
--- a/usr/src/grub/capability
+++ b/usr/src/grub/capability
@@ -22,6 +22,7 @@
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
# Copyright 2013 Saso Kiselkov. All rights reserved.
# Copyright 2016 Nexenta Systems, Inc.
+# Copyright 2021 RackTop Systems, Inc.
#
# This file defines the current capabilities of GRUB over and above that
# supported by the standard distribution
@@ -31,7 +32,7 @@
# GRUB necessitating that the boot blocks be reinstalled for that fix or
# enhancement to take effect.
#
-VERSION=28
+VERSION=29
dboot
xVM
zfs
diff --git a/usr/src/grub/grub-0.97/stage2/builtins.c b/usr/src/grub/grub-0.97/stage2/builtins.c
index 1c5d15ef2b..dfa2cb058e 100644
--- a/usr/src/grub/grub-0.97/stage2/builtins.c
+++ b/usr/src/grub/grub-0.97/stage2/builtins.c
@@ -2,6 +2,7 @@
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
+ * Copyright 2021 RackTop Systems, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -121,6 +122,8 @@ init_config (void)
current_bootpath[0] = '\0';
current_bootfs_obj = 0;
current_devid[0] = '\0';
+ current_bootguid = 0;
+ current_bootvdev = 0;
is_zfs_mount = 0;
}
diff --git a/usr/src/grub/grub-0.97/stage2/disk_io.c b/usr/src/grub/grub-0.97/stage2/disk_io.c
index 1b07c23f7c..0b5bbf5f0e 100644
--- a/usr/src/grub/grub-0.97/stage2/disk_io.c
+++ b/usr/src/grub/grub-0.97/stage2/disk_io.c
@@ -2,6 +2,7 @@
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
+ * Copyright 2021 RackTop Systems, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -130,6 +131,8 @@ char current_bootfs[MAXNAMELEN];
uint64_t current_bootfs_obj;
char current_bootpath[MAXPATHLEN];
char current_devid[MAXPATHLEN];
+uint64_t current_bootguid;
+uint64_t current_bootvdev;
int is_zfs_mount;
unsigned long best_drive;
unsigned long best_part;
diff --git a/usr/src/grub/grub-0.97/stage2/expand.c b/usr/src/grub/grub-0.97/stage2/expand.c
index ead71c6e6b..912ef78a16 100644
--- a/usr/src/grub/grub-0.97/stage2/expand.c
+++ b/usr/src/grub/grub-0.97/stage2/expand.c
@@ -2,6 +2,7 @@
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
* Copyright (c) 2013 Joyent, Inc. All rights reserved.
+ * Copyright 2021 RackTop Systems, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -388,6 +389,15 @@ expand_string(const char *s, char *d, unsigned int len)
if (current_devid[0] != '\0')
vlen += 13 + strlen(current_devid);
+ if (current_bootguid != 0) {
+ vlen += grub_sprintf(NULL,
+ ",zfs-bootpool=\"%llu\"", current_bootguid);
+ }
+ if (current_bootvdev != 0) {
+ vlen += grub_sprintf(NULL,
+ ",zfs-bootvdev=\"%llu\"", current_bootvdev);
+ }
+
if (q + vlen >= d + len)
return (ERR_WONT_FIT);
@@ -406,6 +416,14 @@ expand_string(const char *s, char *d, unsigned int len)
q += grub_sprintf(q, ",diskdevid=\"%s\"",
current_devid);
}
+ if (current_bootguid != 0) {
+ q += grub_sprintf(q, ",zfs-bootpool=\"%llu\"",
+ current_bootguid);
+ }
+ if (current_bootvdev != 0) {
+ q += grub_sprintf(q, ",zfs-bootvdev=\"%llu\"",
+ current_bootvdev);
+ }
p += 11; /* $ZFS-BOOTFS */
continue;
diff --git a/usr/src/grub/grub-0.97/stage2/fsys_zfs.c b/usr/src/grub/grub-0.97/stage2/fsys_zfs.c
index ead5947ab5..ef51e0b4bd 100644
--- a/usr/src/grub/grub-0.97/stage2/fsys_zfs.c
+++ b/usr/src/grub/grub-0.97/stage2/fsys_zfs.c
@@ -1,6 +1,7 @@
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
+ * Copyright 2021 RackTop Systems, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1525,13 +1526,13 @@ vdev_get_bootpath(char *nv, uint64_t inguid, char *devid, char *bootpath,
* ERR_* - failure
*/
static int
-check_pool_label(uint64_t sector, char *stack, char *outdevid,
- char *outpath, uint64_t *outguid, uint64_t *outashift, uint64_t *outversion)
+check_pool_label(uint64_t sector, char *stack, char *outdevid, char *outpath,
+ uint64_t *outguid, uint64_t *outdiskguid, uint64_t *outashift,
+ uint64_t *outversion)
{
vdev_phys_t *vdev;
uint64_t pool_state, txg = 0;
char *nvlist, *nv, *features;
- uint64_t diskguid;
sector += (VDEV_SKIP_SIZE >> SPA_MINBLOCKSHIFT);
@@ -1572,13 +1573,13 @@ check_pool_label(uint64_t sector, char *stack, char *outdevid,
if (nvlist_lookup_value(nvlist, ZPOOL_CONFIG_VDEV_TREE, &nv,
DATA_TYPE_NVLIST, NULL))
return (ERR_FSYS_CORRUPT);
- if (nvlist_lookup_value(nvlist, ZPOOL_CONFIG_GUID, &diskguid,
+ if (nvlist_lookup_value(nvlist, ZPOOL_CONFIG_GUID, outdiskguid,
DATA_TYPE_UINT64, NULL))
return (ERR_FSYS_CORRUPT);
if (nvlist_lookup_value(nv, ZPOOL_CONFIG_ASHIFT, outashift,
DATA_TYPE_UINT64, NULL) != 0)
return (ERR_FSYS_CORRUPT);
- if (vdev_get_bootpath(nv, diskguid, outdevid, outpath, 0))
+ if (vdev_get_bootpath(nv, *outdiskguid, outdevid, outpath, 0))
return (ERR_NO_BOOTPATH);
if (nvlist_lookup_value(nvlist, ZPOOL_CONFIG_POOL_GUID, outguid,
DATA_TYPE_UINT64, NULL))
@@ -1627,7 +1628,7 @@ zfs_mount(void)
objset_phys_t *osp;
char tmp_bootpath[MAXNAMELEN];
char tmp_devid[MAXNAMELEN];
- uint64_t tmp_guid, ashift, version;
+ uint64_t tmp_guid, tmp_vdev, ashift, version;
uint64_t adjpl = (uint64_t)part_length << SPA_MINBLOCKSHIFT;
int err = errnum; /* preserve previous errnum state */
@@ -1669,8 +1670,8 @@ zfs_mount(void)
0, VDEV_UBERBLOCK_RING, ub_array) == 0)
continue;
- if (check_pool_label(sector, stack, tmp_devid,
- tmp_bootpath, &tmp_guid, &ashift, &version))
+ if (check_pool_label(sector, stack, tmp_devid, tmp_bootpath,
+ &tmp_guid, &tmp_vdev, &ashift, &version))
continue;
if (pool_guid == 0)
@@ -1695,6 +1696,8 @@ zfs_mount(void)
grub_memmove(&current_uberblock, ubbest, sizeof (uberblock_t));
grub_memmove(current_bootpath, tmp_bootpath, MAXNAMELEN);
grub_memmove(current_devid, tmp_devid, grub_strlen(tmp_devid));
+ current_bootguid = tmp_guid;
+ current_bootvdev = tmp_vdev;
is_zfs_mount = 1;
return (1);
}
diff --git a/usr/src/grub/grub-0.97/stage2/shared.h b/usr/src/grub/grub-0.97/stage2/shared.h
index 050e6335fe..74e74255c1 100644
--- a/usr/src/grub/grub-0.97/stage2/shared.h
+++ b/usr/src/grub/grub-0.97/stage2/shared.h
@@ -2,6 +2,7 @@
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
+ * Copyright 2021 RackTop Systems, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -682,6 +683,8 @@ extern char current_bootfs[MAXNAMELEN];
extern unsigned long long current_bootfs_obj;
extern char current_bootpath[MAXPATHLEN];
extern char current_devid[MAXPATHLEN];
+extern unsigned long long current_bootguid;
+extern unsigned long long current_bootvdev;
extern int is_zfs_mount;
extern unsigned long best_drive;
extern unsigned long best_part;
diff --git a/usr/src/head/nss_dbdefs.h b/usr/src/head/nss_dbdefs.h
index 458715632c..ca5f9abf6e 100644
--- a/usr/src/head/nss_dbdefs.h
+++ b/usr/src/head/nss_dbdefs.h
@@ -21,6 +21,8 @@
/*
* Copyright 2014 Garrett D'Amore <garrett@damore.org>
*
+ * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
+ *
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
@@ -148,6 +150,7 @@ extern "C" {
#define NSS_LINELEN_GROUP ((NSS_BUFSIZ) * 8)
#define NSS_LINELEN_HOSTS ((NSS_BUFSIZ) * 8)
#define NSS_LINELEN_IPNODES ((NSS_BUFSIZ) * 8)
+#define NSS_LINELEN_NETGROUP ((NSS_BUFSIZ) * 32)
#define NSS_LINELEN_NETMASKS NSS_BUFSIZ
#define NSS_LINELEN_NETWORKS NSS_BUFSIZ
#define NSS_LINELEN_PASSWD NSS_BUFSIZ
@@ -358,6 +361,12 @@ struct nss_innetgr_args {
enum nss_netgr_status status;
};
+/* For NSS_DBOP_NETGROUP_BYNAME */
+struct nss_netgrent {
+ char *netgr_name;
+ char *netgr_members;
+};
+
/*
* nss_XbyY_buf_t -- structure containing the generic arguments passwd to
* getXXXbyYYY_r() and getXXXent_r() routines. The (void *) value points to
@@ -779,9 +788,11 @@ extern nss_status_t nss_packed_getkey(void *, size_t, char **, int *,
/*
* The "real" backend for netgroup (__multi_innetgr, setnetgrent)
+ * Note: _BYNAME is implemented only in "files" (for now).
*/
#define NSS_DBOP_NETGROUP_IN (NSS_DBOP_next_iter)
#define NSS_DBOP_NETGROUP_SET (NSS_DBOP_NETGROUP_IN + 1)
+#define NSS_DBOP_NETGROUP_BYNAME (NSS_DBOP_NETGROUP_SET + 1)
/*
* The backend for getpublickey and getsecretkey (getkeys)
diff --git a/usr/src/lib/nsswitch/files/Makefile.com b/usr/src/lib/nsswitch/files/Makefile.com
index e79567aaaf..5b57f6b6ed 100644
--- a/usr/src/lib/nsswitch/files/Makefile.com
+++ b/usr/src/lib/nsswitch/files/Makefile.com
@@ -22,6 +22,7 @@
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
+# Copyright 2012 Nexenta Systems, Inc. All rights reserved
LIBRARY = libnss_files.a
VERS = .1
@@ -33,6 +34,7 @@ OBJECTS = bootparams_getbyname.o \
gethostent.o \
gethostent6.o \
getnetent.o \
+ getnetgrent.o \
getprojent.o \
getprotoent.o \
getpwnam.o \
@@ -75,3 +77,5 @@ $(ROOT)/etc/lib/$(DYNLIB1) := COMPATLINKTARGET= ../../lib/$(DYNLIB1)
all: $(DYNLIB1)
+pics/getnetgrent.o := CERRWARN=
+pics/getnetgrent.o := SMATCH=
diff --git a/usr/src/lib/nsswitch/files/common/getnetgrent.c b/usr/src/lib/nsswitch/files/common/getnetgrent.c
new file mode 100644
index 0000000000..58e5eaae3e
--- /dev/null
+++ b/usr/src/lib/nsswitch/files/common/getnetgrent.c
@@ -0,0 +1,869 @@
+/*
+ * CDDL HEADER START
+ *
+ * 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]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
+ *
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * files/getnetgrent.c -- "files" backend for nsswitch "netgroup" database
+ *
+ * The API for netgroups differs sufficiently from that for the average
+ * getXXXbyYYY function that we use very few of the support routines in
+ * files_common.h.
+ *
+ * The implementation of setnetgrent()/getnetgrent() here follows the
+ * the 4.x code, inasmuch as the setnetgrent() routine does all the work
+ * of traversing the netgroup graph and building a (potentially large)
+ * list in memory, and getnetgrent() just steps down the list.
+ *
+ * An alternative, and probably better, implementation would lazy-eval
+ * the netgroup graph in response to getnetgrent() calls (though
+ * setnetgrent() should still check for the top-level netgroup name
+ * and return NSS_SUCCESS / NSS_NOTFOUND).
+ */
+
+#include "files_common.h"
+#include <ctype.h>
+#include <rpcsvc/ypclnt.h>
+#include <malloc.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/sysmacros.h>
+
+/*
+ * Tricky debug support
+ */
+
+#pragma weak __nss_files_netgr_debug
+#pragma weak __nss_files_netgr_error
+extern void __nss_files_netgr_debug(const char *, ...);
+extern void __nss_files_netgr_error(const char *, ...);
+
+/*
+ * Start of stuff borrowed from getgrent.c
+ */
+static uint_t
+hash_netgrname(nss_XbyY_args_t *argp, int keyhash, const char *line,
+ int linelen)
+{
+ const char *name;
+ uint_t namelen, i;
+ uint_t hash = 0;
+
+ if (keyhash) {
+ name = argp->key.name;
+ namelen = strlen(name);
+ } else {
+ name = line;
+ namelen = 0;
+ while (linelen-- && !isspace(*line)) {
+ line++;
+ namelen++;
+ }
+ }
+
+ for (i = 0; i < namelen; i++)
+ hash = hash * 15 + name[i];
+ return (hash);
+}
+
+static files_hash_func hash_netgr[1] = { hash_netgrname };
+
+static files_hash_t hashinfo = {
+ DEFAULTMUTEX,
+ sizeof (struct nss_netgrent),
+ NSS_LINELEN_NETGROUP,
+ 1,
+ hash_netgr
+};
+
+static int
+check_netgrname(nss_XbyY_args_t *argp, const char *line, int linelen)
+{
+ const char *linep, *limit;
+ const char *keyp = argp->key.name;
+
+ linep = line;
+ limit = line + linelen;
+
+ /* +/- entries valid for compat source only */
+ if (linelen == 0 || *line == '+' || *line == '-')
+ return (0);
+ while (*keyp && linep < limit && *keyp == *linep) {
+ keyp++;
+ linep++;
+ }
+ return (linep < limit && *keyp == '\0' && isspace(*linep));
+}
+
+static nss_status_t
+getbyname(files_backend_ptr_t be, void *a)
+{
+ return (_nss_files_XY_hash(be, a, 1, &hashinfo, 0, check_netgrname));
+}
+
+/*
+ * End of stuff borrowed from getgrent.c
+ *
+ * Now some "glue" functions based loosely on
+ * lib/libc/port/gen/getgrnam_r.c
+ */
+
+
+/*
+ * This is a special purpose str2ent (parse) function used only in
+ * the _nss_files_getbyname() below. A general-purpose version of
+ * this parser would copy the incoming line buffer to the passed
+ * temporary buffer, and fill in the passed struct nss_netgrent with
+ * pointers into that temporary buffer. Our caller only needs the
+ * list of members of this netgroup, and since that string already
+ * exists in ready-to-use form in the incoming line buffer, we just
+ * use that. Also special here is the fact that we allocate a copy
+ * of the member list, both because the caller wants it allocated,
+ * and because the buffer at *instr will change after we return.
+ * The caller passes null for a temporary buffer, which we ignore.
+ *
+ * See the test program: cmd/nsstest/netgr_get.c
+ * for a more generic version of this function.
+ */
+static int
+str2netgr(const char *instr, int lenstr, void *ent, char *buffer, int buflen)
+{
+ const char sep[] = " \t\n";
+ struct nss_netgrent *netgr = ent;
+ const char *p;
+
+ /* skip leading space */
+ p = instr;
+ while (isspace(*p))
+ p++;
+
+ /* should be at the key */
+ if (*p == '\0')
+ return (NSS_STR_PARSE_PARSE);
+ /* Full parser would set netgr_name = p here. */
+
+ /* skip the key ... */
+ p = strpbrk(p, sep);
+ if (p == NULL)
+ return (NSS_STR_PARSE_PARSE);
+ /* Full parser would store a null at *p here. */
+
+ /* skip separators */
+ while (isspace(*p))
+ p++;
+
+ /*
+ * Should be at the members list, which is the
+ * rest of the input line.
+ */
+ if (*p == '\0')
+ return (NSS_STR_PARSE_PARSE);
+
+ /*
+ * Caller wants this allocated. Do it now,
+ * before the inbuf gets re-used.
+ */
+ netgr->netgr_members = strdup(p);
+ if (netgr->netgr_members == NULL)
+ return (NSS_STR_PARSE_PARSE);
+
+ return (NSS_STR_PARSE_SUCCESS);
+}
+
+/*
+ * This is a compatibility "shim" used by top_down() to get
+ * the list of members for some netgroup. On success, the
+ * list of members is returned in allocated memory via valp.
+ */
+static nss_status_t
+netgr_get_members(struct files_backend *be,
+ const char *name, char **valp)
+{
+ struct nss_netgrent netgr;
+ nss_XbyY_args_t args;
+ nss_status_t result;
+
+ if (name == (const char *)NULL)
+ return (NSS_ERROR);
+
+ (void) memset(&netgr, '\0', sizeof (netgr));
+ (void) memset(&args, '\0', sizeof (args));
+ args.buf.result = &netgr;
+ args.str2ent = str2netgr;
+ args.key.name = name;
+ result = getbyname(be, &args);
+
+ if (result == NSS_SUCCESS) {
+ /* Note: allocated memory. */
+ *valp = netgr.netgr_members;
+ if (*valp == NULL)
+ result = NSS_UNAVAIL;
+ }
+
+ return (result);
+}
+
+
+/*
+ * End "glue" functions
+ *
+ * The rest of this is based on:
+ * lib/nsswitch/nis/common/getnetgrent.c
+ */
+
+
+/*
+ * The nss_backend_t for a getnetgrent() sequence; we actually give the
+ * netgroup frontend a pointer to one of these structures in response to
+ * a (successful) setnetgrent() call on the files_backend backend
+ * described further down in this file.
+ */
+
+struct files_getnetgr_be;
+typedef nss_status_t (*files_getnetgr_op_t)(
+ struct files_getnetgr_be *, void *);
+
+struct files_getnetgr_be {
+ files_getnetgr_op_t *ops;
+ nss_dbop_t n_ops;
+ /*
+ * State for set/get/endnetgrent()
+ */
+ char *netgroup;
+ struct grouplist *all_members;
+ struct grouplist *next_member;
+};
+
+struct grouplist { /* One element of the list generated by a setnetgrent() */
+ char *triple[NSS_NETGR_N];
+ struct grouplist *gl_nxt;
+};
+
+static nss_status_t
+getnetgr_set(struct files_getnetgr_be *be, void *a)
+{
+ const char *netgroup = (const char *) a;
+
+ if (be->netgroup != NULL &&
+ strcmp(be->netgroup, netgroup) == 0) {
+ /* We already have the member-list; regurgitate it */
+ be->next_member = be->all_members;
+ return (NSS_SUCCESS);
+ }
+ return (NSS_NOTFOUND);
+}
+
+static nss_status_t
+getnetgr_get(struct files_getnetgr_be *be, void *a)
+{
+ struct nss_getnetgrent_args *args = (struct nss_getnetgrent_args *)a;
+ struct grouplist *mem;
+
+ if ((mem = be->next_member) == 0) {
+ args->status = NSS_NETGR_NO;
+ } else {
+ char *buffer = args->buffer;
+ int buflen = args->buflen;
+ enum nss_netgr_argn i;
+
+ args->status = NSS_NETGR_FOUND;
+
+ for (i = 0; i < NSS_NETGR_N; i++) {
+ const char *str;
+ ssize_t len;
+
+ if ((str = mem->triple[i]) == 0) {
+ args->retp[i] = NULL;
+ } else if ((len = strlen(str) + 1) <= buflen) {
+ args->retp[i] = buffer;
+ (void) memcpy(buffer, str, len);
+ buffer += len;
+ buflen -= len;
+ } else {
+ args->status = NSS_NETGR_NOMEM;
+ break;
+ }
+ }
+ be->next_member = mem->gl_nxt;
+ }
+ return (NSS_SUCCESS); /* Yup, even for end-of-list, i.e. */
+ /* do NOT advance to next backend. */
+}
+
+static nss_status_t
+getnetgr_end(struct files_getnetgr_be *be, void *dummy)
+{
+ struct grouplist *gl;
+ struct grouplist *next;
+
+ for (gl = be->all_members; gl != NULL; gl = next) {
+ enum nss_netgr_argn i;
+
+ next = gl->gl_nxt;
+ for (i = NSS_NETGR_MACHINE; i < NSS_NETGR_N; i++) {
+ free(gl->triple[i]);
+ }
+ free(gl);
+ }
+ be->all_members = NULL;
+ be->next_member = NULL;
+ free(be->netgroup);
+ be->netgroup = NULL;
+ return (NSS_SUCCESS);
+}
+
+static nss_status_t
+getnetgr_destr(struct files_getnetgr_be *be, void *dummy)
+{
+ if (be != NULL) {
+ (void) getnetgr_end(be, NULL);
+ free(be);
+ }
+ return (NSS_SUCCESS);
+}
+
+static files_getnetgr_op_t getnetgr_ops[] = {
+ getnetgr_destr,
+ getnetgr_end,
+ getnetgr_set,
+ getnetgr_get, /* getnetgrent_r() */
+};
+
+
+/*
+ * The nss_backend_t for innetgr() and setnetgrent().
+ * Also getbyname(), but that's only for testing.
+ */
+
+
+
+/*
+ * Code to do top-down search in the graph defined by the 'netgroup' YP map
+ */
+
+/*
+ * ===> This code is now used for setnetgrent(), not just innetgr().
+ *
+ * If the easy way doesn't pan out, recursively search the 'netgroup' map.
+ * In order to do this, we:
+ *
+ * - remember all the netgroup names we've seen during this search,
+ * whether or not we've expanded them yet (we want fast insertion
+ * with duplicate-detection, so use yet another chained hash table),
+ *
+ * - keep a list of all the netgroups we haven't expanded yet (we just
+ * want fast insertion and pop-first, so a linked list will do fine).
+ * If we insert at the head, we get a depth-first search; insertion
+ * at the tail gives breadth-first (?), which seems preferable (?).
+ *
+ * A netgrnam struct contains pointers for both the hash-table and the list.
+ * It also contains the netgroup name; note that we embed the name at the
+ * end of the structure rather than holding a pointer to yet another
+ * malloc()ed region.
+ *
+ * A netgrtab structure contains the hash-chain heads and the head/tail
+ * pointers for the expansion list.
+ */
+
+struct netgrnam {
+ struct netgrnam *hash_chain;
+ struct netgrnam *expand_next;
+ char name[1]; /* Really [strlen(name) + 1] */
+};
+
+#define HASHMOD 113
+
+struct netgrtab {
+ struct netgrnam *expand_first;
+ struct netgrnam **expand_lastp;
+ struct netgrnam *hash_heads[HASHMOD];
+};
+
+static void
+ngt_init(struct netgrtab *ngt)
+{
+ (void) memset((void *)ngt, '\0', sizeof (*ngt));
+ ngt->expand_lastp = &ngt->expand_first;
+}
+
+/* === ? Change ngt_init() and ngt_destroy() to malloc/free struct netgrtab */
+
+static void
+/* ==> ? Should return 'failed' (out-of-memory) status ? */
+ngt_insert(struct netgrtab *ngt, const char *name, size_t namelen)
+{
+ unsigned hashval;
+ size_t i;
+ struct netgrnam *cur;
+ struct netgrnam **head;
+
+ if (__nss_files_netgr_debug != NULL) {
+ __nss_files_netgr_debug(
+ "ngt_insert: ngt=%p names=%s", ngt, name);
+ }
+
+ for (hashval = 0, i = 0; i < namelen; i++) {
+ hashval = (hashval << 2) + hashval +
+ ((const unsigned char *)name)[i];
+ }
+ head = &ngt->hash_heads[hashval % HASHMOD];
+ for (cur = *head; cur != 0; cur = cur->hash_chain) {
+ if (strncmp(cur->name, name, namelen) == 0 &&
+ cur->name[namelen] == 0) {
+ return; /* Already in table, do nothing */
+ }
+ }
+ /* Create new netgrnam struct */
+ cur = malloc(offsetof(struct netgrnam, name) + namelen + 1);
+ if (cur == NULL) {
+ return; /* Out of memory, too bad */
+ }
+ (void) memcpy(cur->name, name, namelen);
+ cur->name[namelen] = '\0';
+
+ /* Insert in hash table */
+ cur->hash_chain = *head;
+ *head = cur;
+
+ /* Insert in expansion list (insert at end for breadth-first search */
+ cur->expand_next = NULL;
+ *ngt->expand_lastp = cur;
+ ngt->expand_lastp = &cur->expand_next;
+}
+
+static const char *
+ngt_next(struct netgrtab *ngt)
+{
+ struct netgrnam *first;
+
+ if ((first = ngt->expand_first) == NULL) {
+ return (NULL);
+ }
+ if ((ngt->expand_first = first->expand_next) == NULL) {
+ ngt->expand_lastp = &ngt->expand_first;
+ }
+ return (first->name);
+}
+
+static void
+ngt_destroy(struct netgrtab *ngt)
+{
+ struct netgrnam *cur;
+ struct netgrnam *next;
+ int i;
+
+ for (i = 0; i < HASHMOD; i++) {
+ for (cur = ngt->hash_heads[i]; cur != NULL; ) {
+ next = cur->hash_chain;
+ free(cur);
+ cur = next;
+ }
+ }
+ /* Don't bother zeroing pointers; must do init if we want to reuse */
+}
+
+typedef const char *ccp;
+
+static nss_status_t
+top_down(struct files_backend *be, const char **groups, int ngroups,
+ int (*func)(ccp triple[3], void *iter_args, nss_status_t *return_val),
+ void *iter_args)
+{
+ struct netgrtab *ngt;
+ /* netgrtab goes on the heap, not the stack, because it's large and */
+ /* stacks may not be all that big in multi-threaded programs. */
+
+ const char *group;
+ int nfound;
+ int done;
+ nss_status_t result;
+
+ if ((ngt = malloc(sizeof (*ngt))) == NULL) {
+ return (NSS_UNAVAIL);
+ }
+ ngt_init(ngt);
+
+ while (ngroups > 0) {
+ ngt_insert(ngt, *groups, strlen(*groups));
+ groups++;
+ ngroups--;
+ }
+
+ done = 0; /* Set to 1 to indicate that we cut the iteration */
+ /* short (and 'result' holds the return value) */
+ nfound = 0; /* Number of successful netgroup getbyname calls */
+
+ while (!done && (group = ngt_next(ngt)) != NULL) {
+ char *val = NULL;
+ char *p;
+
+ result = netgr_get_members(be, group, &val);
+ if (result != NSS_SUCCESS) {
+ if (result == NSS_NOTFOUND) {
+ if (__nss_files_netgr_error != NULL)
+ __nss_files_netgr_error(
+ "files netgroup lookup: %s doesn't exist",
+ group);
+ } else {
+ if (__nss_files_netgr_error != NULL)
+ __nss_files_netgr_error(
+ "files netgroup lookup: getbyname returned [%s]",
+ strerror(errno));
+ done = 1; /* Give up, return result */
+ }
+ /* Don't need to clean up anything */
+ continue;
+ }
+
+ if (__nss_files_netgr_debug != NULL) {
+ __nss_files_netgr_debug(
+ "ngt_top: ngt=%p grp=%s members=\"%s\"",
+ ngt, group, val);
+ }
+
+ nfound++;
+
+ if ((p = strpbrk(val, "#\n")) != NULL) {
+ *p = '\0';
+ }
+ p = val;
+
+ /* Parse val into triples and recursive netgroup references */
+ for (;;) {
+ ccp triple[NSS_NETGR_N];
+ int syntax_err;
+ enum nss_netgr_argn i;
+
+ while (isspace(*p))
+ p++;
+ if (*p == '\0') {
+ /* Finished processing this particular val */
+ break;
+ }
+ if (*p != '(') {
+ /* Doesn't look like the start of a triple, */
+ /* so assume it's a recursive netgroup. */
+ char *start = p;
+ p = strpbrk(start, " \t");
+ if (p == 0) {
+ /* Point p at the final '\0' */
+ p = start + strlen(start);
+ }
+ ngt_insert(ngt, start, (size_t)(p - start));
+ continue;
+ }
+
+ /* Main case: a (machine, user, domain) triple */
+ p++;
+ syntax_err = 0;
+ for (i = NSS_NETGR_MACHINE; i < NSS_NETGR_N; i++) {
+ char *start;
+ char *limit;
+ const char *terminators = ",) \t";
+
+ if (i == NSS_NETGR_DOMAIN) {
+ /* Don't allow comma */
+ terminators++;
+ }
+ while (isspace(*p))
+ p++;
+ start = p;
+ limit = strpbrk(start, terminators);
+ if (limit == 0) {
+ syntax_err++;
+ break;
+ }
+ p = limit;
+ while (isspace(*p))
+ p++;
+ if (*p == terminators[0]) {
+ /*
+ * Successfully parsed this name and
+ * the separator after it (comma or
+ * right paren); leave p ready for
+ * next parse.
+ */
+ p++;
+ if (start == limit) {
+ /* Wildcard */
+ triple[i] = 0;
+ } else {
+ *limit = '\0';
+ triple[i] = start;
+ }
+ } else {
+ syntax_err++;
+ break;
+ }
+ }
+
+ if (syntax_err) {
+/*
+ * ===> log it;
+ * ===> try skipping past next ')'; failing that, abandon the line;
+ */
+ break; /* Abandon this line */
+ } else if ((*func)(triple, iter_args, &result) == 0) {
+ /* Return result, good or bad */
+ done = 1;
+ break;
+ }
+ }
+ /* End of inner loop over val[] */
+ free(val);
+ val = NULL;
+ }
+ /* End of outer loop (!done && ngt_next(ngt) != 0) */
+
+ ngt_destroy(ngt);
+ free(ngt);
+
+ if (done) {
+ return (result);
+ } else if (nfound > 0) {
+ /* ==== ? Should only do this if all the top-level groups */
+ /* exist in YP? */
+ return (NSS_SUCCESS);
+ } else {
+ return (NSS_NOTFOUND);
+ }
+}
+
+
+/*
+ * Code for setnetgrent()
+ */
+
+/*
+ * Iterator function for setnetgrent(): copy triple, add to be->all_members
+ */
+static int
+save_triple(ccp trippp[NSS_NETGR_N], void *headp_arg,
+ nss_status_t *return_val)
+{
+ struct grouplist **headp = headp_arg;
+ struct grouplist *gl;
+ enum nss_netgr_argn i;
+
+ if (__nss_files_netgr_debug != NULL) {
+ __nss_files_netgr_debug(
+ "save_tripple: h=%s u=%s d=%s",
+ trippp[0] ? trippp[0] : "*",
+ trippp[1] ? trippp[1] : "*",
+ trippp[2] ? trippp[2] : "*");
+ }
+
+ if ((gl = malloc(sizeof (*gl))) == NULL) {
+ /* Out of memory */
+ *return_val = NSS_UNAVAIL;
+ return (0);
+ }
+ for (i = NSS_NETGR_MACHINE; i < NSS_NETGR_N; i++) {
+ if (trippp[i] == NULL) {
+ /* Wildcard */
+ gl->triple[i] = NULL;
+ } else if ((gl->triple[i] = strdup(trippp[i])) == NULL) {
+ /* Out of memory. Free any we've allocated */
+ enum nss_netgr_argn j;
+
+ for (j = NSS_NETGR_MACHINE; j < i; j++) {
+ free(gl->triple[j]);
+ }
+ free(gl);
+ *return_val = NSS_UNAVAIL;
+ return (0);
+ }
+ }
+ gl->gl_nxt = *headp;
+ *headp = gl;
+ return (1); /* Tell top_down() to keep iterating */
+}
+
+static nss_status_t
+netgr_set(struct files_backend *be, void *a)
+{
+ struct nss_setnetgrent_args *args = (struct nss_setnetgrent_args *)a;
+ struct files_getnetgr_be *get_be;
+ nss_status_t res;
+
+ get_be = malloc(sizeof (*get_be));
+ if (get_be == NULL) {
+ return (NSS_UNAVAIL);
+ }
+
+ get_be->all_members = NULL;
+ res = top_down(be, &args->netgroup, 1, save_triple,
+ &get_be->all_members);
+
+ if (res == NSS_SUCCESS) {
+ get_be->ops = getnetgr_ops;
+ get_be->n_ops = ARRAY_SIZE(getnetgr_ops);
+ get_be->netgroup = strdup(args->netgroup);
+ if (get_be->netgroup == NULL) {
+ /* Out of memory. */
+ args->iterator = NULL;
+ free(get_be);
+ return (NSS_UNAVAIL);
+ }
+ get_be->next_member = get_be->all_members;
+
+ args->iterator = (nss_backend_t *)get_be;
+ } else {
+ args->iterator = NULL;
+ free(get_be);
+ }
+ return (res);
+}
+
+
+/*
+ * Code for innetgr()
+ */
+
+/*
+ * Iterator function for innetgr(): Check whether triple matches args
+ */
+static int
+match_triple(ccp triple[NSS_NETGR_N], void *ia_arg, nss_status_t *return_val)
+{
+ struct nss_innetgr_args *ia = ia_arg;
+ enum nss_netgr_argn i;
+
+ if (__nss_files_netgr_debug != NULL) {
+ __nss_files_netgr_debug(
+ "match_triple: h=%s u=%s d=%s",
+ triple[0] ? triple[0] : "*",
+ triple[1] ? triple[1] : "*",
+ triple[2] ? triple[2] : "*");
+ }
+
+ for (i = NSS_NETGR_MACHINE; i < NSS_NETGR_N; i++) {
+ int (*cmpf)(const char *, const char *);
+ char **argv;
+ uint_t n;
+ const char *name = triple[i];
+ int argc = ia->arg[i].argc;
+
+ if (argc == 0 || name == NULL) {
+ /* Wildcarded on one side or t'other */
+ continue;
+ }
+ argv = ia->arg[i].argv;
+ cmpf = (i == NSS_NETGR_MACHINE) ? strcasecmp : strcmp;
+ for (n = 0; n < argc; n++) {
+ if ((*cmpf)(argv[n], name) == 0) {
+ break;
+ }
+ }
+ if (n >= argc) {
+ /* Match failed, tell top_down() to keep looking */
+ return (1);
+ }
+ }
+ /* Matched on all three, so quit looking and declare victory */
+
+ if (__nss_files_netgr_debug != NULL)
+ __nss_files_netgr_debug("match_triple: found");
+
+ ia->status = NSS_NETGR_FOUND;
+ *return_val = NSS_SUCCESS;
+ return (0);
+}
+
+/*
+ * Used to have easy_way() and it's support functions here.
+ */
+
+static nss_status_t
+netgr_in(struct files_backend *be, void *a)
+{
+ struct nss_innetgr_args *ia = (struct nss_innetgr_args *)a;
+ nss_status_t res;
+
+ ia->status = NSS_NETGR_NO;
+
+ /*
+ * Used to have "easy_way" calls here for the cases
+ * where we have just a user, or just a machine.
+ *
+ * That was important for NIS, where getting the list of
+ * members for some netgroup was a yp_match call that may
+ * need to go over-the-wire. Here in the "files" backend,
+ * getting the members of a group (getbyname) is a strictly
+ * local operation, and is cached (see hashinfo above) so
+ * it can normally complete with just memory operations.
+ *
+ * With a low-cost getbyname operation, the simple
+ * top_down algorithm has acceptable performance.
+ */
+
+ /* Nope, try the slow way */
+ ia->status = NSS_NETGR_NO;
+ res = top_down(be, (const char **)ia->groups.argv, ia->groups.argc,
+ match_triple, ia);
+ return (res);
+}
+
+
+/*
+ * (Almost) boilerplate for a switch backend
+ */
+
+static nss_status_t
+netgr_destr(struct files_backend *be, void *dummy)
+{
+ free(be);
+ return (NSS_SUCCESS);
+}
+
+static files_backend_op_t netgroup_ops[] = {
+ netgr_destr,
+ NULL, /* No endent, because no setent/getent */
+ NULL, /* No setent; setnetgrent() is really a getXbyY() */
+ NULL, /* No getent in the normal sense */
+
+ netgr_in, /* innetgr(), via NSS_DBOP_NETGROUP_IN */
+ netgr_set, /* setnetgrent(), via NSS_DBOP_NETGROUP_SET */
+ getbyname, /* For testing, via NSS_DBOP_NETGROUP_BYNAME */
+};
+
+/*
+ * This is the one-and-only external entry point in this file.
+ * It's called by the NSS framework when loading this backend.
+ */
+nss_backend_t *
+_nss_files_netgroup_constr(const char *dummy1, const char *dummy2,
+ const char *dummy3)
+{
+ nss_backend_t *be;
+
+ be = _nss_files_constr(netgroup_ops,
+ ARRAY_SIZE(netgroup_ops),
+ "/etc/netgroup",
+ NSS_LINELEN_NETGROUP,
+ &hashinfo);
+
+ return (be);
+}
diff --git a/usr/src/lib/nsswitch/files/common/mapfile-vers b/usr/src/lib/nsswitch/files/common/mapfile-vers
index 722c5c27f8..3e40dade95 100644
--- a/usr/src/lib/nsswitch/files/common/mapfile-vers
+++ b/usr/src/lib/nsswitch/files/common/mapfile-vers
@@ -1,5 +1,6 @@
#
# Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2012 Nexenta Systems, Inc. All rights reserved.
#
# CDDL HEADER START
#
@@ -46,11 +47,12 @@ SYMBOL_VERSION SUNWprivate_1.1 {
_nss_files_bootparams_constr;
_nss_files_auth_attr_constr;
_nss_files_audit_user_constr;
- _nss_files_ethers_constr;
+ _nss_files_ethers_constr;
_nss_files_exec_attr_constr;
_nss_files_group_constr;
_nss_files_hosts_constr;
_nss_files_ipnodes_constr;
+ _nss_files_netgroup_constr;
_nss_files_netmasks_constr;
_nss_files_networks_constr;
_nss_files_passwd_constr;
diff --git a/usr/src/man/man1/kinit.1 b/usr/src/man/man1/kinit.1
index 59004dcd9c..e3fbbc1eb6 100644
--- a/usr/src/man/man1/kinit.1
+++ b/usr/src/man/man1/kinit.1
@@ -4,11 +4,10 @@
.\" 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 KINIT 1 "Nov 12, 2008"
+.TH KINIT 1 "June 20, 2021"
.SH NAME
kinit \- obtain and cache Kerberos ticket-granting ticket
.SH SYNOPSIS
-.LP
.nf
\fB/usr/bin/kinit\fR [\fB-ARvV\fR] [\fB-p\fR | \fB-P\fR] [\fB-f\fR | \fB-F\fR] [\fB-a\fR] [\fB-c\fR \fIcache_name\fR]
[\fB-k\fR [\fB-t\fR \fIkeytab_file\fR]] [\fB-l\fR \fIlifetime\fR]
@@ -17,7 +16,6 @@ kinit \- obtain and cache Kerberos ticket-granting ticket
.fi
.SH DESCRIPTION
-.LP
The \fBkinit\fR command is used to obtain and cache an initial ticket-granting
ticket (credential) for \fIprincipal\fR. This ticket is used for authentication
by the Kerberos system. Only users with Kerberos principals can use the
@@ -46,7 +44,6 @@ Kerberos configuration file for \fIlifetime\fR and \fIrenewable_life\fR.
The \fBkdestroy\fR(1) command can be used to destroy any active tickets before
you end your login session.
.SH OPTIONS
-.LP
The following options are supported:
.sp
.ne 2
@@ -306,7 +303,7 @@ Valid URI types are \fBFILE\fR, \fBDIR\fR, \fBPKCS11\fR, \fBPKCS12\fR, and
.RS 27n
Specifies where to find trusted X509 anchor information.
.sp
-Valid URI types are \fBFILE\fR and \fBDIR\fR. See the\fBPKINIT URI Types\fR
+Valid URI types are \fBFILE\fR and \fBDIR\fR. See the \fBPKINIT URI Types\fR
section for details.
.RE
@@ -338,7 +335,7 @@ This option has context-specific behavior.
\fIfile-name\fR specifies the name of a PEM-format file containing the user's
certificate. If \fIkey-file-name\fR is not specified, the user's private key is
expected to be in \fIfile-name\fR as well. Otherwise, \fIkey-file-name\fR is
-the name of the file containing the private key.
+the name of the file containing the private key.
.RE
.sp
@@ -431,7 +428,6 @@ been set to \fBFILE:/tmp/my_proxy.pem\fR.
.RE
.SS "Time Formats"
-.LP
The following absolute time formats can be used for the \fB-s\fR
\fIstart_time\fR option. The examples are based on the date and time of July 2,
1999, 1:35:30 p.m.
@@ -524,7 +520,6 @@ Variable Description
.TE
.SH ENVIRONMENT VARIABLES
-.LP
\fBkinit\fR uses the following environment variable:
.sp
.ne 2
@@ -565,7 +560,6 @@ Default location for the local host's configuration file. See
.RE
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -583,11 +577,9 @@ Interface Stability See below.
.LP
The command arguments are Evolving. The command output is Unstable.
.SH SEE ALSO
-.LP
\fBkdestroy\fR(1), \fBklist\fR(1), \fBkadmin\fR(1M), \fBktkt_warnd\fR(1M),
\fBlibpkcs11\fR(3LIB), \fBkdc.conf\fR(4), \fBkrb5.conf\fR(4),
\fBattributes\fR(5), \fBkerberos\fR(5), \fBkrb5envvar\fR(5), \fBpam_krb5\fR(5)
.SH NOTES
-.LP
On success, \fBkinit\fR notifies \fBktkt_warnd\fR(1M) to alert the user when
the initial credentials (ticket-granting ticket) are about to expire.
diff --git a/usr/src/man/man1/krb5-config.1 b/usr/src/man/man1/krb5-config.1
index cdd2889c9d..ddb90409b0 100644
--- a/usr/src/man/man1/krb5-config.1
+++ b/usr/src/man/man1/krb5-config.1
@@ -3,11 +3,10 @@
.\" 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 KRB5-CONFIG 1 "Aug 24, 2009"
+.TH KRB5-CONFIG 1 "June 20, 2021"
.SH NAME
krb5-config \- link against the installed Kerberos libraries
.SH SYNOPSIS
-.LP
.nf
\fBkrb5-config\fR
[\fB--all\fR | \fB--cflags\fR | \fB--exec-prefix\fR | \fB--help\fR | \fB--libs\fR \fIlibrary\fR |
@@ -15,13 +14,9 @@ krb5-config \- link against the installed Kerberos libraries
.fi
.SH DESCRIPTION
-.sp
-.LP
\fBkrb5-config\fR identifies and displays the special flags that are needed to
compile and link programs against the installed Kerberos libraries.
.SH OPTIONS
-.sp
-.LP
The following options are supported:
.sp
.ne 2
@@ -109,7 +104,6 @@ Displays the version of the installed Kerberos implementation.
.RE
.SH EXAMPLES
-.LP
\fBExample 1 \fRUsing the \fB--cflags\fR Option
.sp
.LP
@@ -126,7 +120,7 @@ The following example displays the C compiler flags needed to use
.sp
.LP
-\fBExample 2 \fRUsing the\fB--libs\fR Option
+\fBExample 2 \fRUsing the \fB--libs\fR Option
.sp
.LP
The following example shows the C compiler options needed to link against
@@ -142,8 +136,6 @@ The following example shows the C compiler options needed to link against
.sp
.SH EXIT STATUS
-.sp
-.LP
The following exit values are returned:
.sp
.ne 2
@@ -164,8 +156,6 @@ An error occurred.
.RE
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -180,6 +170,4 @@ Interface Stability Volatile
.TE
.SH SEE ALSO
-.sp
-.LP
\fBlibgss\fR(3LIB), \fBlibkrb5\fR(3LIB), \fBattributes\fR(5)
diff --git a/usr/src/man/man1/login.1 b/usr/src/man/man1/login.1
index 601a041839..f841672f53 100644
--- a/usr/src/man/man1/login.1
+++ b/usr/src/man/man1/login.1
@@ -4,11 +4,10 @@
.\" 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 LOGIN 1 "Feb 25, 2017"
+.TH LOGIN 1 "June 20, 2021"
.SH NAME
login \- sign on to the system
.SH SYNOPSIS
-.LP
.nf
\fBlogin\fR [\fB-p\fR] [\fB-d\fR \fIdevice\fR] [\fB-R\fR \fIrepository\fR] [\fB-s\fR \fIservice\fR]
[\fB-t\fR \fIterminal\fR] [\fB-u\fR \fIidentity\fR] [\fB-U\fR \fIruser\fR]
@@ -17,7 +16,6 @@ login \- sign on to the system
.fi
.SH DESCRIPTION
-.LP
The \fBlogin\fR command is used at the beginning of each terminal session to
identify oneself to the system. \fBlogin\fR is invoked by the system when a
connection is first established, after the previous user has terminated the
@@ -168,7 +166,6 @@ To enable remote logins by root, edit the \fB/etc/default/login\fR file by
inserting a \fB#\fR (pound sign) before the \fBCONSOLE=/dev/console\fR entry.
See FILES.
.SH SECURITY
-.LP
For accounts in name services which support automatic account locking, the
account can be configured to be automatically locked (see \fBuser_attr\fR(4)
and \fBpolicy.conf\fR(4)) if successive failed login attempts equals or exceeds
@@ -221,7 +218,6 @@ can be prompted for multiple passwords.
When \fBlogin\fR is invoked through \fBrlogind\fR or \fBtelnetd\fR, the service
name used by \fBPAM\fR is \fBrlogin\fR or \fBtelnet\fR, respectively.
.SH OPTIONS
-.LP
The following options are supported:
.sp
.ne 2
@@ -317,7 +313,6 @@ line parameter. Normally (non-Kerberos authenticated \fBrlogin\fR), the
.RE
.SH EXIT STATUS
-.LP
The following exit values are returned:
.sp
.ne 2
@@ -638,7 +633,7 @@ Sets the initial shell file creation mode mask. See \fBumask\fR(1).
.RS 24n
Determines whether the \fBsyslog\fR(3C) \fBLOG_AUTH\fR facility should be used
to log all root logins at level \fBLOG_NOTICE\fR and multiple failed login
-attempts at\fBLOG_CRIT\fR.
+attempts at \fBLOG_CRIT\fR.
.RE
.sp
@@ -698,7 +693,6 @@ before a failed login message is logged, using the \fBsyslog\fR(3C)
.RE
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -713,7 +707,6 @@ Interface Stability Committed
.TE
.SH SEE ALSO
-.LP
\fBcsh\fR(1), \fBexit\fR(1), \fBksh\fR(1), \fBksh93\fR(1), \fBmail\fR(1),
\fBmailx\fR(1), \fBnewgrp\fR(1), \fBpasswd\fR(1), \fBrlogin\fR(1),
\fBrsh\fR(1), \fBsh\fR(1), \fBshell_builtins\fR(1), \fBtelnet\fR(1),
@@ -782,7 +775,6 @@ The machine is in the process of being shut down and logins have been disabled.
.RE
.SH WARNINGS
-.LP
Users with a \fBUID\fR greater than 76695844 are not subject to password aging,
and the system does not record their last login time.
.sp
@@ -791,7 +783,6 @@ If you use the \fBCONSOLE\fR setting to disable root logins, you should arrange
that remote command execution by root is also disabled. See \fBrsh\fR(1),
\fBrcmd\fR(3SOCKET), and \fBhosts.equiv\fR(4) for further details.
.SH NOTES
-.LP
The \fBpam_unix\fR(5) module is no longer supported. Similar functionality is
provided by \fBpam_unix_account\fR(5), \fBpam_unix_auth\fR(5),
\fBpam_unix_session\fR(5), \fBpam_authtok_check\fR(5),
diff --git a/usr/src/man/man1/vacation.1 b/usr/src/man/man1/vacation.1
index 744de3ff18..82cb694c27 100644
--- a/usr/src/man/man1/vacation.1
+++ b/usr/src/man/man1/vacation.1
@@ -4,11 +4,10 @@
.\" 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 VACATION 1 "May 13, 2017"
+.TH VACATION 1 "June 20, 2021"
.SH NAME
vacation \- reply to mail automatically
.SH SYNOPSIS
-.LP
.nf
\fBvacation\fR [\fB-I\fR]
.fi
@@ -25,10 +24,8 @@ vacation \- reply to mail automatically
.fi
.SH DESCRIPTION
-.LP
The \fBvacation\fR utility automatically replies to incoming mail.
.SS "Installation"
-.LP
The installation consists of an interactive program which sets up
\fBvacation\fR's basic configuration.
.sp
@@ -66,25 +63,20 @@ The program automatically creates \fB\&.vacation.pag\fR and
\fB\&.vacation.dir\fR, which contain a list of senders when \fBvacation\fR is
enabled.
.SS "Activation and Deactivation"
-.LP
The presence of the \fB\&.forward\fR file determines whether or not
\fBvacation\fR is disabled or enabled. To disable \fBvacation\fR, remove the
\fB\&.forward\fR file, or move it to a new name.
.SS "Initialization"
-.LP
The \fB-I\fR option clears the \fBvacation\fR log files, \fB\&.vacation.pag\fR
and \fB\&.vacation.dir\fR, erasing the list of senders from a previous
\fBvacation\fR session. (See OPTIONS section.)
.SS "Additional Configuration"
-.LP
\fBvacation\fR provides configuration options that are not part of the
installation, these being \fB-a\fR, \fB-e\fR, \fB-f\fR, \fB-j\fR, \fB-m\fR,
\fB-s\fR, and \fB-t\fR. (See OPTIONS section.)
.SS "Reporting"
-.LP
\fBvacation\fR provides a reporting option, \fB-l\fR. See \fBOPTIONS\fR.
.SH OPTIONS
-.LP
The following options are supported:
.sp
.ne 2
@@ -191,8 +183,8 @@ Changes the interval between repeat replies to the same sender. The default is
.sp
.LP
-The \fB-l\fR option is neither for initialization nor configuration., but for
-reporting. The \fB-f\fRoption can also be used in conjunction with the
+The \fB-l\fR option is neither for initialization nor configuration, but for
+reporting. The \fB-f\fR option can also be used in conjunction with
\fB-l\fR.
.sp
.ne 2
@@ -205,7 +197,6 @@ of \fBvacation -I\fR, along with a date and time stamp.
.RE
.SH USAGE
-.LP
\fB\&.vacation.msg\fR should include a header with at least a \fBSubject:\fR
line (it should not include a \fBTo:\fR line). For example:
.sp
@@ -214,7 +205,7 @@ line (it should not include a \fBTo:\fR line). For example:
\fBSubject: I am on vacation
I am on vacation until July 22. If you have something urgent,
please contact Joe Jones (jones@fB0).
- --John\fR
+ --John\fR
.fi
.in -2
.sp
@@ -232,7 +223,7 @@ I am on vacation until July 22.
Your mail regarding "$SUBJECT" will be read when I return.
If you have something urgent, please contact
Joe Jones (jones@fB0).
- --John\fR
+ --John\fR
.fi
.in -2
.sp
@@ -287,7 +278,6 @@ anotherfriend@herisp.com
.LP
Blank lines and lines starting with "\fB#\fR" are ignored.
.SH FILES
-.LP
\fB~/.forward\fR
.sp
.LP
@@ -301,6 +291,5 @@ A list of senders is kept in the \fBdbm\fR format files \fB\&.vacation.pag\fR
and \fB\&.vacation.dir\fR in your home directory. These files are \fBdbm\fR
files and cannot be viewed directly with text editors.
.SH SEE ALSO
-.LP
\fBvi\fR(1), \fBsendmail\fR(1M), \fBgetusershell\fR(3C),
\fBaliases\fR(4), \fBshells\fR(4), \fBattributes\fR(5)
diff --git a/usr/src/man/man1b/lpc.1b b/usr/src/man/man1b/lpc.1b
index 5f6a570001..820d144f88 100644
--- a/usr/src/man/man1b/lpc.1b
+++ b/usr/src/man/man1b/lpc.1b
@@ -1,17 +1,15 @@
'\" te
.\" Copyright (c) 1983 Regents of the University of California. All rights reserved. The Berkeley software License Agreement specifies the terms and conditions for redistribution.
.\" Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
-.TH LPC 1B "Feb 25, 2017"
+.TH LPC 1B "June 20, 2021"
.SH NAME
lpc \- line printer control program
.SH SYNOPSIS
-.LP
.nf
\fB/usr/ucb/lpc\fR [\fIcommand\fR [\fIparameter\fR...]]
.fi
.SH DESCRIPTION
-.LP
The \fBlpc\fR utility controls the operation of local printers.
.sp
.LP
@@ -50,7 +48,6 @@ arguments causes it to run interactively, prompting the user for \fBlpc\fR
commands with \fBlpc>\fR. By redirecting the standard input, \fBlpc\fR can read
commands from a file.
.SH USAGE
-.LP
\fBlpc\fR commands can be typed in their entirety or abbreviated to an
unambiguous substring. Some \fBlpc\fR commands are available to all users;
others are available only to super-users.
@@ -134,7 +131,7 @@ names.
.sp .6
.RS 4n
Turns off the print queue for \fIprinter\fR. Prevents new printer jobs from
-being entered into the print queue for \fIprinter\fRby \fBlpr\fR(1B). \fBall\fR
+being entered into the print queue for \fIprinter\fR by \fBlpr\fR(1B). \fBall\fR
specifies that this command is performed on all locally attached printers.
\fIprinter\fR indicates this command is performed on specific printers. Specify
\fIprinter\fR as an atomic name. See \fBprinters.conf\fR(4) for information
@@ -247,7 +244,6 @@ conventions for atomic names.
.RE
.SH EXIT STATUS
-.LP
The following exit values are returned:
.sp
.ne 2
@@ -304,7 +300,6 @@ LDAP version of \fB/etc/printers.conf\fR
.RE
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -319,16 +314,13 @@ Interface Stability Standard
.TE
.SH SEE ALSO
-.LP
\fBlpq\fR(1B), \fBlpr\fR(1B), \fBlprm\fR(1B), \fBlpstat\fR(1),
\fBlpsched\fR(1M), \fBlpshut\fR(1M), \fBsvcadm\fR(1M), \fBprinters.conf\fR(4),
\fBattributes\fR(5)
.SH DIAGNOSTICS
-.LP
Use the \fBsvcs\fR(1) utility to check if \fBsvc:/application/print/server\fR
is running. If it is not running, use \fBsvcadm enable
svc:/application/print/server\fR to start \fBlpsched\fR. See \fBsvcadm\fR(1M).
.SH NOTES
-.LP
When IPP is in use, the user is prompted for a passphrase if the remote print
service is configured to require authentication.
diff --git a/usr/src/man/man1m/cfgadm_pci.1m b/usr/src/man/man1m/cfgadm_pci.1m
index ebed12b823..f89982cbbb 100644
--- a/usr/src/man/man1m/cfgadm_pci.1m
+++ b/usr/src/man/man1m/cfgadm_pci.1m
@@ -3,12 +3,11 @@
.\" 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 CFGADM_PCI 1M "April 9, 2016"
+.TH CFGADM_PCI 1M "June 20, 2021"
.SH NAME
cfgadm_pci \- PCI, CompactPCI, and PCI Express Hotplug hardware specific
commands for cfgadm
.SH SYNOPSIS
-.LP
.nf
\fB/usr/sbin/cfgadm\fR [\fB-f\fR] [\fB-y\fR | \fB-n\fR] [\fB-v\fR]
[\fB-o\fR \fIhardware_options\fR] \fB-c\fR \fIfunction\fR \fIap_id\fR [\fIap_id\fR]
@@ -39,12 +38,11 @@ commands for cfgadm
.fi
.SH DESCRIPTION
-.LP
The PCI hardware specific library, \fB/usr/lib/cfgadm/pci.so.1\fR, provides the
support for hot plugging PCI, CompactPCI, and PCI Express adapter cards into
the respective hot pluggable slots in a system that is hot plug capable,
through the \fBcfgadm\fR command (see \fBcfgadm\fR(1M)). Hot plug
-administrative models between PCI, CompactPCI, and PCI Express remain the same
+administrative models between PCI, CompactPCI, and PCI Express remain the same
except where noted in this document.
.sp
.LP
@@ -75,7 +73,6 @@ Note that the \fBap_type\fR is not the same as the information in the
.LP
See the \fI\fR for a detailed description of the hot plug procedure.
.SS "PCI Express ap_id naming"
-.LP
For attachment points located in a PCI Express hierarchy (that is, the parent
or an ancestor is a PCI Express device), including attachment points which are
not PCI Express devices themselves, the following naming scheme is used:
@@ -114,7 +111,7 @@ is the PCI device number in standard PCI nomenclature.
.LP
First, an \fIabsolute-slot-path\fR is constructed that attempts to describe the
attachment point's topological location in more physically identifiable terms
-for the user . This \fIabsolute-slot-path\fR consists of \fIslot-path\fR
+for the user. This \fIabsolute-slot-path\fR consists of \fIslot-path\fR
components each separated by a ":" (colon). The leaf or left-most
\fIslot-path\fR component describes the device of the attachment point itself
while its right adjacent \fIslot-path\fR component up to the right or top-most
@@ -167,7 +164,7 @@ Each \fIslot-id\fR consists of one of three possible forms:
.sp
.LP
The precedence of which form to select flows from the lowest form number to the
-highest form number, or from top to bottowm as described above. If a form
+highest form number, or from top to bottom as described above. If a form
cannot be successfully constructed, then the next numerically higher form is
attempted.
.sp
@@ -250,7 +247,7 @@ form, "slot-id form (3)", of the last \fIslot_path\fR component is used
.LP
Whichever final \fIap_id\fR name is used, the \fIabsolute-slot-path\fR is
stored in the Information ("info") field which can be displayed using the
-\fB-s\fR or \fB-v\fRoptions. This information can be used to physically locate
+\fB-s\fR or \fB-v\fR options. This information can be used to physically locate
any \fIap_id\fRs named using "ap_id form (2)" or "ap_id form (3)". The
\fIabsolute-slot-path\fR is transformed slightly when stored in the information
field, by the replacement of a colon (":") with forward slashes ("/") to more
@@ -261,7 +258,6 @@ right-most \fIslot-path\fR component up to the onboard host slot.
.LP
See the EXAMPLES section for a list of hotpluggable examples.
.SH OPTIONS
-.LP
The following options are supported:
.sp
.ne 2
@@ -410,7 +406,7 @@ attachment point's absolute slot path location, including any hardware or
platform specific labeling information for each component in the slot path.
Each component in the slot path will be separated by a "/" (forward slash). See
the PCI Express ap_id naming section. For PCI Hot Plug attachment points not
-located in a PCI Express hieararchy, the \fBInformation\fR field will be the
+located in a PCI Express hierarchy, the \fBInformation\fR field will be the
slot's system label, if any. This string will be obtained from the
\fBslot-name\fR property of the slot's bus node. The information in the Type
field is printed with or without the \fB-v\fR option. The occupant \fBType\fR
@@ -441,7 +437,7 @@ multi-functional device, \fBMULT\fR will get printed instead.
.sp
\fIboard\fR is a string representing the board type of the device. For example,
hp is the string used for a PCI Hot Plug adapter, hs is used for a Hot Swap
-Board, nhs for a Non\(emHot Swap cPCI Board, bhs for a Basic Hot Swap cPCI
+Board, nhs for a Non\(emHot Swap cPCI Board, bhs for a Basic Hot Swap cPCI
Board, and fhs for a Full Hot Swap cPCI Board.
.sp
Most PCI cards with more than one device are not multi-function devices, but
@@ -571,7 +567,6 @@ example# \fBcfgadm -x led=active,mode=on pci0:hpc0_slot3\fR
.RE
.SH EXAMPLES
-.LP
\fBExample 1 \fRPrinting out the Value of Each Slot
.sp
.LP
@@ -716,7 +711,7 @@ iou#0-pci#3:iobBADF.pci2 Location: iou#0-pci#3/iobBADF.pci2
.LP
In this example, the "iou#0-pci#[0-3]" represents the top-most hotpluggable
slots in the system. Since the "iou#<n>-pci#<n>" form does not match any of the
-forms stated in the grammar specification section described earilier, we can
+forms stated in the grammar specification section described earlier, we can
infer that such a name for the base component in this hotplug topology is
derived from the platform through the "slot-names" property.
@@ -928,7 +923,7 @@ length limit, and the leaf \fIslot-path\fR component is not globally unique,
The default form or "slot-id form (3)" of the leaf component
".../iob.pcie1"represents a PCI Express slot with device number 0, bound to
driver instance 20 of "px_pci". Likewise, the default form of the leaf
-component ".../iob.pcie2" represents a PCI Express slot with device number 0,
+component ".../iob.pcie2" represents a PCI Express slot with device number 0,
bound to driver instance 21 of "px_pci"
.SH FILES
@@ -942,7 +937,6 @@ Hardware specific library for PCI hot plugging.
.RE
.SH SEE ALSO
-.LP
\fBcfgadm\fR(1M), \fBconfig_admin\fR(3CFGADM), \fBlibcfgadm\fR(3LIB),
\fBattributes\fR(5)
.sp
diff --git a/usr/src/man/man1m/datadm.1m b/usr/src/man/man1m/datadm.1m
index 929714d912..ca16dff943 100644
--- a/usr/src/man/man1m/datadm.1m
+++ b/usr/src/man/man1m/datadm.1m
@@ -3,18 +3,16 @@
.\" 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 DATADM 1M "May 13, 2017"
+.TH DATADM 1M "June 20, 2021"
.SH NAME
datadm \- maintain DAT static registry file
.SH SYNOPSIS
-.LP
.nf
\fB/usr/bin/datadm\fR [\fB-v\fR] [\fB-u\fR] [\fB-a\fR service_provider.conf]
[\fB-r\fR service_provider.conf]
.fi
.SH DESCRIPTION
-.LP
The \fBdatadm\fR utility maintains the DAT static registry file,
\fBdat.conf\fR(4).
.sp
@@ -29,7 +27,6 @@ a system after its installation. You can use \fBdatadm\fR to update the
interface adapters for all the service providers currently installed is
regenerated.
.SH OPTIONS
-.LP
The following options are supported:
.sp
.ne 2
@@ -73,7 +70,6 @@ Display the DAT static registry file, \fBdat.conf\fR.
.RE
.SH EXAMPLES
-.LP
\fBExample 1 \fREnumerating a Device Entry
.sp
.LP
@@ -115,8 +111,8 @@ each port, there are two IPoIB device instances, \fBibd0\fR and \fBibd1\fR:
.sp
.LP
Running the command, \fBdatadm -a /usr/share/dat/SUNWudaplt.conf\fR appends two
-new entries (if they do not already exists]) in the
-\fB/etc/dat/dat.conf\fRfile:
+new entries (if they do not already exist) in the
+\fB/etc/dat/dat.conf\fR file:
.sp
.in +2
@@ -181,7 +177,6 @@ DAT static registry file
.RE
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -196,6 +191,5 @@ Interface Stability Evolving
.TE
.SH SEE ALSO
-.LP
\fBlibdat\fR(3LIB), \fBdat.conf\fR(4),
\fBservice_provider.conf\fR(4), \fBattributes\fR(5)
diff --git a/usr/src/man/man1m/dladm.1m b/usr/src/man/man1m/dladm.1m
index 77bf045e08..035c5f2eb9 100644
--- a/usr/src/man/man1m/dladm.1m
+++ b/usr/src/man/man1m/dladm.1m
@@ -44,7 +44,7 @@
.\" Copyright 2017 Joyent, Inc.
.\" Copyright 2020 RackTop Systems, Inc.
.\"
-.TH DLADM 1M "May 4, 2020"
+.TH DLADM 1M "June 20, 2021"
.SH NAME
dladm \- administer data links
.SH SYNOPSIS
@@ -946,7 +946,7 @@ Multiple links are included in the aggregation by specifying multiple \fB-l\fR
options. For backward compatibility with previous versions of Solaris, the
\fBdladm\fR command also supports the using the \fB-d\fR option (or
\fB--dev\fR) with a device name to specify links by their underlying device
-name. The other \fB*\fR\fB-aggr\fR subcommands that take \fB-l\fRoptions also
+name. The other \fB*\fR\fB-aggr\fR subcommands that take \fB-l\fR options also
accept \fB-d\fR.
.RE
diff --git a/usr/src/man/man1m/fstyp.1m b/usr/src/man/man1m/fstyp.1m
index 3b5c623d87..14cd484cfb 100644
--- a/usr/src/man/man1m/fstyp.1m
+++ b/usr/src/man/man1m/fstyp.1m
@@ -4,18 +4,15 @@
.\" 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 FSTYP 1M "Dec 19, 2007"
+.TH FSTYP 1M "June 20, 2021"
.SH NAME
fstyp \- determine file system type
.SH SYNOPSIS
-.LP
.nf
\fBfstyp\fR [\fB-a\fR | \fB-v\fR] \fIspecial\fR [:\fIlogical-drive\fR]
.fi
.SH DESCRIPTION
-.sp
-.LP
\fBfstyp\fR allows the user to determine the file system type of unmounted file
systems using heuristic programs.
.sp
@@ -34,7 +31,6 @@ status is \fB2\fR. Other errors are printed in the same format.
This command is unreliable and its results should not be used to make any
decisions about subsequent use of a storage device or disk partition.
.SH OPTIONS
-.sp
.ne 2
.na
\fB\fB-a\fR\fR
@@ -150,20 +146,14 @@ superblock and varies across different \fIFSTypes\fR. See \fBufs\fR(7FS),
.RE
.SH USAGE
-.sp
-.LP
See \fBlargefile\fR(5) for the description of the behavior of \fBfstyp\fR when
encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
.SH SEE ALSO
-.sp
-.LP
\fBfsck\fR(1M), \fBmkfs_ufs\fR(1M), \fBtunefs\fR(1M), \fBattributes\fR(5),
\fBlibfstyp\fR(3LIB), \fBlargefile\fR(5), \fBhsfs\fR(7FS), \fBufs\fR(7FS),
\fBpcfs\fR(7FS)
.SH NOTES
-.sp
-.LP
-The use of heuristics implies that the result of\fBfstyp\fR is not guaranteed
+The use of heuristics implies that the result of \fBfstyp\fR is not guaranteed
to be accurate.
.sp
.LP
diff --git a/usr/src/man/man1m/fwflash.1m b/usr/src/man/man1m/fwflash.1m
index d81d7f7dae..eecda587a4 100644
--- a/usr/src/man/man1m/fwflash.1m
+++ b/usr/src/man/man1m/fwflash.1m
@@ -1,10 +1,11 @@
'\" te
.\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
.\" Copyright 2020 Oxide Computer Company
+.\" Copyright 2021 Peter Tribble
.\" 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 FWFLASH 1M "June 9, 2020"
+.TH FWFLASH 1M "June 20, 2021"
.SH NAME
fwflash \- firmware query and update utility
.SH SYNOPSIS
@@ -47,7 +48,7 @@ The following options are supported:
An optional parameter, valid only when used with the \fB-l\fR option. This
option causes the command to list only devices of a specific class type.
Currently supported classes are \fBIB\fR, \fBses\fR, \fBsd\fR, \fBufm\fR, or
-\fBALL\fR. If \fB-c\fR is not specified for the \fB-l\fRoption, the class
+\fBALL\fR. If \fB-c\fR is not specified for the \fB-l\fR option, the class
defaults to \fBALL\fR.
.RE
@@ -58,8 +59,8 @@ defaults to \fBALL\fR.
.ad
.sp .6
.RS 4n
-The \fIdev_path\fR is absolute path name of the device that the user wants to
-modify with the \fB-f\fRor \fB-r\fR operation. If the device cannot be found,
+The \fIdev_path\fR is the absolute path name of the device that the user wants
+to modify with the \fB-f\fR or \fB-r\fR option. If the device cannot be found,
the command fails. If the \fB-d\fR option is specified, then either \fB-f\fR or
\fB-r\fR must also be specified.
.RE
@@ -105,7 +106,7 @@ Display the command line usage message for \fBfwflash\fR.
List the devices on a system available for firmware upgrade and display
information specific to each device or device class.
.sp
-For InfiniBand (IB) devices, the list operation displays the \fBguid\fRs
+For InfiniBand (IB) devices, the list operation displays the \fBguid\fRs
(Globally Unique Identifier) currently set for the HCA, as well as the current
firmware revision installed. There are four separate \fBguid\fRs on the HCA;
two of them can be set with the same value.
@@ -152,7 +153,7 @@ Display \fBfwflash\fR version information and exit.
.ad
.sp .6
.RS 4n
-Valid only when a flash read (\fB-r\fR) or write (\fB-f\fR) operation is
+Valid only when a flash read (\fB-r\fR) or write (\fB-f\fR) option is
specified. This option causes \fBfwflash\fR not to prompt for confirmation
during operation and operate non-interactively. Note that there is no option
that allows you to forcibly flash an incompatible firmware image onto a device.
@@ -162,8 +163,8 @@ that allows you to forcibly flash an incompatible firmware image onto a device.
\fBExample 1 \fREntering Command Without Arguments
.sp
.LP
-The following command shows \fBfwflash\fR when the command is entered without
-arguments.
+The following command shows \fBfwflash\fR output when the command is entered
+without arguments.
.sp
.in +2
diff --git a/usr/src/man/man1m/getent.1m b/usr/src/man/man1m/getent.1m
index af87eb677b..71a71c496f 100644
--- a/usr/src/man/man1m/getent.1m
+++ b/usr/src/man/man1m/getent.1m
@@ -19,7 +19,7 @@
.\" Copyright (c) 2014 Gary Mills
.\" Copyright (c) 2018 Peter Tribble
.\"
-.Dd August 13, 2018
+.Dd June 17, 2021
.Dt GETENT 1M
.Os
.Sh NAME
@@ -56,14 +56,16 @@ This can be
.Cm auth_attr ,
.Cm exec_attr ,
.Cm prof_attr ,
+.Cm user_attr ,
or
-.Cm user_attr .
+.Cm netgroup .
For each of these databases,
.Nm
uses the appropriate library routines described in
.Xr getpwnam 3C ,
.Xr getspnam 3C ,
.Xr getgrnam 3C ,
+.Xr getnetgrent 3C ,
.Xr gethostbyaddr 3NSL ,
.Xr gethostbyname 3NSL ,
.Xr getipnodebyaddr 3SOCKET ,
@@ -101,6 +103,7 @@ line, in the format of the matching administrative file:
.Xr services 4 ,
.Xr protocols 4 ,
.Xr ethers 4 ,
+.Xr netgroup 4 ,
.Xr networks 4 ,
.Xr netmasks 4 ,
.Xr auth_attr 4 ,
@@ -117,9 +120,10 @@ are printed.
Enumeration is not supported on
.Cm ipnodes ,
.Cm ethers ,
+.Cm netgroup ,
or
.Cm netmasks .
-.Ss Key Interpretation for passwd, group, and user_attr Databases
+.Ss Key Interpretation for passwd, group, netgroup, and user_attr Databases
When
.Nm
is invoked with
@@ -173,6 +177,46 @@ When
is invoked with
.Ar database
set to
+.Cm netgroup ,
+only a single lookup key is supported, which must be in the following format:
+.Bd -ragged -offset Ds
+.Ar netgroup Oo Ar host Ar user Ar domain Oc
+.Ed
+.Pp
+Specifying only the
+.Ar netgroup
+name will result in entries from the selected netgroup being displayed as
+string triples
+.Pq hostname, username, domain ,
+in a format compatible with
+.Xr netgroup 4 .
+.Pp
+Specifying the
+.Ar netgroup
+along with
+.Ar host ,
+.Ar user
+and
+.Ar domain
+will filter the netgroup display based on these entries.
+An asterisk
+.Pq \&*
+can be used as a wildcard for the
+.Ar host ,
+.Ar user
+or
+.Ar domain
+fields.
+.Pp
+Since the
+.Cm netgroup
+database does not support enumeration, a lookup key must always be specified.
+.Pp
+When
+.Nm
+is invoked with
+.Ar database
+set to
.Cm user_attr ,
each key value is processed as follows:
.Bl -bullet
@@ -216,6 +260,8 @@ Ethernet address to hostname database or domain
network name database
.It Pa /etc/netmasks
network mask database
+.It Pa /etc/netgroup
+network group database
.It Pa /etc/user_attr
extended user attributes database
.It Pa /etc/security/auth_attr
@@ -241,6 +287,7 @@ There is no support for enumeration on this database.
.El
.Sh SEE ALSO
.Xr getgrnam 3C ,
+.Xr getnetgrent 3C ,
.Xr getpwnam 3C ,
.Xr getspnam 3C ,
.Xr gethostbyaddr 3NSL ,
diff --git a/usr/src/man/man1m/ikecert.1m b/usr/src/man/man1m/ikecert.1m
index 601cb47f68..da2a53cd08 100644
--- a/usr/src/man/man1m/ikecert.1m
+++ b/usr/src/man/man1m/ikecert.1m
@@ -3,12 +3,11 @@
.\" 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 IKECERT 1M "April 9, 2016"
+.TH IKECERT 1M "June 20, 2021"
.SH NAME
ikecert \- manipulates the machine's on-filesystem public-key certificate
databases
.SH SYNOPSIS
-.LP
.nf
\fBikecert\fR certlocal
[\fB-a\fR | \fB-e\fR | \fB-h\fR | \fB-k\fR | \fB-l\fR | \fB-r\fR | \fB-U\fR | \fB-C\fR | \fB-L\fR]
@@ -35,7 +34,6 @@ databases
.fi
.SH DESCRIPTION
-.LP
The \fBikecert\fR command manipulates the machine's on-filesystem public-key
certificate databases. See the "Files" section, below.
.sp
@@ -72,7 +70,6 @@ repository.
The only supported PKCS#11 library and hardware is the Sun Cryptographic
Accelerator 4000.
.SH OPTIONS
-.LP
Except for \fBtokens\fR, each subcommand requires one option, possibly followed
by one or more option-specific arguments.
.sp
@@ -234,7 +231,7 @@ matches in the database is extracted. See \fBNOTES\fR, below, for details on
When specified with the \fBcertlocal\fR subcommand, this option generates a IKE
public/private key pair and adds it into the local ID database. It also
generates a certificate request and sends that to standard output. For details
-on the above options see for details on the \fIdname\fR argument and see
+on the above options see for details on the \fIdname\fR argument and see
ALTERNATIVE NAMES for details on the \fIaltname\fR argument(s) to this command.
.sp
If \fB-T\fR is specified, the hardware token will generate the pair of keys.
@@ -331,7 +328,7 @@ The list displays the identity string of the certificates, as well as, the
private key if in the key database. The \fB-v\fR switches the output to a
verbose mode where the entire certificate is printed.
.sp
-If the matching ceritifcate is on a hardware token, the token ID is also
+If the matching certificate is on a hardware token, the token ID is also
listed.
.RE
@@ -346,7 +343,7 @@ When specified with the \fBcertrldb\fR subcommand, this option lists the CRLs
in the IKE database along with any certificates that reside in the database and
match the Issuer Name. \fBcertspec\fR can be used to specify to list a specific
CRL. The \fB-v\fR option switches the output to a verbose mode where the entire
-certificate is printed. See \fBNOTES\fR, below, for details on\fBcertspec\fR
+certificate is printed. See \fBNOTES\fR, below, for details on \fBcertspec\fR
patterns.
.RE
@@ -541,7 +538,6 @@ token with \fBikeadm\fR(1M) once \fBin.iked\fR(1M) is running.
.RE
.SH PARAMETERS
-.LP
The following parameters are supported:
.sp
.ne 2
@@ -726,7 +722,6 @@ instance.
.RE
.SH SECURITY
-.LP
This command can save private keys of a public-private key pair into a file.
Any exposure of a private key may lead to compromise if the key is somehow
obtained by an adversary.
@@ -748,7 +743,6 @@ Refer to the afterword by Matt Blaze in Bruce Schneier's \fIApplied
Cryptography: Protocols, Algorithms, and Source Code in C\fR for additional
information.
.SH EXAMPLES
-.LP
\fBExample 1 \fRGenerating a Self-Signed Certificate
.sp
.LP
@@ -809,7 +803,6 @@ example# \fB# ikecert certlocal -kc -m 1024 -t rsa-md5 -T vca0-keystore \e
.sp
.SH EXIT STATUS
-.LP
The following exit values are returned:
.sp
.ne 2
@@ -874,7 +867,6 @@ Consulted for the pathname of a PKCS#11 library.
.RE
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -889,7 +881,6 @@ Interface Stability Evolving
.TE
.SH SEE ALSO
-.LP
\fBikeadm\fR(1M), \fBin.iked\fR(1M), \fBgetdate\fR(3C), \fBike.config\fR(4),
\fBattributes\fR(5), \fBpkcs11_softtoken\fR(5)
.sp
@@ -901,7 +892,6 @@ Code in C\fR. Second Edition. John Wiley & Sons. New York, NY. 1996.
RSA Labs, PKCS#11 v2.11: \fICryptographic Token Interface Standards\fR,
November 2001.
.SH NOTES
-.LP
The following is the validity date and time syntax when the \fB-F\fR or
\fB-S\fR flags are used:
.sp
diff --git a/usr/src/man/man1m/in.rlogind.1m b/usr/src/man/man1m/in.rlogind.1m
index 7a952fa7c5..fdddcee08d 100644
--- a/usr/src/man/man1m/in.rlogind.1m
+++ b/usr/src/man/man1m/in.rlogind.1m
@@ -4,19 +4,16 @@
.\" 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 IN.RLOGIND 1M "Oct 29, 2015"
+.TH IN.RLOGIND 1M "June 20, 2021"
.SH NAME
in.rlogind, rlogind \- remote login server
.SH SYNOPSIS
-.LP
.nf
\fB/usr/sbin/in.rlogind\fR [\fB-k5eExXciPp\fR] [\fB-s\fR \fItos\fR] [\fB-S\fR \fIkeytab\fR]
[\fB-M\fR \fIrealm\fR]
.fi
.SH DESCRIPTION
-.sp
-.LP
\fBin.rlogind\fR is the server for the \fBrlogin\fR(1) program. The server
provides a remote login facility with authentication based on Kerberos V5 or
privileged port numbers.
@@ -104,8 +101,6 @@ interrupt signals to the remote programs. The login process propagates the
client terminal's baud rate and terminal type, as found in the environment
variable, \fBTERM\fR.
.SH OPTIONS
-.sp
-.LP
The following options are supported:
.sp
.ne 2
@@ -212,7 +207,7 @@ Sets the \fBIP\fR \fBTOS\fR option.
\fB\fB-S\fR \fIkeytab\fR\fR
.ad
.RS 13n
-Sets the \fBKRB5\fR keytab file to use. The\fB/etc/krb5/krb5.keytab\fR file is
+Sets the \fBKRB5\fR keytab file to use. The \fB/etc/krb5/krb5.keytab\fR file is
used by default.
.RE
@@ -235,8 +230,6 @@ Same as \fB-e\fR, for backwards compatibility.
.RE
.SH USAGE
-.sp
-.LP
\fBrlogind\fR and \fBin.rlogind\fR are IPv6-enabled. See \fBip6\fR(7P).
\fBIPv6\fR is not currently supported with Kerberos V5 authentication.
.sp
@@ -254,8 +247,6 @@ svc:/network/login:eklogin (rlogin with kerberos and encryption)
.sp
.SH SECURITY
-.sp
-.LP
\fBin.rlogind\fR uses \fBpam\fR(3PAM) for authentication, account management,
and session management. The \fBPAM\fR configuration policy, listed through
\fB/etc/pam.conf\fR, specifies the modules to be used for \fBin.rlogind\fR.
@@ -272,11 +263,11 @@ rlogin auth sufficient pam_rhosts_auth.so.1
rlogin auth requisite pam_authtok_get.so.1
rlogin auth required pam_dhkeys.so.1
rlogin auth required pam_unix_auth.so.1
-
+
rlogin account required pam_unix_roles.so.1
rlogin account required pam_unix_projects.so.1
rlogin account required pam_unix_account.so.1
-
+
rlogin session required pam_unix_session.so.1
.TE
@@ -304,8 +295,6 @@ type the password. The \fIsufficient\fR flag indicates that authentication
through the \fBpam_rhosts_auth.so.1\fR module is sufficient to authenticate the
user. Only if this authentication fails is the next authentication module used.
.SH SEE ALSO
-.sp
-.LP
\fBlogin\fR(1), \fBsvcs\fR(1), \fBrlogin\fR(1),
\fBin.rshd\fR(1M), \fBinetadm\fR(1M), \fBinetd\fR(1M), \fBkadmin\fR(1M),
\fBsvcadm\fR(1M), \fBpam\fR(3PAM), \fBhosts\fR(4), \fBhosts.equiv\fR(4),
@@ -318,8 +307,6 @@ user. Only if this authentication fails is the next authentication module used.
.LP
\fI\fR
.SH DIAGNOSTICS
-.sp
-.LP
All diagnostic messages are returned on the connection associated with the
\fBstderr\fR, after which any network connections are closed. An error is
indicated by a leading byte with a value of 1.
@@ -354,8 +341,6 @@ The user's login shell could not be started.
.RE
.SH NOTES
-.sp
-.LP
The authentication procedure used here assumes the integrity of each client
machine and the connecting medium. This is insecure, but it is useful in an
``open'' environment.
diff --git a/usr/src/man/man1m/in.rshd.1m b/usr/src/man/man1m/in.rshd.1m
index d1bd3d70cf..50ac4db395 100644
--- a/usr/src/man/man1m/in.rshd.1m
+++ b/usr/src/man/man1m/in.rshd.1m
@@ -4,19 +4,16 @@
.\" 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 IN.RSHD 1M "Oct 29, 2015"
+.TH IN.RSHD 1M "June 20, 2021"
.SH NAME
in.rshd, rshd \- remote shell server
.SH SYNOPSIS
-.LP
.nf
\fBin.rshd\fR [\fB-k5eciU\fR] [\fB-s\fR \fItos\fR] [\fB-S\fR \fIkeytab\fR] [\fB-M\fR \fIrealm\fR]
[\fB-L\fR \fIenv_var\fR] \fIhost.port\fR
.fi
.SH DESCRIPTION
-.sp
-.LP
\fBin.rshd\fR is the server for the \fBrsh\fR(1) program. The server provides
remote execution facilities with authentication based on Kerberos V5 or
privileged port numbers.
@@ -135,8 +132,6 @@ passed to the normal login shell of the user. The \fBPATH\fR variable is set to
\fBin.rshd\fR.
.RE
.SH OPTIONS
-.sp
-.LP
The following options are supported:
.sp
.ne 2
@@ -225,7 +220,7 @@ Sets the \fBIP\fR \fBTOS\fR option.
\fB\fB-S\fR \fIkeytab\fR\fR
.ad
.RS 14n
-Sets the \fBKRB5\fR keytab file to use. The\fB/etc/krb5/krb5.keytab\fR file is
+Sets the \fBKRB5\fR keytab file to use. The \fB/etc/krb5/krb5.keytab\fR file is
used by default.
.RE
@@ -240,8 +235,6 @@ Refuses connections that cannot be mapped to a name through the
.RE
.SH USAGE
-.sp
-.LP
\fBrshd\fR and \fBin.rshd\fR are IPv6-enabled. See \fBip6\fR(7P). \fBIPv6\fR is
not currently supported with Kerberos V5 authentication.
.sp
@@ -257,8 +250,6 @@ svc:/network/shell:kshell (rshd with kerberos (ipv4 only))
.sp
.SH SECURITY
-.sp
-.LP
\fBin.rshd\fR uses \fBpam\fR(3PAM) for authentication, account management, and
session management. The \fBPAM\fR configuration policy, listed through
\fB/etc/pam.conf\fR, specifies the modules to be used for \fBin.rshd\fR. Here
@@ -292,8 +283,6 @@ If there are no entries for the \fBrsh\fR service, then the entries for the
\fBpam\fR(3PAM). For Kerberized \fBrsh\fR service, the appropriate \fBPAM\fR
service name is \fBkrsh\fR.
.SH FILES
-.sp
-.LP
\fB/etc/hosts.equiv\fR
.sp
.ne 2
@@ -314,8 +303,6 @@ Kerberos configuration file.
.RE
.SH SEE ALSO
-.sp
-.LP
\fBrsh\fR(1), \fBsvcs\fR(1), \fBinetadm\fR(1M),
\fBinetd\fR(1M), \fBkadmin\fR(1M), \fBsvcadm\fR(1M), \fBpam\fR(3PAM),
\fBgetnameinfo\fR(3SOCKET), \fBhosts\fR(4), \fBkrb5.conf\fR(4),
@@ -328,8 +315,6 @@ Kerberos configuration file.
.LP
\fI\fR
.SH DIAGNOSTICS
-.sp
-.LP
The following diagnostic messages are returned on the connection associated
with \fBstderr\fR, after which any network connections are closed. An error is
indicated by a leading byte with a value of 1 in step 8 above (\fB0\fR is
@@ -417,8 +402,6 @@ A \fIfork\fR by the server failed.
.RE
.SH NOTES
-.sp
-.LP
The authentication procedure used here assumes the integrity of each client
machine and the connecting medium. This is insecure, but it is useful in an
"open" environment.
diff --git a/usr/src/man/man1m/in.telnetd.1m b/usr/src/man/man1m/in.telnetd.1m
index ba6d80c2dc..c233dccf49 100644
--- a/usr/src/man/man1m/in.telnetd.1m
+++ b/usr/src/man/man1m/in.telnetd.1m
@@ -4,18 +4,16 @@
.\" 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 IN.TELNETD 1M "Oct 29, 2015"
+.TH IN.TELNETD 1M "June 20, 2021"
.SH NAME
in.telnetd, telnetd \- DARPA TELNET protocol server
.SH SYNOPSIS
-.LP
.nf
\fB/usr/sbin/in.telnetd\fR [\fB-a\fR \fIauthmode\fR] [\fB-EXUh\fR] [\fB-s\fR \fItos\fR]
[\fB-S\fR \fIkeytab\fR] [\fB-M\fR \fIrealm\fR]
.fi
.SH DESCRIPTION
-.LP
\fBin.telnetd\fR is a server that supports the \fBDARPA\fR standard
\fBTELNET\fR virtual terminal protocol. \fBin.telnetd\fR is normally invoked in
the internet server (see \fBinetd\fR(1M)), for requests to connect to the
@@ -93,7 +91,6 @@ BANNER=""
.in -2
.SH OPTIONS
-.LP
The following options are supported:
.sp
.ne 2
@@ -192,7 +189,7 @@ Sets the \fBIP\fR \fBTOS\fR option.
\fB\fB-S\fR \fIkeytab\fR\fR
.ad
.RS 15n
-Sets the \fBKRB5\fR keytab file to use. The\fB/etc/krb5/krb5.keytab\fR file is
+Sets the \fBKRB5\fR keytab file to use. The \fB/etc/krb5/krb5.keytab\fR file is
used by default.
.RE
@@ -216,10 +213,8 @@ Disables Kerberos V5 authentication support negotiation.
.RE
.SH USAGE
-.LP
\fBtelnetd\fR and \fBin.telnetd\fR are IPv6-enabled. See \fBip6\fR(7P).
.SH SECURITY
-.LP
\fBin.telnetd\fR can authenticate using Kerberos V5 authentication,
\fBpam\fR(3PAM), or both. By default, the telnet server will accept valid
Kerberos V5 authentication credentials from a \fBtelnet\fR client that supports
@@ -294,7 +289,6 @@ For a Kerberized telnet service, the correct \fBPAM\fR service name is
.RE
.SH SEE ALSO
-.LP
\fBlogin\fR(1), \fBsvcs\fR(1), \fBtelnet\fR(1),
\fBinetadm\fR(1M), \fBinetd\fR(1M), \fBkadmin\fR(1M), \fBsvcadm\fR(1M),
\fBpam\fR(3PAM), \fBgetnameinfo\fR(3SOCKET), \fBissue\fR(4),
@@ -355,7 +349,6 @@ Ts'o, T., \fITelnet Data Encryption Option, RFC 2946\fR. September 2000.
Ts'o, T., \fITelnet Encryption: DES 64 bit Cipher Feedback, RFC 2952\fR.
September 2000.
.SH NOTES
-.LP
Some \fBTELNET\fR commands are only partially implemented.
.sp
.LP
diff --git a/usr/src/man/man1m/kdb5_ldap_util.1m b/usr/src/man/man1m/kdb5_ldap_util.1m
index 8beb8c03a0..0e8923241c 100644
--- a/usr/src/man/man1m/kdb5_ldap_util.1m
+++ b/usr/src/man/man1m/kdb5_ldap_util.1m
@@ -4,34 +4,27 @@
.\" 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 KDB5_LDAP_UTIL 1M "Aug 28, 2007"
+.TH KDB5_LDAP_UTIL 1M "June 20, 2021"
.SH NAME
kdb5_ldap_util \- Kerberos configuration utility
.SH SYNOPSIS
-.LP
.nf
\fBkdb5_ldap_util\fR [\fB-D\fR \fIuser_dn\fR [\fB-w\fR \fIpasswd\fR]] [\fB-H\fR \fIldap_uri\fR] \fIcommand\fR
[\fIcommand_options\fR]
.fi
.SH DESCRIPTION
-.sp
-.LP
The \fBkdb5_ldap_util\fR utility allows an administrator to manage realms,
Kerberos services, and ticket policies. The utility offers a set of general
options, described under OPTIONS, and a set of commands, which, in turn, have
their own options. Commands and their options are described in their own
subsections, below.
.SH OPTIONS
-.sp
-.LP
\fBkdb5_ldap_util\fR has a small set of general options that apply to the
\fBkdb5_ldap_util\fR utility itself and a larger number of options that apply
to specific commands. A number of these command-specific options apply to
multiple commands and are described in their own section, below.
.SS "General Options"
-.sp
-.LP
The following general options are supported:
.sp
.ne 2
@@ -65,8 +58,6 @@ Specifies the password of \fIuser_dn\fR. This option is not recommended.
.RE
.SS "Common Command-specific Options"
-.sp
-.LP
The following options apply to a number of \fBkdb5_ldap_util\fR commands.
.sp
.ne 2
@@ -134,13 +125,9 @@ Specifies the Kerberos realm of the database; by default the realm returned by
.RE
.SH \fBkdb5_ldap_util\fR COMMANDS
-.sp
-.LP
The \fBkdb5_ldap_util\fR utility comprises a set of commands, each with its own
set of options. These commands are described in the following subsections.
.SS "The \fBcreate\fR Command"
-.sp
-.LP
The \fBcreate\fR command creates a realm in a directory. The command has the
following syntax:
.sp
@@ -292,8 +279,6 @@ these flags.
.RE
.SS "The \fBmodify\fR Command"
-.sp
-.LP
The \fBmodify\fR command modifies the attributes of a realm. The command has
the following syntax:
.sp
@@ -388,8 +373,6 @@ these flags.
.RE
.SS "The \fBview\fR Command"
-.sp
-.LP
The \fBview\fR command displays the attributes of a realm. The command has the
following syntax:
.sp
@@ -414,8 +397,6 @@ See "Common Command-specific Options," above.
.RE
.SS "The \fBdestroy\fR Command"
-.sp
-.LP
The \fBdestroy\fR command destroys a realm, including the master key stash
file. The command has the following syntax:
.sp
@@ -450,8 +431,6 @@ See "Common Command-specific Options," above.
.RE
.SS "The \fBlist\fR Command"
-.sp
-.LP
The \fBlist\fR command displays the names of realms. The command has the
following syntax:
.sp
@@ -466,8 +445,6 @@ list
.LP
The \fBlist\fR command has no options.
.SS "The \fBstashsrvpw\fR Command"
-.sp
-.LP
The \fBstashsrvpw\fR command enables you to store the password for service
object in a file so that a KDC and Administration server can use it to
authenticate to the LDAP server. The command has the following syntax:
@@ -512,8 +489,6 @@ to be stored in file.
.RE
.SS "The \fBcreate_policy\fR Command"
-.sp
-.LP
The \fBcreate_policy\fR command creates a ticket policy in a directory. The
command has the following syntax:
.sp
@@ -586,8 +561,6 @@ Specifies the name of the ticket policy.
.RE
.SS "The \fBmodify_policy\fR Command"
-.sp
-.LP
The \fBmodify_policy\fR command modifies the attributes of a ticket policy. The
command has the following syntax:
.sp
@@ -608,8 +581,6 @@ modify_policy \e
The \fBmodify_policy\fR command has the same options and argument as those for
the \fBcreate_policy\fR command.
.SS "The \fBview_policy\fR Command"
-.sp
-.LP
The \fBview_policy\fR command displays the attributes of a ticket policy. The
command has the following syntax:
.sp
@@ -644,8 +615,6 @@ Specifies the name of the ticket policy.
.RE
.SS "The \fBdestroy_policy\fR Command"
-.sp
-.LP
The \fBdestroy_policy\fR command destroys an existing ticket policy. The
command has the following syntax:
.sp
@@ -692,8 +661,6 @@ Specifies the name of the ticket policy.
.RE
.SS "The \fBlist_policy\fR Command"
-.sp
-.LP
The \fBlist_policy\fR command lists the ticket policies in the default or a
specified realm. The command has the following syntax:
.sp
@@ -718,8 +685,6 @@ See "Common Command-specific Options," above.
.RE
.SH TICKET FLAGS
-.sp
-.LP
A number of \fBkdb5_ldap_util\fR commands have \fBticket_flag\fR options. These
flags are described as follows:
.sp
@@ -876,7 +841,6 @@ flag.
.RE
.SH EXAMPLES
-.LP
\fBExample 1 \fRUsing \fBcreate\fR
.sp
.LP
@@ -892,7 +856,7 @@ Initializing database for realm 'ATHENA.MIT.EDU'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: \fImaster key entered\fR
-Re-enter KDC database master key to verify: \fImaster key re-entered\fRjjjjjj
+Re-enter KDC database master key to verify: \fImaster key re-entered\fR
.fi
.in -2
.sp
@@ -1196,8 +1160,6 @@ cn=service-pwd,o=org
.sp
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -1212,6 +1174,4 @@ Interface Stability Volatile
.TE
.SH SEE ALSO
-.sp
-.LP
\fBkinit\fR(1), \fBkadmin\fR(1M), \fBkdc.conf\fR(4), \fBattributes\fR(5)
diff --git a/usr/src/man/man1m/logadm.1m b/usr/src/man/man1m/logadm.1m
index a69172a64f..cd9d95933c 100644
--- a/usr/src/man/man1m/logadm.1m
+++ b/usr/src/man/man1m/logadm.1m
@@ -3,11 +3,10 @@
.\" 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 LOGADM 1M "May 23, 2007"
+.TH LOGADM 1M "June 20, 2021"
.SH NAME
logadm \- manage endlessly growing log files
.SH SYNOPSIS
-.LP
.nf
\fBlogadm\fR
.fi
@@ -18,8 +17,6 @@ logadm \- manage endlessly growing log files
.fi
.SH DESCRIPTION
-.sp
-.LP
\fBlogadm\fR is a general log rotation tool that is suitable for running from
\fBcron\fR(1M).
.sp
@@ -106,16 +103,14 @@ owner, group ID, and permissions match the original file.
.LP
Three options control when old log files are expired: \fB-A\fR age \fB-C\fR
count \fB-S\fR size. These options expire the oldest log files until a
-particular condition or conditions are met. For example, the combination
-\fB\fR\fB-C\fR \fB5\fR and the \fB\fR\fB-S\fR \fB10m\fR options expires old log
-files until there are no more than 5 of the \fBand\fR their combined disk usage
+particular condition or conditions are met. For example, the combination of the
+\fB\fR\fB-C\fR \fB5\fR and \fB\fR\fB-S\fR \fB10m\fR options expires old log
+files until there are no more than 5 of them \fBand\fR their combined disk usage
is no more than 10 megabytes. If none of these options are specified, the
default expiration is \fB\fR\fB-C\fR \fB10\fR which keeps ten old log files. If
no files are to be expired, use \fB\fR\fB-C\fR \fB0\fR to prevent expiration by
default.
.SH OPTIONS
-.sp
-.LP
The following options are supported:
.sp
.ne 2
@@ -224,7 +219,7 @@ expire it.
after \fIcmd\fR completes. If the old log file is not removed or renamed by the
\fIcmd\fR, \fBlogadm\fR considers it for expiration the next time that it runs
on the specified log file. If present, the keyword \fB$file\fR is expanded in
-the specified \fIcmd\fRto the name of the file being expired.
+the specified \fIcmd\fR to the name of the file being expired.
.sp
This option is useful for tasks such as mailing old log files to
administrators, or copying old log files to long term storage.
@@ -698,8 +693,6 @@ suffix of \fB\&.gz\fR.
.RE
.SH OPERANDS
-.sp
-.LP
The following operands are supported:
.sp
.ne 2
@@ -714,7 +707,6 @@ is the same as the actual log file name.
.RE
.SH EXAMPLES
-.LP
\fBExample 1 \fRRotating a File and Keeping Previous Versions
.sp
.LP
@@ -873,7 +865,6 @@ logadm -w apache /var/apache/logs/*_log
.sp
.SH FILES
-.sp
.ne 2
.na
\fB\fB/etc/logadm.conf\fR\fR
@@ -884,8 +875,6 @@ configuration file for \fBlogadm\fR command
.RE
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -900,14 +889,10 @@ Interface Stability Evolving
.TE
.SH SEE ALSO
-.sp
-.LP
\fBchgrp\fR(1), \fBchmod\fR(1), \fBchown\fR(1), \fBcsh\fR(1), \fBgzip\fR(1),
\fBcron\fR(1M), \fBctime\fR(3C), \fBstrftime\fR(3C), \fBlogadm.conf\fR(4),
\fBattributes\fR(5)
.SH NOTES
-.sp
-.LP
When \fBlogadm\fR applies expire conditions (supplied by the \fB-A\fR,
\fB-C\fR, and \fB-S\fR options), it deletes files, the oldest first, until the
conditions are satisfied. If the template used for naming the old logs
diff --git a/usr/src/man/man1m/lpadmin.1m b/usr/src/man/man1m/lpadmin.1m
index c509eafe2e..006d0994cf 100644
--- a/usr/src/man/man1m/lpadmin.1m
+++ b/usr/src/man/man1m/lpadmin.1m
@@ -3,11 +3,10 @@
.\" 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 LPADMIN 1M "May 13, 2017"
+.TH LPADMIN 1M "June 20, 2021"
.SH NAME
lpadmin \- configure the LP print service
.SH SYNOPSIS
-.LP
.nf
\fBlpadmin\fR \fB-p\fR \fIprinter\fR {\fIoptions\fR}
.fi
@@ -29,13 +28,11 @@ lpadmin \- configure the LP print service
.fi
.SH DESCRIPTION
-.LP
\fBlpadmin\fR configures the LP print service by defining printers and devices.
It is used to add and change printers, to remove printers from service, to set
or change the system default destination, to define alerts for printer faults,
and to mount print wheels.
.SH OPTIONS
-.LP
The \fBlpadmin\fR command has options for:
.RS +4
.TP
@@ -81,7 +78,6 @@ one,two,three
.in -2
.SS "Adding or Changing a Printer"
-.LP
The first form of the \fBlpadmin\fR command (\fBlpadmin\fR \fB-p\fR
\fIprinter\fR {\fIoptions\fR}) configures a new printer or changes the
configuration of an existing printer. It also starts the print scheduler.
@@ -687,7 +683,7 @@ are generally of the format:
In either case, \fIserver\fR specifies the hostname or IP address of the remote
print server, \fIqueue\fR specifies the name of the print queue on the remote
-print server, and the optional \fB#Solaris\fRspecifies that the remote print
+print server, and the optional \fB#Solaris\fR specifies that the remote print
server is a Solaris server when \fBlpd\fR URI format is being used.
.sp
For example:
@@ -714,7 +710,7 @@ In an environment where the nodename is variable, print queues are invalidated
when the nodename changes. Using \fBlocalhost\fR as the \fIsystem-name\fR
allows print queues to be maintained across changing nodenames. The
\fIsystem-name\fR, as used by the print service, is only set to \fBlocalhost\fR
-when explicitely set with this option; by default, \fBlpadmin\fR sets
+when explicitly set with this option; by default, \fBlpadmin\fR sets
\fIsystem-name\fR to \fInodename\fR. For example, if you want to configure a
new printer on the local system, and want it called \fIprinter3\fR:
.sp
@@ -893,7 +889,6 @@ See the \fBsmbspool\fR man page for details.
.RE
.SS "Removing a Printer Destination"
-.LP
The \fB-x\fR \fIdest\fR option removes the destination \fIdest\fR (a printer or
a class), from the \fBLP\fR print service. If \fIdest\fR is a printer and is
the only member of a class, then the class is deleted, too. If \fIdest\fR is
@@ -903,7 +898,6 @@ local printers and the scheduler is still running, the scheduler is shut down.
.LP
No other \fIoptions\fR are allowed with \fB-x\fR.
.SS "Setting/Changing the System Default Destination"
-.LP
The \fB-d\fR [\fIdest\fR] option makes \fIdest\fR (an existing printer or
class) the new system default destination. If \fIdest\fR is not supplied, then
there is no system default destination. No other \fIoptions\fR are allowed with
@@ -952,7 +946,7 @@ terminals, one is arbitrarily chosen.
Do not send messages for the current condition. An administrator can use this
option to temporarily stop receiving further messages about a known problem.
Once the \fIprint-wheel\fR has been mounted and subsequently unmounted,
-messages are sent againwhen the number of print requests reaches the threshold
+messages are sent again when the number of print requests reaches the threshold
specified by the \fB-Q\fR option.
.RE
@@ -1029,14 +1023,12 @@ anyone submits a print request for the print wheel when it is not mounted.
.RE
.SH PREDEFINED OPTIONS USED WITH THE \fB-o\fR OPTION
-.LP
A number of options, described below, are predefined for use with \fB-o\fR.
These options are used for adjusting printer capabilities, adjusting printer
port characteristics, configuring network printers, and controlling the use of
banner. The \fB-o\fR also supports an arbitrary \fB\fIkeyword\fR=\fIvalue\fR\fR
format, which is referred to below as an undefined option.
.SS "Adjusting Printer Capabilities"
-.LP
The \fBlength\fR, \fBwidth\fR, \fBcpi\fR, and \fBlpi\fR parameters can be used
in conjunction with the \fB-o\fR option to adjust printer capabilities. The
format of the parameters and their values is as follows:
@@ -1082,7 +1074,6 @@ lpadmin -p \fIprintername\fR -o lpi=\fR
.sp
.SS "Adjusting Printer Port Characteristics"
-.LP
You use the \fBstty\fR keyword in conjunction with the o option to adjust
printer port characteristics. The general form of the \fBstty\fR portion of the
command is:
@@ -1126,7 +1117,6 @@ The default can be reset by:
.sp
.SS "Configuring Network Printers"
-.LP
The \fBdest\fR, \fBprotocol\fR, \fBbsdctrl\fR, and \fBtimeout\fR parameters are
used in conjunction with the \fB-o\fR option to configure network printers. The
format of these keywords and their assigned values is as follows:
@@ -1169,7 +1159,6 @@ lpadmin -p \fIprintername\fR -o timeout=
.sp
.SS "Controlling the Use of the Banner Page"
-.LP
Use the following commands to control the use of the banner page:
.sp
.in +2
@@ -1200,7 +1189,6 @@ The fourth command (\fB-o\fR \fBbanner=never\fR) causes a banner page never to
be printed, even if a user specifies \fBlp\fR \fB-o\fR \fBbanner\fR. The root
user can override this command.
.SS "Undefined Options"
-.LP
The \fB-o\fR option supports the use of arbitrary, user-defined options with
the following format:
.sp
@@ -1237,7 +1225,6 @@ Sets boolean values \fBfoo=true | foo=false\fR.
.RE
.SH EXAMPLES
-.LP
In the following examples, \fIprtr\fR can be any name up to 14 characters and
can be the same name as the \fBping\fR(1M) name.
.LP
@@ -1278,7 +1265,6 @@ example# \fBaccept \fIprtr\fR\fR
.sp
.SH EXIT STATUS
-.LP
The following exit values are returned:
.sp
.ne 2
@@ -1335,7 +1321,6 @@ System printer configuration database
.RE
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -1350,7 +1335,6 @@ Interface Stability Obsolete
.TE
.SH SEE ALSO
-.LP
\fBenable\fR(1), \fBlp\fR(1), \fBlpstat\fR(1), \fBmail\fR(1), \fBstty\fR(1),
\fBaccept\fR(1M), \fBlpforms\fR(1M), \fBlpsched\fR(1M), \fBlpsystem\fR(1M),
\fBping\fR(1M), \fBdial\fR(3NSL), \fBterminfo\fR(4), \fBattributes\fR(5)
@@ -1358,7 +1342,6 @@ Interface Stability Obsolete
.LP
\fI\fR
.SH NOTES
-.LP
When using lpadmin to provide access to a remote printer, remote configuration
data is stored in \fB/etc/printers.conf\fR. This data includes a \fBbsdaddr\fR
and a \fBprinter-uri-supported\fR attribute. The data in this file can be
diff --git a/usr/src/man/man1m/smrsh.1m b/usr/src/man/man1m/smrsh.1m
index 40e3b5f8cb..190965a880 100644
--- a/usr/src/man/man1m/smrsh.1m
+++ b/usr/src/man/man1m/smrsh.1m
@@ -23,7 +23,7 @@
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
.\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
-.TH SMRSH 1M "May 23, 2021"
+.TH SMRSH 1M "June 20, 2021"
.SH NAME
smrsh \- restricted shell for sendmail
.SH SYNOPSIS
@@ -51,7 +51,7 @@ acceptable commands. It also rejects any commands with the characters: \fB,\fR,
Initial pathnames on programs are stripped, so forwarding to
\fB/usr/ucb/vacation\fR, \fB/usr/bin/vacation\fR,
\fB/home/server/mydir/bin/vacation\fR, and \fBvacation\fR all actually forward
-to\fB/var/adm/sm.bin/vacation\fR.
+to \fB/var/adm/sm.bin/vacation\fR.
.sp
.LP
System administrators should be conservative about populating
diff --git a/usr/src/man/man1m/syslogd.1m b/usr/src/man/man1m/syslogd.1m
index 9e1c58e64f..42e34de642 100644
--- a/usr/src/man/man1m/syslogd.1m
+++ b/usr/src/man/man1m/syslogd.1m
@@ -4,19 +4,16 @@
.\" 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 SYSLOGD 1M "Oct 17, 2013"
+.TH SYSLOGD 1M "June 20, 2021"
.SH NAME
syslogd \- log system messages
.SH SYNOPSIS
-.LP
.nf
\fB/usr/sbin/syslogd\fR [\fB-d\fR] [\fB-f\fR \fIconfigfile\fR] [\fB-m\fR \fImarkinterval\fR]
[\fB-p\fR \fIpath\fR] [\fB-t\fR | \fB-T\fR]
.fi
.SH DESCRIPTION
-.sp
-.LP
\fBsyslogd\fR reads and forwards system messages to the appropriate log files
or users, depending upon the priority of a message and the system facility from
which it originates. The configuration file \fB/etc/syslog.conf\fR (see
@@ -99,8 +96,6 @@ equivalent to the \fB-t\fR command-line option. The default value for
.RE
.SH OPTIONS
-.sp
-.LP
The following options are supported:
.sp
.ne 2
@@ -168,7 +163,6 @@ messages. See \fBEXAMPLES\fR.
.RE
.SH EXAMPLES
-.LP
\fBExample 1 \fR\fBsyslogd\fR Output Without Message ID Generation Enabled
.sp
.LP
@@ -189,7 +183,7 @@ Sep 29 21:41:18 cathy unix: alloc /: file system full
.LP
The following example shows the output from \fBsyslogd\fR when message \fBID\fR
generation \fBis\fR enabled. The message \fBID\fR is displayed when writing to
-log file\fB/var/adm/messages\fR.
+log file \fB/var/adm/messages\fR.
.sp
.in +2
@@ -233,7 +227,6 @@ systems.
.sp
.SH FILES
-.sp
.ne 2
.na
\fB\fB/etc/syslog.conf\fR\fR
@@ -305,14 +298,10 @@ Network services for each transport
.RE
.SH SEE ALSO
-.sp
-.LP
\fBlogger\fR(1), \fBsvcs\fR(1), \fBmsgid\fR(1M), \fBsvcadm\fR(1M),
\fBsvccfg\fR(1M), \fBsyslog\fR(3C), \fBsyslog.conf\fR(4), \fBattributes\fR(5),
\fBsignal.h\fR(3HEAD), \fBsmf\fR(5), \fBlog\fR(7D)
.SH NOTES
-.sp
-.LP
The \fBmark\fR message is a system time stamp, and so it is only defined for
the system on which \fBsyslogd\fR is running. It can not be forwarded to other
systems.
diff --git a/usr/src/man/man2/mmapobj.2 b/usr/src/man/man2/mmapobj.2
index a8b2a25120..dd5a8a55fc 100644
--- a/usr/src/man/man2/mmapobj.2
+++ b/usr/src/man/man2/mmapobj.2
@@ -4,11 +4,10 @@
.\" 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 MMAPOBJ 2 "Dec 1, 2008"
+.TH MMAPOBJ 2 "June 20, 2021"
.SH NAME
mmapobj \- map a file object in the appropriate manner
.SH SYNOPSIS
-.LP
.nf
#include <sys/mman.h>
@@ -17,7 +16,6 @@ mmapobj \- map a file object in the appropriate manner
.fi
.SH PARAMETERS
-.sp
.ne 2
.na
\fB\fIfd\fR\fR
@@ -97,8 +95,6 @@ request. Only the \fBMMOBJ_PADDING\fR request uses this argument. If
.RE
.SH DESCRIPTION
-.sp
-.LP
The \fBmmapobj()\fR function establishes a set of mappings between a process's
address space and a file. By default, \fBmmapobj()\fR maps the whole file as a
single, private, read-only mapping. The \fBMMOBJ_INTERPRET\fR flag instructs
@@ -207,8 +203,6 @@ also include any non-file data that are required to provide \fBNOBITS\fR data
\fImr_msize\fR bytes of memory but only \fImr_msize\fR bytes will be available
to the caller of \fBmmapobj()\fR.
.SH RETURN VALUES
-.sp
-.LP
Upon successful completion, 0 is returned and \fIelements\fR contains the
number of program headers that are mapped for \fIfd\fR. The data describing
these elements are copied to storage such that the first \fIelements\fR members
@@ -218,8 +212,6 @@ of the storage array contain valid mapping data.
On failure, -1 is returned and \fBerrno\fR is set to indicate the error. No
data is copied to storage.
.SH ERRORS
-.sp
-.LP
The \fBmmapobj()\fR function will fail if:
.sp
.ne 2
@@ -290,7 +282,7 @@ address.
.RS 14n
The \fIflags\fR argument contains an invalid flag.
.sp
-\fBMMOBJ_PADDING\fR was not specified in \fIflags\fRand \fIarg\fR was non-null.
+\fBMMOBJ_PADDING\fR was not specified in \fIflags\fR and \fIarg\fR was non-null.
.RE
.sp
@@ -341,8 +333,6 @@ object.
.RE
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -359,8 +349,6 @@ MT-Level Async-Signal-Safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBld.so.1\fR(1), \fBfcntl\fR(2), \fBmemcntl\fR(2), \fBmmap\fR(2),
\fBmprotect\fR(2), \fBmunmap\fR(2), \fBelf\fR(3ELF), \fBmadvise\fR(3C),
\fBmlockall\fR(3C), \fBmsync\fR(3C), \fBa.out\fR(4), \fBattributes\fR(5)
diff --git a/usr/src/man/man3c/addsev.3c b/usr/src/man/man3c/addsev.3c
index b5cdb16a68..8708b51da9 100644
--- a/usr/src/man/man3c/addsev.3c
+++ b/usr/src/man/man3c/addsev.3c
@@ -3,11 +3,10 @@
.\" 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 ADDSEV 3C "Dec 29, 1996"
+.TH ADDSEV 3C "June 20, 2021"
.SH NAME
addsev \- define additional severities
.SH SYNOPSIS
-.LP
.nf
#include <pfmt.h>
@@ -15,8 +14,6 @@ addsev \- define additional severities
.fi
.SH DESCRIPTION
-.sp
-.LP
The \fBaddsev()\fR function defines additional severities for use in subsequent
calls to \fBpfmt\fR(3C) or \fBlfmt\fR(3C). It associates an integer value
\fIint_val\fR in the range [5-255] with a character \fIstring\fR, overwriting
@@ -27,19 +24,14 @@ If \fIint_val\fR is OR-ed with the \fIflags\fR argument passed to subsequent
calls to \fBpfmt()\fR or \fBlfmt()\fR, \fIstring\fR will be used as severity.
Passing a null \fIstring\fR removes the severity.
.SH RETURN VALUES
-.sp
-.LP
Upon successful completion, \fBaddsev()\fR returns \fB0\fR. Otherwise it
-returns\fB\(mi1\fR\&.
+returns \fB\(mi1\fR\&.
.SH USAGE
-.sp
-.LP
Only the standard severities are automatically displayed for the locale in
effect at runtime. An application must provide the means for displaying
locale-specific versions of add-on severities. Add-on severities are only
effective within the applications defining them.
.SH EXAMPLES
-.LP
\fBExample 1 \fRExample of \fBaddsev()\fR function.
.sp
.LP
@@ -69,8 +61,6 @@ APPL: PANIC: Cannot locate database
.in -2
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -85,6 +75,4 @@ MT-Level MT-safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBgettxt\fR(3C), \fBlfmt\fR(3C), \fBpfmt\fR(3C), \fBattributes\fR(5)
diff --git a/usr/src/man/man3c/drand48.3c b/usr/src/man/man3c/drand48.3c
index 92d303b1d4..a91e5a8877 100644
--- a/usr/src/man/man3c/drand48.3c
+++ b/usr/src/man/man3c/drand48.3c
@@ -4,12 +4,11 @@
.\" 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 DRAND48 3C "Feb 11, 2015"
+.TH DRAND48 3C "June 20, 2021"
.SH NAME
drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48
\- generate uniformly distributed pseudo-random numbers
.SH SYNOPSIS
-.LP
.nf
#include <stdlib.h>
@@ -57,7 +56,6 @@ drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48
.fi
.SH DESCRIPTION
-.LP
This family of functions generates pseudo-random numbers using the well-known
linear congruential algorithm and 48-bit integer arithmetic.
.sp
@@ -68,11 +66,11 @@ double-precision floating-point values uniformly distributed over the interval
.sp
.LP
Functions \fBlrand48()\fR and \fBnrand48()\fR return non-negative long integers
-uniformly distributed over the interval [0, 2 ^31 ].
+uniformly distributed over the interval [0, 2^31].
.sp
.LP
Functions \fBmrand48()\fR and \fBjrand48()\fR return signed long integers
-uniformly distributed over the interval [-2 ^31 , 2 ^31 ].
+uniformly distributed over the interval [-2^31, 2^31].
.sp
.LP
Functions \fBsrand48()\fR, \fBseed48()\fR, and \fBlcong48()\fR are
@@ -93,8 +91,8 @@ X(n+1)= (aX (n)+c)(mod m) n>=0.
.sp
.LP
The parameter \fIm\fR = 2^48; hence 48-bit integer arithmetic is performed.
-Unless \fBlcong48()\fR has been invoked, the multiplier value \fIa\fRand the
-addend value \fIc\fRare given by
+Unless \fBlcong48()\fR has been invoked, the multiplier value \fIa\fR and the
+addend value \fIc\fR are given by
.br
.in +2
\fIa\fR = 5DEECE66D(16) = 273673163155(8)
@@ -153,7 +151,6 @@ addend values, \fIa\fR and \fIc\fR, specified above.
.LP
For a more powerful random number generator, see \fBarc4random\fR(3C).
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -170,5 +167,4 @@ MT-Level Safe
.TE
.SH SEE ALSO
-.LP
\fBarc4random\fR(3C), \fBrand\fR(3C), \fBattributes\fR(5), \fBstandards\fR(5)
diff --git a/usr/src/man/man3c/getnetgrent.3c b/usr/src/man/man3c/getnetgrent.3c
index a404bbaad5..024064d633 100644
--- a/usr/src/man/man3c/getnetgrent.3c
+++ b/usr/src/man/man3c/getnetgrent.3c
@@ -8,7 +8,6 @@
getnetgrent, getnetgrent_r, setnetgrent, endnetgrent, innetgr \- get network
group entry
.SH SYNOPSIS
-.LP
.nf
#include <netdb.h>
@@ -38,7 +37,6 @@ group entry
.fi
.SH DESCRIPTION
-.LP
These functions are used to test membership in and enumerate members of
``netgroup'' network groups defined in a system database. Netgroups are sets
of (machine,user,domain) triples (see \fBnetgroup\fR(4)).
@@ -122,7 +120,6 @@ multiple threads interleave calls to \fBgetnetgrent_r()\fR each will enumerate
a disjoint subset of the netgroup. Thus the effective use of these functions in
multi-threaded applications may require coordination by the caller.
.SH ERRORS
-.LP
The function \fBgetnetgrent_r()\fR will return \fB0\fR and set \fBerrno\fR to
\fBERANGE\fR if the length of the buffer supplied by caller is not large enough
to store the result. See \fBIntro\fR(2) for the proper usage and
@@ -141,7 +138,6 @@ success.
.RE
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -156,18 +152,17 @@ MT-Level See \fBDESCRIPTION\fR section.
.TE
.SH SEE ALSO
-.LP
\fBIntro\fR(2), \fBIntro\fR(3), \fBnetgroup\fR(4), \fBnsswitch.conf\fR(4),
\fBattributes\fR(5)
.SH WARNINGS
-.LP
The function \fBgetnetgrent_r()\fR is included in this release on an
uncommitted basis only, and is subject to change or removal in future minor
releases.
.SH NOTES
-.LP
-Only the Network Information Services, \fBNIS\fR, is supported
-as a source for the \fBnetgroup\fR database.
+Network groups are usually stored in network information services,
+such as \fBLDAP\fR, or \fBNIS\fR, but may alternatively be stored in
+the local \fB/etc/netgroup\fR file. The \fBnetgroup\fR line of the
+\fBnsswitch.conf\fR(4) file determines which of those sources are used.
.sp
.LP
When compiling multi-threaded applications, see \fBIntro\fR(3), \fINotes On
diff --git a/usr/src/man/man3c/getwchar.3c b/usr/src/man/man3c/getwchar.3c
index d2f150ae2b..e9c48c1231 100644
--- a/usr/src/man/man3c/getwchar.3c
+++ b/usr/src/man/man3c/getwchar.3c
@@ -44,11 +44,10 @@
.\" Portions Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved
.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
.\"
-.TH GETWCHAR 3C "Jul 24, 2002"
+.TH GETWCHAR 3C "June 20, 2021"
.SH NAME
getwchar \- get wide character from stdin stream
.SH SYNOPSIS
-.LP
.nf
#include <wchar.h>
@@ -62,24 +61,19 @@ getwchar \- get wide character from stdin stream
\fBwint_t\fR \fBgetwchar_l\fR(locale_t loc)
.fi
.SH DESCRIPTION
-.LP
The \fBgetwchar()\fR function is equivalent to \fBgetwc\fR(\fBstdin\fR).
.LP
-The\fBgetwchar_l()\fR function is equivalent to \fBgetwc\fR(\fBstdin\fR, \fIloc\fR).
+The \fBgetwchar_l()\fR function is equivalent to \fBgetwc\fR(\fBstdin\fR, \fIloc\fR).
.SH RETURN VALUES
-.LP
Refer to \fBfgetwc\fR(3C).
.SH ERRORS
-.LP
Refer to \fBfgetwc\fR(3C).
.SH USAGE
-.LP
If the \fBwint_t\fR value returned by \fBgetwchar()\fR is stored into a
variable of type \fBwchar_t\fR and then compared against the \fBwint_t\fR macro
\fBWEOF\fR, the comparison may never succeed because \fBwchar_t\fR is defined
as unsigned.
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.TS
box;
@@ -96,5 +90,4 @@ MT-Level MT-Safe
The \fBgetwchar()\fR function is Standard. The \fBgetwchar_l()\fR function
is Uncommitted.
.SH SEE ALSO
-.LP
\fBfgetwc\fR(3C), \fBgetwc\fR(3C), \fBattributes\fR(5), \fBstandards\fR(5)
diff --git a/usr/src/man/man3c_db/td_thr_get_info.3c_db b/usr/src/man/man3c_db/td_thr_get_info.3c_db
index e0847529f6..69b5615548 100644
--- a/usr/src/man/man3c_db/td_thr_get_info.3c_db
+++ b/usr/src/man/man3c_db/td_thr_get_info.3c_db
@@ -3,11 +3,10 @@
.\" 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 TD_THR_GET_INFO 3C_DB "Oct 20, 1998"
+.TH TD_THR_GET_INFO 3C_DB "June 20, 2021"
.SH NAME
td_thr_get_info \- get thread information in libc_db library of interfaces
.SH SYNOPSIS
-.LP
.nf
cc [ \fIflag\fR... ] \fIfile\fR... -lc_db [ \fIlibrary\fR... ]
#include <proc_service.h>
@@ -17,10 +16,8 @@ cc [ \fIflag\fR... ] \fIfile\fR... -lc_db [ \fIlibrary\fR... ]
.fi
.SH DESCRIPTION
-.sp
-.LP
The \fBtd_thr_get_info()\fR function fills in the \fBtd_thrinfo_t\fR structure
-*\fIti_p\fR with values for the thread identified by \fIth_p\fR.
+*\fIti_p\fR with values for the thread identified by \fIth_p\fR.
.sp
.LP
The \fBtd_thrinfo_t\fR structure contains the following fields:
@@ -129,7 +126,7 @@ The \fBlibc_db\fR library cannot determine the state of the thread.
\fB\fBTD_THR_STOPPED\fR \fR
.ad
.RS 26n
-The thread has been stopped by a call to \fBthr_suspend\fR(3C).
+The thread has been stopped by a call to \fBthr_suspend\fR(3C).
.RE
.sp
@@ -147,7 +144,7 @@ The thread is runnable, but it is not currently assigned to an \fBLWP\fR.
\fB\fBTD_THR_ACTIVE\fR \fR
.ad
.RS 26n
-The thread is currently executing on an \fBLWP\fR.
+The thread is currently executing on an \fBLWP\fR.
.RE
.sp
@@ -175,7 +172,7 @@ The thread is not currently runnable.
\fB\fBTD_THR_STOPPED_ASLEEP\fR \fR
.ad
.RS 26n
-The thread is both blocked by \fBTD_THR_SLEEP\fR and stopped by a call to
+The thread is both blocked by \fBTD_THR_SLEEP\fR and stopped by a call to
\fBtd_thr_dbsuspend\fR(3C_DB).
.RE
@@ -212,8 +209,8 @@ The \fBti_pri\fR member is the thread's priority as it would be returned by
.sp
.LP
The \fBti_lid\fR member is the ID of the \fBLWP\fR executing this thread, or
-the ID of the \fBLWP\fR that last executed this thread, if this thread is not
-currently assigned to an\fBLWP\fR.
+the ID of the \fBLWP\fR that last executed this thread, if this thread is not
+currently assigned to an \fBLWP\fR.
.sp
.LP
The \fBti_sigmask\fR member is this thread's signal mask. See
@@ -235,7 +232,6 @@ regular priority.
.LP
The \fBti_events\fR member is the bitmap of events enabled for this thread.
.SH RETURN VALUES
-.sp
.ne 2
.na
\fB\fBTD_OK\fR\fR
@@ -272,8 +268,6 @@ The call did not complete successfully.
.RE
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for description of the following attributes:
.sp
@@ -288,8 +282,6 @@ MT-Level Safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBlibc_db\fR(3LIB), \fBtd_ta_thr_iter\fR(3C_DB),
\fBtd_thr_dbsuspend\fR(3C_DB), \fBthr_create\fR(3C), \fBthr_getprio\fR(3C),
\fBthr_join\fR(3C), \fBthr_sigsetmask\fR(3C), \fBthr_suspend\fR(3C),
diff --git a/usr/src/man/man3gss/gss_display_status.3gss b/usr/src/man/man3gss/gss_display_status.3gss
index d4cd0193ef..a5a521879b 100644
--- a/usr/src/man/man3gss/gss_display_status.3gss
+++ b/usr/src/man/man3gss/gss_display_status.3gss
@@ -3,11 +3,10 @@
.\" 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 GSS_DISPLAY_STATUS 3GSS "Jan 14, 2003"
+.TH GSS_DISPLAY_STATUS 3GSS "June 20, 2021"
.SH NAME
gss_display_status \- convert a GSS-API status code to text
.SH SYNOPSIS
-.LP
.nf
\fBcc\fR [ \fIflag\fR... ] \fIfile\fR... \fB-lgss\fR [ \fIlibrary\fR... ]
#include <gssapi/gssapi.h>
@@ -19,8 +18,6 @@ gss_display_status \- convert a GSS-API status code to text
.fi
.SH DESCRIPTION
-.sp
-.LP
The \fBgss_display_status()\fR function enables an application to obtain a
textual representation of a \fBGSS-API\fR status code for display to the user
or for logging purposes. Because some status values may indicate multiple
@@ -36,14 +33,12 @@ will return a non-zero value in this parameter if there are further messages to
extract.
.sp
.LP
-The \fImessage_context\fR parameter contains all state information required by
+The \fImessage_context\fR parameter contains all state information required by
\fBgss_display_status()\fR to extract further messages from the
\fIstatus_value\fR. If a non-zero value is returned in this parameter, the
application is not required to call \fBgss_display_status()\fR again unless
subsequent messages are desired.
.SH PARAMETERS
-.sp
-.LP
The parameter descriptions for \fBgss_display_status()\fR follow:
.sp
.ne 2
@@ -95,7 +90,7 @@ Should be initialized to zero prior to the first call. On return from
that additional messages may be extracted from the status code by means of
subsequent calls to \fBgss_display_status()\fR, passing the same
\fIstatus_value\fR, \fIstatus_type\fR, \fImech_type\fR, and
-\fImessage_context\fRparameters.
+\fImessage_context\fR parameters.
.RE
.sp
@@ -110,8 +105,6 @@ parameter must be freed by the application after use with a call to
.RE
.SH ERRORS
-.sp
-.LP
The \fBgss_display_status()\fR function may return the following status codes:
.sp
.ne 2
@@ -154,9 +147,7 @@ of the \fIminor_status\fR parameter details the error condition.
.RE
.SH ATTRIBUTES
-.sp
-.LP
-See \fBattributes\fR(5) for descriptions of the following attributes:
+See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
.sp
@@ -170,8 +161,6 @@ MT-Level Safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBgss_acquire_cred\fR(3GSS), \fBgss_release_buffer\fR(3GSS),
\fBattributes\fR(5)
.sp
diff --git a/usr/src/man/man3ldap/ldap_entry2text.3ldap b/usr/src/man/man3ldap/ldap_entry2text.3ldap
index 81e54e3006..bc67cfb587 100644
--- a/usr/src/man/man3ldap/ldap_entry2text.3ldap
+++ b/usr/src/man/man3ldap/ldap_entry2text.3ldap
@@ -4,13 +4,12 @@
.\" 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 LDAP_ENTRY2TEXT 3LDAP "Jan 27, 2002"
+.TH LDAP_ENTRY2TEXT 3LDAP "June 20, 2021"
.SH NAME
ldap_entry2text, ldap_entry2text_search, ldap_entry2html,
ldap_entry2html_search, ldap_vals2html, ldap_vals2text \- LDAP entry display
functions
.SH SYNOPSIS
-.LP
.nf
cc[ \fIflag\fR... ] \fIfile\fR... -lldap[ \fIlibrary\fR... ]
#include <lber.h>
@@ -78,8 +77,6 @@ cc[ \fIflag\fR... ] \fIfile\fR... -lldap[ \fIlibrary\fR... ]
.fi
.SH DESCRIPTION
-.sp
-.LP
These functions use the LDAP display template functions (see
\fBldap_disptmpl\fR(3LDAP) and \fBldaptemplates.conf\fR(4)) to produce a
plain text or an HyperText Markup Language (HTML) display of an entry or a set
@@ -152,13 +149,13 @@ HTML document.
.sp
.LP
\fBldap_entry2text_search()\fR is similar to \fBldap_entry2text\fR, and all of
-the like-named parameters have the same meaning except as noted below. If
+the like-named parameters have the same meaning except as noted below. If
\fIbase\fR is not \fINULL\fR, it is the search base to use when executing
search actions. If it is \fINULL\fR, search action template items are ignored.
If \fIentry\fR is not \fINULL\fR, it should contain the \fIobjectClass\fR
attribute values for the entry to be displayed. If \fIentry\fR is \fINULL\fR,
-\fIdn\fR must not be \fINULL\fR, and \fBldap_entry2text_search\fR will
-retrieve the \fBobjectClass\fR values itself by calling \fBldap_search_s.\fR
+\fIdn\fR must not be \fINULL\fR, and \fBldap_entry2text_search\fR will
+retrieve the \fBobjectClass\fR values itself by calling \fBldap_search_s.\fR
\fBldap_entry2text_search\fR will determine the appropriate display template to
use by calling \fBldap_oc2template\fR, and will call \fBldap_search_s\fR to
retrieve any attribute values to be displayed. The \fItmpllist\fR parameter is
@@ -178,7 +175,7 @@ string shown next to the values (usually a friendly form of an LDAP attribute
name). \fIlabelwidth\fR specifies the label margin, which is the number of
blank spaces displayed to the left of the values. If zero is passed, a default
label width is used. \fIsyntaxid\fR is a display template attribute syntax
-identifier (see \fBldap_disptmpl\fR(3LDAP) for a list of the pre-defined
+identifier (see \fBldap_disptmpl\fR(3LDAP) for a list of the pre-defined
\fBLDAP_SYN_...\fR values).
.sp
.LP
@@ -187,7 +184,7 @@ behaves exactly like ldap_entry2text(3LDAP), except for the formatted output
and the addition of two parameters. \fIurlprefix\fR is the starting text to use
when constructing an LDAP URL. The default is the string \fIldap:///\fR The
second additional parameter, \fIbase,\fR the search base to use when executing
-search actions. If it is \fINULL\fR, search action template items are
+search actions. If it is \fINULL\fR, search action template items are
ignored.
.sp
.LP
@@ -198,22 +195,16 @@ when constructing an LDAP URL. The default is the string \fIldap:///\fR
.sp
.LP
\fBldap_vals2html\fR behaves exactly like
-\fBldap_vals2text\fR,\fBexcept\fRHTML\fBoutput\fRis and one additional
+\fBldap_vals2text\fR, except HTML output is produced and one additional
parameter is required. \fIurlprefix\fR is the starting text to use when
constructing an LDAP URL. The default is the string \fIldap:///\fR
.SH ERRORS
-.sp
-.LP
These functions all return an LDAP error code. \fBLDAP_SUCCESS\fR is returned
if no error occurs. See \fBldap_error\fR(3LDAP) for details. The \fIld_errno\fR
field of the \fIld\fR parameter is also set to indicate the error.
.SH FILES
-.sp
-.LP
\fBETCDIR/ldaptemplates.conf\fR
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for a description of the following attributes:
.sp
@@ -227,7 +218,5 @@ Interface Stability Evolving
.TE
.SH SEE ALSO
-.sp
-.LP
\fBldap\fR(3LDAP), \fBldap_disptmpl\fR(3LDAP), \fBldaptemplates.conf\fR(4) ,
\fBattributes\fR(5)
diff --git a/usr/src/man/man3m/fex_set_log.3m b/usr/src/man/man3m/fex_set_log.3m
index 13f774228f..80ff310d3d 100644
--- a/usr/src/man/man3m/fex_set_log.3m
+++ b/usr/src/man/man3m/fex_set_log.3m
@@ -3,12 +3,11 @@
.\" 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 FEX_SET_LOG 3M "Jul 12, 2006" "SunOS 5.11" "Mathematical Library Functions"
+.TH FEX_SET_LOG 3M "June 20, 2021" "SunOS 5.11" "Mathematical Library Functions"
.SH NAME
fex_set_log, fex_get_log, fex_set_log_depth, fex_get_log_depth, fex_log_entry
\- log retrospective diagnostics for floating point exceptions
.SH SYNOPSIS
-.LP
.nf
c99 [ \fIflag\fR... ] \fIfile\fR... -lm [ \fIlibrary\fR... ]
#include <fenv.h>
@@ -37,8 +36,6 @@ c99 [ \fIflag\fR... ] \fIfile\fR... -lm [ \fIlibrary\fR... ]
.fi
.SH DESCRIPTION
-.sp
-.LP
The \fBfex_set_log()\fR function enables logging of retrospective diagnostic
messages regarding floating point exceptions to the file specified by \fIfp\fR.
If \fIfp\fR is \fINULL\fR, logging is disabled. When a program starts, logging
@@ -47,7 +44,7 @@ is initially disabled.
.LP
The occurrence of any of the twelve exceptions listed in
\fBfex_set_handling\fR(3M) constitutes an event that can be logged. To prevent
-the log from becoming exhorbitantly long, the logging mechanism eliminates
+the log from becoming exorbitantly long, the logging mechanism eliminates
redundant entries by two methods. First, each exception is associated with a
\fIsite\fR in the program. The site is identified by the address of the
instruction that caused the exception together with a stack trace. Only the
@@ -81,12 +78,12 @@ stack trace are followed by the names of the corresponding symbols.
The \fBfex_get_log()\fR function returns the current log file.
.sp
.LP
-The \fBfex_set_log_depth()\fR sets the maximum depth of the stack trace
+The \fBfex_set_log_depth()\fR function sets the maximum depth of the stack trace
recorded with each exception to \fIdepth\fR stack frames. The default depth is
100.
.sp
.LP
-The\fBfex_get_log_depth()\fR function returns the current maximum stack trace
+The \fBfex_get_log_depth()\fR function returns the current maximum stack trace
depth.
.sp
.LP
@@ -98,15 +95,11 @@ requested from a given site will be logged. For the purpose of a user-supplied
entry, the site is defined only by the stack trace, which begins with the
function that called \fBfex_log_entry()\fR.
.SH RETURN VALUES
-.sp
-.LP
The \fBfex_set_log()\fR function returns a non-zero value if logging is enabled
or disabled accordingly and returns 0 otherwise. The \fBfex_set_log_depth()\fR
returns a non-zero value if the requested stack trace depth is established
(regardless of whether logging is enabled) and returns 0 otherwise.
.SH EXAMPLES
-.sp
-.LP
The following example demonstrates the output generated when a floating point
overflow occurs in \fBsscanf\fR(3C).
.sp
@@ -156,8 +149,6 @@ n, nonstop mode
Recompiling the program or running it on another system can produce different
text addresses from those shown above.
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -174,16 +165,12 @@ MT-Level MT-Safe (see NOTES)
.TE
.SH SEE ALSO
-.sp
-.LP
\fBfeclearexcept\fR(3M), \fBfegetenv\fR(3M), \fBferaiseexcept\fR(3M),
\fBfeupdateenv\fR(3M), \fBfex_set_handling\fR(3M), \fBattributes\fR(5)
.sp
.LP
\fINumerical Computation Guide\fR
.SH NOTES
-.sp
-.LP
All threads in a process share the same log file. Each call to
\fBfex_set_log()\fR preempts the previous one.
.sp
@@ -192,7 +179,7 @@ In addition to the log file itself, two additional file descriptors are used
during the creation of a log entry in order to obtain symbol names from the
executable and any shared objects it uses. These file descriptors are
relinquished once the log entry is written. If the file descriptors cannot be
-allocated, symbols names are omitted from the stack trace.
+allocated, symbol names are omitted from the stack trace.
.sp
.LP
The functions described on this page automatically install and deinstall
diff --git a/usr/src/man/man3m/modf.3m b/usr/src/man/man3m/modf.3m
index 6cf1b7a46e..3a830d64e6 100644
--- a/usr/src/man/man3m/modf.3m
+++ b/usr/src/man/man3m/modf.3m
@@ -44,11 +44,10 @@
.\" Copyright (c) 2001, The IEEE and The Open Group. All Rights Reserved.
.\" Portions Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
.\"
-.TH MODF 3M "Jul 12, 2006" "SunOS 5.11" "Mathematical Library Functions"
+.TH MODF 3M "June 20, 2021" "SunOS 5.11" "Mathematical Library Functions"
.SH NAME
modf, modff, modfl \- decompose floating-point number
.SH SYNOPSIS
-.LP
.nf
c99 [ \fIflag\fR... ] \fIfile\fR... \fB-lm\fR [ \fIlibrary\fR... ]
#include <math.h>
@@ -67,16 +66,12 @@ c99 [ \fIflag\fR... ] \fIfile\fR... \fB-lm\fR [ \fIlibrary\fR... ]
.fi
.SH DESCRIPTION
-.sp
-.LP
These functions break the argument \fIx\fR into integral and fractional parts,
each of which has the same sign as the argument. It stores the integral part as
a \fBdouble\fR for the \fBmodf()\fR function, a float for the \fBmodff()\fR
-function, or a long double for the\fBmodfl()\fR function in the object pointed
+function, or a long double for the \fBmodfl()\fR function in the object pointed
to by \fIiptr\fR.
.SH RETURN VALUES
-.sp
-.LP
Upon successful completion, these functions return the signed fractional part
of \fIx\fR.
.sp
@@ -86,12 +81,8 @@ If \fIx\fR is NaN, a NaN is returned and *\fIiptr\fR is set to NaN.
.LP
If \fIx\fR is \(+-Inf, \(+-0 is returned and *\fIiptr\fR is set to \(+-Inf.
.SH ERRORS
-.sp
-.LP
No errors are defined.
.SH USAGE
-.sp
-.LP
These functions compute the function result and *\fIiptr\fR such that:
.sp
.in +2
@@ -102,8 +93,6 @@ x == a+*iptr ;
.in -2
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -121,7 +110,5 @@ MT-Level MT-Safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBfrexp\fR(3M), \fBisnan\fR(3M), \fBldexp\fR(3M), \fBattributes\fR(5),
\fBstandards\fR(5)
diff --git a/usr/src/man/man3pam/pam_sm_open_session.3pam b/usr/src/man/man3pam/pam_sm_open_session.3pam
index 85d76caeaf..10d1814374 100644
--- a/usr/src/man/man3pam/pam_sm_open_session.3pam
+++ b/usr/src/man/man3pam/pam_sm_open_session.3pam
@@ -3,12 +3,11 @@
.\" 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 PAM_SM_OPEN_SESSION 3PAM "Oct 13, 1998"
+.TH PAM_SM_OPEN_SESSION 3PAM "June 20, 2021"
.SH NAME
pam_sm_open_session, pam_sm_close_session \- service provider implementation
for pam_open_session and pam_close_session
.SH SYNOPSIS
-.LP
.nf
\fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lpam\fR [ \fIlibrary\fR ... ]
#include <security/pam_appl.h>
@@ -27,17 +26,15 @@ for pam_open_session and pam_close_session
.fi
.SH DESCRIPTION
-.sp
-.LP
In response to a call to \fBpam_open_session\fR(3PAM) and
-\fBpam_close_session\fR(3PAM), the \fBPAM\fR framework calls
+\fBpam_close_session\fR(3PAM), the \fBPAM\fR framework calls
\fBpam_sm_open_session()\fR and \fBpam_sm_close_session()\fR, respectively from
the modules listed in the \fBpam.conf\fR(4) file. The session management
provider supplies the back-end functionality for this interface function.
.sp
.LP
The \fBpam_sm_open_session()\fR function is called to initiate session
-management. The\fBpam_sm_close_session()\fR function is invoked when a session
+management. The \fBpam_sm_close_session()\fR function is invoked when a session
has terminated. The argument \fIpamh\fR is an authentication handle. The
following flag may be set in the \fIflags\fR field:
.sp
@@ -57,9 +54,7 @@ options, which are interpreted and processed by the session management service.
If an unknown option is passed in, an error should be logged through
\fBsyslog\fR(3C) and the option ignored.
.SH RETURN VALUES
-.sp
-.LP
-Upon successful completion, \fBPAM_SUCCESS\fR should be returned. The
+Upon successful completion, \fBPAM_SUCCESS\fR should be returned. The
following values may also be returned upon error:
.sp
.ne 2
@@ -76,13 +71,11 @@ Cannot make or remove an entry for the specified session.
\fB\fBPAM_IGNORE\fR\fR
.ad
.RS 19n
-Ignore underlying session module regardless of whether the control flag is
+Ignore underlying session module regardless of whether the control flag is
\fIrequired\fR, \fIoptional\fR or \fIsufficient\fR.
.RE
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for description of the following attributes:
.sp
@@ -99,12 +92,8 @@ MT-Level MT-Safe with exceptions
.TE
.SH SEE ALSO
-.sp
-.LP
\fBpam\fR(3PAM), \fBpam_open_session\fR(3PAM), \fBsyslog\fR(3C),
\fBlibpam\fR(3LIB), \fBpam.conf\fR(4), \fBattributes\fR(5)
.SH NOTES
-.sp
-.LP
-The interfaces in \fBlibpam\fR are MT-Safe only if each thread within the
-multithreaded application uses its own \fBPAM\fR handle.
+The interfaces in \fBlibpam\fR are MT-Safe only if each thread within the
+multithreaded application uses its own \fBPAM\fR handle.
diff --git a/usr/src/man/man3sasl/sasl_set_alloc.3sasl b/usr/src/man/man3sasl/sasl_set_alloc.3sasl
index b22e71edf3..15ec8dd522 100644
--- a/usr/src/man/man3sasl/sasl_set_alloc.3sasl
+++ b/usr/src/man/man3sasl/sasl_set_alloc.3sasl
@@ -5,11 +5,10 @@
.\" 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 SASL_SET_ALLOC 3SASL "Oct 22, 2003"
+.TH SASL_SET_ALLOC 3SASL "June 20, 2021"
.SH NAME
sasl_set_alloc \- set the memory allocation functions used by the SASL library
.SH SYNOPSIS
-.LP
.nf
\fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lsasl\fR [ \fIlibrary\fR ... ]
#include <sasl/sasl.h>
@@ -19,12 +18,9 @@ sasl_set_alloc \- set the memory allocation functions used by the SASL library
.fi
.SH DESCRIPTION
-.sp
-.LP
Use the \fBsasl_set_alloc()\fR interface to set the memory allocation routines
that the SASL library and plug-ins will use.
.SH PARAMETERS
-.sp
.ne 2
.na
\fB\fIc\fR\fR
@@ -48,7 +44,7 @@ A pointer to a \fBfree()\fR function
\fB\fIm\fR\fR
.ad
.RS 5n
-A pointer to a\fBmalloc()\fR function
+A pointer to a \fBmalloc()\fR function
.RE
.sp
@@ -61,12 +57,8 @@ A pointer to a \fBrealloc()\fR function
.RE
.SH RETURN VALUES
-.sp
-.LP
\fBsasl_set_alloc()\fR has no return values.
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -83,11 +75,7 @@ MT-Level Unsafe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBattributes\fR(5)
.SH NOTES
-.sp
-.LP
While most of \fBlibsasl\fR is MT-Safe, \fBsasl_set_*\fR modifies the global
state and should be considered Unsafe.
diff --git a/usr/src/man/man3sasl/sasl_version.3sasl b/usr/src/man/man3sasl/sasl_version.3sasl
index 0c11f0ea47..397d16c8dd 100644
--- a/usr/src/man/man3sasl/sasl_version.3sasl
+++ b/usr/src/man/man3sasl/sasl_version.3sasl
@@ -5,11 +5,10 @@
.\" 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 SASL_VERSION 3SASL "Oct 14, 2003"
+.TH SASL_VERSION 3SASL "June 20, 2021"
.SH NAME
sasl_version \- get SASL library version information
.SH SYNOPSIS
-.LP
.nf
\fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-lsasl\fR [ \fIlibrary\fR ... ]
#include <sasl/sasl.h>
@@ -18,19 +17,16 @@ sasl_version \- get SASL library version information
.fi
.SH DESCRIPTION
-.sp
-.LP
Use the \fBsasl_version()\fR interface to obtain the version of the SASL
library.
.SH PARAMETERS
-.sp
.ne 2
.na
\fB\fIimplementation\fR\fR
.ad
.RS 18n
A vendor-defined string that describes the implementation. The value of
-\fIimplementation\fRreturned is \fBSun SASL\fR.
+\fIimplementation\fR returned is \fBSun SASL\fR.
.RE
.sp
@@ -43,12 +39,8 @@ A vendor-defined represetation of the version number.
.RE
.SH RETURN VALUES
-.sp
-.LP
The \fBsasl_version()\fR interface has no return values.
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -65,6 +57,4 @@ MT-Level MT-Safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBattributes\fR(5)
diff --git a/usr/src/man/man3scf/scf_simple_prop_get.3scf b/usr/src/man/man3scf/scf_simple_prop_get.3scf
index 5726bf8f13..1fdcc0e29f 100644
--- a/usr/src/man/man3scf/scf_simple_prop_get.3scf
+++ b/usr/src/man/man3scf/scf_simple_prop_get.3scf
@@ -3,7 +3,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 SCF_SIMPLE_PROP_GET 3SCF "Nov 7, 2007"
+.TH SCF_SIMPLE_PROP_GET 3SCF "June 20, 2021"
.SH NAME
scf_simple_prop_get, scf_simple_prop_free, scf_simple_app_props_get,
scf_simple_app_props_free, scf_simple_app_props_next,
@@ -15,7 +15,6 @@ scf_simple_prop_next_ustring, scf_simple_prop_next_opaque,
scf_simple_prop_next_reset \- simplified property read interface to Service
Configuration Facility
.SH SYNOPSIS
-.LP
.nf
cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lscf\fR [ \fIlibrary\fR\&.\|.\|. ]
#include <libscf.h>
@@ -116,8 +115,6 @@ cc [ \fIflag\fR\&.\|.\|. ] \fIfile\fR\&.\|.\|. \fB-lscf\fR [ \fIlibrary\fR\&.\|.
.fi
.SH DESCRIPTION
-.sp
-.LP
The simplified read interface to the Service Configuration Facility deals with
properties and blocks of properties.
.sp
@@ -182,7 +179,7 @@ reference into the \fBscf_simple_app_props_t\fR, its lifetime extends only
until that structure is freed.
.sp
.LP
-The\fBscf_simple_app_props_search()\fR function queries for an exact match on a
+The \fBscf_simple_app_props_search()\fR function queries for an exact match on a
property in a property group. It takes an apps prop object, a property group
name, and a property name, and returns a property pointer. Because the property
is a reference into the \fBscf_simple_app_props_t\fR, its lifetime extends only
@@ -230,8 +227,6 @@ The \fBscf_simple_prop_next_reset()\fR function resets iteration on a property,
so that a call to one of the \fBscf_simple_prop_next_*()\fR functions returns
the first value in the property.
.SH RETURN VALUES
-.sp
-.LP
Upon successful completion, \fBscf_simple_prop_get()\fR returns a pointer to an
allocated \fBscf_simple_prop_t\fR. Otherwise, it returns \fINULL\fR.
.sp
@@ -269,8 +264,6 @@ return a pointer to the next value in the property. After all values have been
returned, NULL is returned and \fBSCF_ERROR_NONE\fR is set. On failure,
\fINULL\fR is returned and the appropriate error value is set.
.SH ERRORS
-.sp
-.LP
The \fBscf_simple_prop_get()\fR and \fBscf_simple_app_props_get()\fR functions
will fail if:
.sp
@@ -405,7 +398,6 @@ The requested type does not match the property type.
.RE
.SH EXAMPLES
-.LP
\fBExample 1 \fRSimple Property Get
.sp
.in +2
@@ -514,8 +506,6 @@ scf_simple_app_props_free(appprops);
.in -2
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -532,6 +522,4 @@ MT-Level Safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBlibscf\fR(3LIB), \fBscf_error\fR(3SCF), \fBattributes\fR(5)
diff --git a/usr/src/man/man3slp/slp_api.3slp b/usr/src/man/man3slp/slp_api.3slp
index 0724784449..b8975ab55d 100644
--- a/usr/src/man/man3slp/slp_api.3slp
+++ b/usr/src/man/man3slp/slp_api.3slp
@@ -3,25 +3,22 @@
.\" 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 SLP_API 3SLP "Jan 16, 2003"
+.TH SLP_API 3SLP "June 20, 2021"
.SH NAME
slp_api \- Service Location Protocol Application Programming Interface
.SH SYNOPSIS
-.LP
.nf
\fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-l\fRslp [ \fIlibrary\fR ... ]
#include <slp.h>
.fi
.SH DESCRIPTION
-.sp
-.LP
-The \fBslp_api\fR is a C language binding that maps directly into the
-Service Location Protocol ("\fBSLP\fR") defined by \fIRFC 2614\fR. This
-implementation requires minimal overhead. With the exception of the
-\fBSLPDereg()\fR and \fBSLPDelAttrs()\fR functions, which map into different
-uses of the \fBSLP\fR deregister request, there is one C language
-function per protocol request. Parameters are for the most part character
+The \fBslp_api\fR is a C language binding that maps directly into the
+Service Location Protocol ("\fBSLP\fR") defined by \fIRFC 2614\fR. This
+implementation requires minimal overhead. With the exception of the
+\fBSLPDereg()\fR and \fBSLPDelAttrs()\fR functions, which map into different
+uses of the \fBSLP\fR deregister request, there is one C language
+function per protocol request. Parameters are for the most part character
buffers. Memory management is kept simple because the client allocates most
memory and client callback functions are required to copy incoming parameters
into memory allocated by the client code. Any memory returned directly from the
@@ -43,15 +40,13 @@ non-\fINULL\fR. Some parameters may have other restrictions. If any parameter
fails to satisfy the restrictions on its value, the operation returns a
\fBPARAMETER_BAD\fR error.
.SS "Syntax for String Parameters"
-.sp
-.LP
Query strings, attribute registration lists, attribute deregistration lists,
scope lists, and attribute selection lists follow the syntax described in
\fIRFC 2608\fR. The \fBAPI\fR reflects the strings passed from clients directly
-into protocol requests, and reflects out strings returned from protocol
+into protocol requests, and reflects out strings returned from protocol
replies directly to clients. As a consequence, clients are responsible for
formatting request strings, including escaping and converting opaque values to
-escaped byte-encoded strings. Similarly, on output, clients are required to
+escaped byte-encoded strings. Similarly, on output, clients are required to
unescape strings and convert escaped string-encoded opaques to binary. The
\fBSLPEscape()\fR and \fBSLPUnescape()\fR functions can be used for escaping
\fBSLP\fR reserved characters, but they perform no opaque processing.
@@ -65,8 +60,6 @@ consists of a backslash followed by the two hexadecimal digits encoding the
byte. An example is "\fB\e2c\fR" for the byte \fB0x2c\fR. Clients handle opaque
processing themselves, since the algorithm is relatively simple and uniform.
.SS "System Properties"
-.sp
-.LP
The system properties established in \fBslp.conf\fR(4), the configuration file,
are accessible through the \fBSLPGetProperty()\fR and \fBSLPSetProperty()\fR
functions. The \fBSLPSetProperty()\fR function modifies properties only in the
@@ -75,7 +68,7 @@ property is used and, as with parsing the configuration file, are logged at the
\fBLOG_INFO\fR priority. Program execution continues without interruption by
substituting the default for the erroneous parameter. In general, individual
agents should rarely be required to override these properties, since they
-reflect properties of the \fBSLP\fR network that are not of concern to
+reflect properties of the \fBSLP\fR network that are not of concern to
individual agents. If changes are required, system administrators should modify
the configuration file.
.sp
@@ -83,8 +76,6 @@ the configuration file.
Properties are global to the process, affecting all threads and all handles
created with \fBSLPOpen()\fR.
.SS "Memory Management"
-.sp
-.LP
The only \fBAPI\fR functions that return memory specifically requiring
deallocation on the part of the client are \fBSLPParseSrvURL()\fR,
\fBSLPFindScope()\fR, \fBSLPEscape()\fR, and \fBSLPUnescape()\fR. Free this
@@ -97,8 +88,6 @@ retained by the client code. Otherwise, crashes are possible. Clients must copy
data out of the callback parameters. No other use of the memory in callback
parameters is allowed.
.SS "Asynchronous and Incremental Return Semantics"
-.sp
-.LP
If a handle parameter to an \fBAPI\fR function is opened asynchronously, the
\fBAPI\fR function calls on the handle to check the other parameters, opens the
appropriate operation, and returns immediately. If an error occurs in the
@@ -112,7 +101,7 @@ occurred during the operation.
The callback function is called whenever the \fBAPI\fR library has results to
report. The callback code is required to check the error code parameter before
looking at the other parameters. If the error code is not \fBSLP_OK\fR, the
-other parameters may be \fINULL\fR or otherwise invalid. The \fBAPI\fR library
+other parameters may be \fINULL\fR or otherwise invalid. The \fBAPI\fR library
can terminate any outstanding operation on which an error occurs. The callback
code can similarly indicate that the operation should be terminated by passing
back \fBSLP_FALSE\fR to indicate that it is not interested in receiving more
@@ -172,19 +161,14 @@ replies has been collected and returned.
.RE
.SS "Configuration Files"
-.sp
-.LP
The \fBAPI\fR library reads \fBslp.conf\fR(4), the default configuration file,
to obtain the operating parameters. You can specify the location of this file
with the \fBSLP_CONF_FILE\fR environment variable. If you do not set this
variable, or the file it refers to is invalid, the \fBAPI\fR will use the
default configuration file at \fB/etc/inet/slp.conf\fR instead.
.SS "Data Structures"
-.sp
-.LP
The data structures used by the \fBSLP\fR \fBAPI\fR are as follows:
.SS "The URL Lifetime Type"
-.sp
.in +2
.nf
typedef enum {
@@ -196,14 +180,13 @@ typedef enum {
.sp
.LP
-The enumeration \fBSLPURLLifetime\fR contains \fBURL\fR lifetime values, in
+The enumeration \fBSLPURLLifetime\fR contains \fBURL\fR lifetime values, in
seconds, that are frequently used. \fBSLP_LIFETIME_DEFAULT\fR is 3 hours, while
-\fBSLP_LIFETIME_MAXIMUM\fR is 18 hours, which corresponds to the maximum size
+\fBSLP_LIFETIME_MAXIMUM\fR is 18 hours, which corresponds to the maximum size
of the \fBlifetime\fR field in \fBSLP\fR messages. Note that on registration
\fBSLP_LIFETIME_MAXIMUM\fR causes the advertisement to be continually
reregistered until the process exits.
.SS "The SLPBoolean Type"
-.sp
.in +2
.nf
typedef enum {
@@ -217,7 +200,6 @@ typedef enum {
.LP
The enumeration \fBSLPBoolean\fR is used as a Boolean flag.
.SS "The Service URL Structure"
-.sp
.in +2
.nf
typedef struct srvurl {
@@ -291,7 +273,6 @@ differentiation of the service.
.RE
.SS "The SLPHandle"
-.sp
.in +2
.nf
typedef void* SLPHandle;
@@ -304,8 +285,6 @@ The \fBSLPHandle\fR type is returned by \fBSLPOpen()\fR and is a parameter to
all \fBSLP\fR functions. It serves as a handle for all resources allocated on
behalf of the process by the \fBSLP\fR library. The type is opaque.
.SS "Callbacks"
-.sp
-.LP
Include a function pointer to a callback function specific to a particular
\fBAPI\fR operation in the parameter list when the \fBAPI\fR function is
invoked. The callback function is called with the results of the operation in
@@ -327,7 +306,6 @@ should continue processing the operation. If the value returned from the
callback is \fBSLP_TRUE\fR, asynchronous operations are terminated. Synchronous
operations ignore the return since the operation is already complete.
.SS "\fBSLPRegReport()\fR"
-.sp
.in +2
.nf
typedef void SLPRegReport(SLPHandle hSLP,
@@ -347,7 +325,7 @@ callback has the following parameters:
\fB\fIhSLP\fR\fR
.ad
.RS 12n
-The\fBSLPHandle()\fR used to initiate the operation.
+The \fBSLPHandle()\fR used to initiate the operation.
.RE
.sp
@@ -370,7 +348,6 @@ function, starting the operation. It may be \fINULL\fR.
.RE
.SS "\fBSLPSrvTypeCallback()\fR"
-.sp
.in +2
.nf
typedef SLPBoolean SLPSrvTypeCallback(SLPHandle hSLP,
@@ -423,12 +400,11 @@ terminate the outstanding operation.
\fB\fIpvCookie\fR\fR
.ad
.RS 14n
-emory passed down from the client code that called the original \fBAPI\fR
+Memory passed down from the client code that called the original \fBAPI\fR
function, starting the operation. It can be \fINULL\fR.
.RE
.SS "SLPSrvURLCallback"
-.sp
.in +2
.nf
typedef SLPBoolean SLPSrvURLCallback(SLPHandle hSLP,
@@ -496,7 +472,6 @@ function, starting the operation. It can be \fINULL\fR.
.RE
.SS "SLPAttrCallback"
-.sp
.in +2
.nf
typedef SLPBoolean SLPAttrCallback(SLPHandle hSLP,
@@ -575,8 +550,6 @@ function, starting the operation. It can be \fINULL\fR.
.RE
.SH ERRORS
-.sp
-.LP
An interface that is part of the \fBSLP\fR \fBAPI\fR may return one of the
following values.
.sp
@@ -741,7 +714,7 @@ If the network cannot initialize properly, this error is returned.
\fB\fBSLP_MEMORY_ALLOC_FAILED\fR\fR
.ad
.RS 30n
-If the \fBAPI\fR fails to allocate memory, the operationis aborted and returns
+If the \fBAPI\fR fails to allocate memory, the operation is aborted and returns
this.
.RE
@@ -751,7 +724,7 @@ this.
\fB\fBSLP_PARAMETER_BAD\fR\fR
.ad
.RS 30n
-If a parameter passed into an interface is bad, this error is returned.
+If a parameter passed into an interface is bad, this error is returned.
.RE
.sp
@@ -787,7 +760,6 @@ If an attempt is made to do so, this error is returned from the called
.RE
.SH LIST OF ROUTINES
-.sp
.ne 2
.na
\fB\fBSLPOpen()\fR\fR
@@ -941,12 +913,8 @@ free memory
.RE
.SH ENVIRONMENT VARIABLES
-.sp
-.LP
When \fBSLP_CONF_FILE\fR is set, use this file for configuration.
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -963,8 +931,6 @@ MT-Level Safe
.TE
.SH SEE ALSO
-.sp
-.LP
\fBslpd\fR(1M), \fBslp.conf\fR(4), \fBslpd.reg\fR(4), \fBattributes\fR(5)
.sp
.LP
diff --git a/usr/src/man/man3tnf/libtnfctl.3tnf b/usr/src/man/man3tnf/libtnfctl.3tnf
index bd02d743ee..ac1a673b98 100644
--- a/usr/src/man/man3tnf/libtnfctl.3tnf
+++ b/usr/src/man/man3tnf/libtnfctl.3tnf
@@ -3,20 +3,17 @@
.\" 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 LIBTNFCTL 3TNF "Mar 1, 2004"
+.TH LIBTNFCTL 3TNF "June 20, 2021"
.SH NAME
libtnfctl \- library for TNF probe control in a process or the kernel
.SH SYNOPSIS
-.LP
.nf
\fBcc\fR [ \fIflag\fR ... ] \fIfile\fR ... \fB-ltnfctl\fR [ \fIlibrary\fR ... ]
#include <tnf/tnfctl.h>
.fi
.SH DESCRIPTION
-.sp
-.LP
-The \fBlibtnfctl\fR library provides an \fBAPI\fR to control \fBTNF\fR
+The \fBlibtnfctl\fR library provides an \fBAPI\fR to control \fBTNF\fR
("Trace Normal Form") probes within a process or the kernel. See
\fBtracing\fR(3TNF) for an overview of the Solaris tracing architecture. The
client of \fBlibtnfctl\fR controls probes in one of four modes:
@@ -36,7 +33,7 @@ own probes.
\fBdirect mode\fR
.ad
.RS 17n
-The target is a separate process; a client can either \fBexec\fR(2) a program
+The target is a separate process; a client can either \fBexec\fR(2) a program
or attach to a running process for probe control. The \fBlibtnfctl\fR library
uses \fBproc\fR(4) on the target process for probe and process control in this
mode, and additionally provides basic process control features.
@@ -49,7 +46,7 @@ mode, and additionally provides basic process control features.
.ad
.RS 17n
The target is a separate process, but the controlling process is already using
-\fBproc\fR(4) to control the target, and hence \fBlibtnfctl\fR cannot use
+\fBproc\fR(4) to control the target, and hence \fBlibtnfctl\fR cannot use
those interfaces directly. Use this mode to control probes from within a
debugger. In this mode, the client must provide a set of functions that
\fBlibtnfctl\fR can use to query and update the target process.
@@ -94,10 +91,10 @@ These interfaces create handles in the specified modes:
.TS
l l l l l
l l l l l .
-\fBtnfctl_internal_open()\fR INT
-\fBtnfctl_exec_open()\fR D
-\fBtnfctl_pid_open()\fR D
-\fBtnfctl_indirect_open()\fR IND
+\fBtnfctl_internal_open()\fR INT
+\fBtnfctl_exec_open()\fR D
+\fBtnfctl_pid_open()\fR D
+\fBtnfctl_indirect_open()\fR IND
\fBtnfctl_kernel_open()\fR K
.TE
@@ -110,9 +107,9 @@ These interfaces are used with the specified modes:
.TS
l l l l l
l l l l l .
-\fBtnfctl_continue()\fR D
-\fBtnfctl_probe_connect()\fR INT D IND
-\fBtnfctl_probe_disconnect_all ()\fR INT D IND
+\fBtnfctl_continue()\fR D
+\fBtnfctl_probe_connect()\fR INT D IND
+\fBtnfctl_probe_disconnect_all ()\fR INT D IND
\fBtnfctl_trace_attrs_get()\fR INT D IND K
\fBtnfctl_buffer_alloc()\fR INT D IND K
\fBtnfctl_register_funcs()\fR INT D IND K
@@ -166,7 +163,7 @@ opportunity to do one-time processing for each probe.
.LP
The \fBtnfctl_check_libs()\fR function is used primarily in indirect mode to
check whether any new probes have appeared, that is, they have been made
-available by \fBdlopen\fR(3C), or have disappeared, that is, they have
+available by \fBdlopen\fR(3C), or have disappeared, that is, they have
disassociated from the process by \fBdlclose\fR(3C).
.sp
.LP
@@ -189,10 +186,10 @@ status of a probe, such as whether it is currently enabled.
.sp
.LP
The \fBtnfctl_trace_attrs_get()\fR function returns information about the
-tracing session, such as the size of the trace buffer or trace file.
+tracing session, such as the size of the trace buffer or trace file.
.sp
.LP
-The \fBtnfctl_strerror()\fR function maps a \fBtnfctl\fR error code to a
+The \fBtnfctl_strerror()\fR function maps a \fBtnfctl\fR error code to a
string, for reporting purposes.
.sp
.LP
@@ -213,13 +210,9 @@ cluttering up the kernel's trace buffer.
The \fBtnfctl_buffer_dealloc()\fR function deallocates the kernel's internal
trace buffer.
.SH RETURN VALUES
-.sp
-.LP
-Upon successful completion, these functions return\fBTNFCTL_ERR_NONE\fR.
+Upon successful completion, these functions return \fBTNFCTL_ERR_NONE\fR.
.SH ERRORS
-.sp
-.LP
-The error codes for \fBlibtnfctl\fR are:
+The error codes for \fBlibtnfctl\fR are:
.sp
.ne 2
.na
@@ -419,8 +412,6 @@ Error code reserved for user.
.RE
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -435,8 +426,6 @@ MT Level MT-Safe with exceptions
.TE
.SH SEE ALSO
-.sp
-.LP
\fBprex\fR(1), \fBexec\fR(2), \fBdlclose\fR(3C), \fBdlopen\fR(3C),
\fBTNF_PROBE\fR(3TNF), \fBtnfctl_buffer_alloc\fR(3TNF),
\fBtnfctl_buffer_dealloc\fR(3TNF), \fBtnfctl_check_libs\fR(3TNF),
@@ -457,11 +446,9 @@ MT Level MT-Safe with exceptions
.LP
\fILinker and Libraries Guide\fR
.SH NOTES
-.sp
-.LP
-This \fBAPI\fR is MT-Safe. Multiple threads may concurrently operate on
+This \fBAPI\fR is MT-Safe. Multiple threads may concurrently operate on
independent \fBtnfctl\fR handles, which is the typical behavior expected. The
\fBlibtnfctl\fR library does not support multiple threads operating on the same
\fBtnfctl\fR handle. If this is desired, it is the client's responsibility to
-implement locking to ensure that two threads that use the same \fBtnfctl\fR
+implement locking to ensure that two threads that use the same \fBtnfctl\fR
handle are not simultaneously in a \fBlibtnfctl\fR interface.
diff --git a/usr/src/man/man4/NISLDAPmapping.4 b/usr/src/man/man4/NISLDAPmapping.4
index e0aacf05eb..e1b30af0e0 100644
--- a/usr/src/man/man4/NISLDAPmapping.4
+++ b/usr/src/man/man4/NISLDAPmapping.4
@@ -3,7 +3,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 NISLDAPMAPPING 4 "September 12, 2020"
+.TH NISLDAPMAPPING 4 "June 20, 2021"
.SH NAME
NISLDAPmapping \- mapping file used by the NIS server components
.SH SYNOPSIS
@@ -33,7 +33,7 @@ customize your \fBNISLDAPmapping\fR file as you require.
.sp
.LP
Each attribute defined below can be specified
-in\fB/var/yp/NISLDAPmappingLDAP\fR or as an LDAP attribute. If both are
+in \fB/var/yp/NISLDAPmapping\fR or as an LDAP attribute. If both are
specified, then the attribute in \fB/var/yp/NISLDAPmapping\fR (including empty
values) takes precedence.
.sp
@@ -700,7 +700,7 @@ below, including examples of complex attribute to field conversions.
.ad
.sp .6
.RS 4n
- Specifies how an LDAP attribute value is derived from a NIS entriy field
+ Specifies how an LDAP attribute value is derived from a NIS entry field
value.
.sp
The syntax for the \fBnisLDAPattributeFromField\fR attribute is as follows:
diff --git a/usr/src/man/man4/netgroup.4 b/usr/src/man/man4/netgroup.4
index a7d8e8d4b4..b693d6a7be 100644
--- a/usr/src/man/man4/netgroup.4
+++ b/usr/src/man/man4/netgroup.4
@@ -1,34 +1,30 @@
'\" te
+.\" Copyright 2012 Nexenta Systems, Inc. All rights reserved.
.\" Copyright (C) 2003, Sun Microsystems, Inc. All Rights Reserved
.\" 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 NETGROUP 4 "Feb 25, 2017"
+.TH NETGROUP 4 "Jun 17, 2021"
.SH NAME
netgroup \- list of network groups
.SH SYNOPSIS
-.LP
.nf
\fB/etc/netgroup\fR
.fi
-
.SH DESCRIPTION
-.LP
A \fBnetgroup\fR defines a network-wide group of hosts and users. Use a
\fBnetgroup\fR to restrict access to shared \fBNFS\fR filesystems and to
restrict remote login and shell access.
.sp
-.LP
-Network groups are stored in a network information service, such as
-\fBLDAP\fR or \fBNIS\fR, not in a local file.
+Network groups are usually stored in network information services,
+such as \fBLDAP\fR, or \fBNIS\fR, but may alternatively be stored in
+the local \fB/etc/netgroup\fR file. The \fBnetgroup\fR line of the
+\fBnsswitch.conf\fR(4) file determines which of those sources are used.
.sp
-.LP
This manual page describes the format for a file that is used to supply input
-to a program such as \fBldapaddent\fR(1M) for LDAP or \fBmakedbm\fR(1M) for
-NIS. These programs build maps or tables used by
-their corresponding network information services.
+to a program such as \fBldapaddent\fR(1M) for LDAP, or \fBmakedbm\fR(1M) for
+NIS. The same file format is used in the local \fB/etc/netgroup\fR file.
.sp
-.LP
Each line of the file defines the name and membership of a network group. The
line should have the format:
.sp
@@ -38,13 +34,10 @@ line should have the format:
.fi
.in -2
.sp
-
.sp
-.LP
The items on a line can be separated by a combination of one or more spaces or
tabs.
.sp
-.LP
The \fIgroupname\fR is the name of the group being defined. This is followed by
a list of members of the group. Each \fImember\fR is either another group name,
all of whose members are to be included in the group being defined, or a triple
@@ -56,9 +49,7 @@ of the form:
.fi
.in -2
.sp
-
.sp
-.LP
In each triple, any of the three fields \fIhostname\fR, \fIusername\fR, and
\fIdomainname\fR, can be empty. An empty field signifies a wildcard that
matches any value in that field. Thus:
@@ -69,13 +60,10 @@ everything (\|,\|,this.domain)
.fi
.in -2
.sp
-
.sp
-.LP
defines a group named "everything" for the domain "this.domain" to which every
host and user belongs.
.sp
-.LP
The \fIdomainname\fR field refers to the domain in which the triple is valid,
not the domain containing the host or user. In fact, applications using
\fBnetgroup\fR generally do not check the \fIdomainname\fR. Therefore, using
@@ -86,9 +74,7 @@ not the domain containing the host or user. In fact, applications using
.fi
.in -2
.sp
-
.sp
-.LP
is equivalent to
.sp
.in +2
@@ -97,27 +83,22 @@ is equivalent to
.fi
.in -2
.sp
-
.sp
-.LP
You can also use netgroups to control \fBNFS\fR mount access (see
\fBshare_nfs\fR(1M)) and to control remote login and shell access (see
\fBhosts.equiv\fR(4)). You can also use them to control local login access (see
\fBpasswd\fR(4), \fBshadow\fR(4), and \fBcompat\fR in \fBnsswitch.conf\fR(4)).
.sp
-.LP
When used for these purposes, a host is considered a member of a \fBnetgroup\fR
if the \fBnetgroup\fR contains any triple in which the \fBhostname\fR field
matches the name of the host requesting access and the \fBdomainname\fR field
matches the domain of the host controlling access.
.sp
-.LP
Similarly, a user is considered a member of a \fBnetgroup\fR if the
\fBnetgroup\fR contains any triple in which the \fIusername\fR field matches
the name of the \fBuser\fR requesting access and the \fIdomainname\fR field
matches the domain of the host controlling access.
.sp
-.LP
Note that when netgroups are used to control NFS mount access, access is
granted depending only on whether the requesting host is a member of the
\fBnetgroup\fR. Remote login and shell access can be controlled both on the
@@ -130,30 +111,19 @@ basis of host and user membership in separate netgroups.
.RS 17n
Used by a network information service's utility to construct a map or table
that contains \fBnetgroup\fR information. For example, \fBldapaddent\fR(1M)
-uses \fB/etc/netgroup\fR to construct an LDAP container.
+uses \fB/etc/netgroup\fR to construct an LDAP container. Alternatively,
+the \fB/etc/netgroup\fR file may be used directly if the \fBfiles\fR
+source is specified in \fBnsswitch.conf\fR(4) for the \fBnetgroup\fR
+database.
.RE
-
-.sp
-.LP
-Note that the netgroup information must always be stored in a network
-information service, such as \fBLDAP\fR or \fBNIS\fR. The local file is
-only used to construct a map or table for the network information service. It
-is never consulted directly.
.SH SEE ALSO
-.LP
\fBldapaddent\fR(1M), \fBmakedbm\fR(1M),
\fBshare_nfs\fR(1M), \fBinnetgr\fR(3C), \fBhosts\fR(4), \fBhosts.equiv\fR(4),
\fBnsswitch.conf\fR(4), \fBpasswd\fR(4), \fBshadow\fR(4)
.SH NOTES
-.LP
-\fBnetgroup\fR requires a network information service such as \fBLDAP\fR
-or \fBNIS\fR.
-.sp
-.LP
Applications may make general membership tests using the \fBinnetgr()\fR
function. See \fBinnetgr\fR(3C).
.sp
-.LP
Because the "-" character will not match any specific username or hostname, it
is commonly used as a placeholder that will match only wildcarded membership
queries. So, for example:
@@ -165,17 +135,13 @@ onlyusers (-,john,our.domain) (-,linda,our.domain)
.fi
.in -2
.sp
-
.sp
-.LP
effectively define netgroups containing only hosts and only users,
respectively. Any other string that is guaranteed not to be a legal username or
hostname will also suffice for this purpose.
.sp
-.LP
Use of placeholders will improve search performance.
.sp
-.LP
When a machine with multiple interfaces and multiple names is defined as a
member of a \fBnetgroup\fR, one must list all of the names. See \fBhosts\fR(4).
A manageable way to do this is to define a \fBnetgroup\fR containing all of the
@@ -188,8 +154,5 @@ gateway (gateway-subnet1,\|,our.domain) (gateway-subnet2,\|,our.domain)
.fi
.in -2
.sp
-
-.sp
-.LP
and use this \fBnetgroup\fR "\fBgateway\fR" whenever the host is to be included
in another \fBnetgroup\fR.
diff --git a/usr/src/man/man4/power.conf.4 b/usr/src/man/man4/power.conf.4
index 0fdb2be5ad..56f841fe23 100644
--- a/usr/src/man/man4/power.conf.4
+++ b/usr/src/man/man4/power.conf.4
@@ -3,17 +3,15 @@
.\" 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 POWER.CONF 4 "May 13, 2017"
+.TH POWER.CONF 4 "June 20, 2021"
.SH NAME
power.conf \- Power Management configuration information file
.SH SYNOPSIS
-.LP
.nf
\fB/etc/power.conf\fR
.fi
.SH DESCRIPTION
-.LP
The \fBpower.conf\fR file is used by the Power Management configuration program
\fBpmconfig\fR(1M), to initialize the settings for Power Management. If you
make changes to this file, you must run \fBpmconfig\fR(1M) manually for the
@@ -30,7 +28,6 @@ power when the device is idle.
All entries in the \fBpower.conf\fR file are processed in the order that they
occur in the file.
.SS "Automatic Device Power Management"
-.LP
Devices with drivers that use the automatic device Power Management interfaces
are automatically power managed if the \fBautopm\fR entry is enabled. The
\fBautopm\fR entry is described near the end of this section. The
@@ -198,7 +195,7 @@ device-thresholds \fI/pci@f0000/xfb@0 (0) (3m 5m 15m)\fR
.LP
would set the \fIthreshold\fR time for the \fBMonitor\fR component of the
specific \fBxfb\fR card to go from \fBOn\fR to \fBStandby in\fR 15 minutes, the
-\fIthreshold\fR for \fBMonitor\fR to go from \fBStandby\fR to \fBSuspend\fRin 5
+\fIthreshold\fR for \fBMonitor\fR to go from \fBStandby\fR to \fBSuspend\fR in 5
minutes, and the \fIthreshold\fR for \fBMonitor\fR to go from \fBSuspend\fR to
\fBOff\fR in 3 minutes. The threshold for \fBFrame Buffer\fR to go from
\fBOn\fR to \fBOff\fR is 0 seconds.
@@ -451,7 +448,6 @@ Once every device is at its lowest possible power state, additional power
savings can be obtained by putting the system into a sleep state (if the
platform hardware is capable of doing so).
.SS "S3 Support"
-.LP
Because of reliability problems encountered in BIOS implementations of X86
systems not produced by Sun Microsystems, by default, only X86 workstation
products produced by Sun are considered to support S3 (suspend to RAM). To
@@ -483,7 +479,6 @@ The system does not support entry into S3 state.
.RE
.SS "Automatic Entry Into S3"
-.LP
If supported by your platform, an autoS3 entry can be used to enable or disable
automatic entry into the S3 state. When in the S3 state, the power button,
keyboard and mouse activity or network traffic (depending upon the capabilities
@@ -528,7 +523,6 @@ The system does not automatically enter the S3 state.
.RE
.SS "System Power Management"
-.LP
The system Power Management entries control Power Management of the entire
system using the suspend-resume feature. When the system is suspended, the
complete current state is saved on the disk before power is removed. On reboot,
@@ -725,7 +719,6 @@ been locked down. It is recommended that statefile be placed on a file system
with at least 10 Mbytes of free space. In case there is no statefile entry at
boot time, an appropriate new entry is automatically created by the system.
.SH EXAMPLES
-.LP
\fBExample 1 \fRDisabling Automatic Device Power Management
.sp
.LP
@@ -755,7 +748,6 @@ autopm disable
Then run \fBpmconfig\fR or reboot. See \fBpmconfig\fR(1M) for more information.
.SH ATTRIBUTES
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -766,11 +758,10 @@ c | c
l | l .
ATTRIBUTE TYPE ATTRIBUTE VALUE
_
-Interface stability Committed
+Interface stability Committed
.TE
.SH SEE ALSO
-.LP
\fBpmconfig\fR(1M), \fBpowerd\fR(1M), \fBuadmin\fR(2),
\fBlibdevinfo\fR(3LIB), \fBattributes\fR(5), \fBcpr\fR(7), \fBldterm\fR(7M),
\fBpm\fR(7D), \fBpm-components\fR(9P), \fBremovable-media\fR(9P)
@@ -778,7 +769,6 @@ Interface stability Committed
.LP
\fIWriting Device Drivers\fR
.SH NOTES
-.LP
SPARC desktop models first shipped after October 1, 1995 and before July 1,
1999 comply with the United States Environmental Protection Agency's \fIEnergy
Star Memorandum of Understanding #2\fR guidelines and have \fBautoshutdown\fR
diff --git a/usr/src/man/man4/terminfo.4 b/usr/src/man/man4/terminfo.4
index cadbccc0ef..1666d8e3f9 100644
--- a/usr/src/man/man4/terminfo.4
+++ b/usr/src/man/man4/terminfo.4
@@ -4,7 +4,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 TERMINFO 4 "December 28, 2020"
+.TH TERMINFO 4 "June 20, 2021"
.SH NAME
terminfo \- terminal and printer capability database
.SH SYNOPSIS
@@ -56,15 +56,15 @@ escaped by using a backslash. Each device entry has the following format:
.LP
The first line, commonly referred to as the header line, must begin in column
one and must contain at least two aliases separated by vertical bars. The last
-field in the header line must be the long name of the device and it may
+field in the header line must be the long name of the device and it may
contain any string. Alias names must be unique in the \fBterminfo\fR database
-and they must conform to system file naming conventions. See \fBtic\fR(1M).
+and they must conform to system file naming conventions. See \fBtic\fR(1M).
They cannot, for example, contain white space or slashes.
.sp
.LP
Every device must be assigned a name, such as "vt100". Device names (except the
long name) should be chosen using the following conventions. The name should
-not contain hyphens because hyphens are reserved for use when adding suffixes
+not contain hyphens because hyphens are reserved for use when adding suffixes
that indicate special modes.
.sp
.LP
@@ -107,7 +107,7 @@ The \fBterminfo\fR reference manual page is organized in two sections:
\fBPART 2: PRINTER CAPABILITIES\fR
.RE
.SS "PART 1: DEVICE CAPABILITIES"
-Capabilities in \fBterminfo\fR are of three types: Boolean capabilities (which
+Capabilities in \fBterminfo\fR are of three types: Boolean capabilities (which
show that a device has or does not have a particular feature), numeric
capabilities (which quantify particular features of a device), and string
capabilities (which provide sequences that can be used to perform particular
@@ -942,7 +942,7 @@ complex entries in the \fBterminfo\fR file as of this writing.
.SS "Types of Capabilities in the Sample Entry"
The sample entry shows the formats for the three types of \fBterminfo\fR
-capabilities listed: Boolean, numeric, and string. All capabilities specified
+capabilities listed: Boolean, numeric, and string. All capabilities specified
in the \fBterminfo\fR source file must be followed by commas, including the
last capability in the source file. In \fBterminfo\fR source files,
capabilities are referenced by their capability names (as shown in the previous
@@ -964,7 +964,7 @@ sequence) are listed by a two- to five-character capname, an `=', and a string
ended by the next occurrence of a comma. A delay in milliseconds may appear
anywhere in such a capability, preceded by \fB$\fR and enclosed in angle
brackets, as in \fBel=\eEK$<3>\fR. Padding characters are supplied by
-\fBtput\fR. The delay can be any of the following: a number, a number followed
+\fBtput\fR. The delay can be any of the following: a number, a number followed
by an asterisk, such as \fB5*\fR, a number followed by a slash, such as
\fB5/\fR, or a number followed by both, such as \fB5*/\fR. A `\fB*\fR\fB\&'\fR
shows that the padding required is proportional to the number of lines affected
@@ -1240,7 +1240,7 @@ push strlen(pop)
.ad
.sp .6
.RS 4n
-arithmetic (\fB%m\fR is mod): push(pop integer2 op pop integer1)
+arithmetic (\fB%m\fR is mod): push(pop integer2 op pop integer1)
.RE
.sp
@@ -1250,7 +1250,7 @@ arithmetic (\fB%m\fR is mod): push(pop integer2 op pop integer1)
.ad
.sp .6
.RS 4n
-bit operations: push(pop integer2 op pop integer1)
+bit operations: push(pop integer2 op pop integer1)
.RE
.sp
@@ -1260,7 +1260,7 @@ bit operations: push(pop integer2 op pop integer1)
.ad
.sp .6
.RS 4n
-logical operations: push(pop integer2 op pop integer1)
+logical operations: push(pop integer2 op pop integer1)
.RE
.sp
@@ -1270,7 +1270,7 @@ logical operations: push(pop integer2 op pop integer1)
.ad
.sp .6
.RS 4n
-logical operations: and, or
+logical operations: and, or
.RE
.sp
@@ -1280,7 +1280,7 @@ logical operations: and, or
.ad
.sp .6
.RS 4n
-unary operations: push(op pop)
+unary operations: push(op pop)
.RE
.sp
@@ -1828,7 +1828,7 @@ Now write down the characters left to right, as in
In addition, \fBterminfo\fR allows you to define multiple character sets. See
Section 2-5 for details.
.SS "Section 1-13: Color Manipulation"
-Let us define two methods of color manipulation: the Tektronix method and the
+Let us define two methods of color manipulation: the Tektronix method and the
HP method. The Tektronix method uses a set of N predefined colors (usually 8)
from which a user can select "current" foreground and background colors. Thus a
terminal can support up to N colors mixed into N*N color-pairs to be displayed
@@ -1844,7 +1844,7 @@ and color-pairs that can be displayed on the screen at the same time. If a
terminal can change the definition of a color (for example, the Tektronix 4100
and 4200 series terminals), this should be specified with \fBccc\fR (can change
color). To change the definition of a color (Tektronix 4200 method), use
-\fBinitc\fR (initialize color). It requires four arguments: color number
+\fBinitc\fR (initialize color). It requires four arguments: color number
(ranging from 0 to \fBcolors\fR\(mi1) and three RGB (red, green, and blue)
values or three HLS colors (Hue, Lightness, Saturation). Ranges of RGB and HLS
values are terminal dependent.
@@ -1863,9 +1863,9 @@ different from RGB and HLS, a mapping to either RGB or HLS must be developed.
.LP
To set current foreground or background to a given color, use \fBsetaf\fR (set
ANSI foreground) and \fBsetab\fR (set ANSI background). They require one
-parameter: the number of the color. To initialize a color-pair (HP method),
-use \fBinitp\fR (initialize pair). It requires seven parameters: the number of
-a color-pair (range=0 to \fBpairs\fR\(mi1), and six RGB values: three for the
+parameter: the number of the color. To initialize a color-pair (HP method),
+use \fBinitp\fR (initialize pair). It requires seven parameters: the number of
+a color-pair (range=0 to \fBpairs\fR\(mi1), and six RGB values: three for the
foreground followed by three for the background. (Each of these groups of three
should be in the order RGB.) When \fBinitc\fR or \fBinitp\fR are used, RGB or
HLS arguments should be in the order "red, green, blue" or "hue, lightness,
@@ -2209,8 +2209,8 @@ Using any of the control sequences in these strings will imply a change in some
of the values of \fBorc\fR, \fBorhi\fR, \fBorl\fR, and \fBorvi\fR. Also, the
distance moved when a wide character is printed, \fBwidcs\fR, changes in
relation to \fBorc\fR. The distance moved when a character is printed in micro
-mode, \fBmcs\fR, changes similarly, with one exception: if the distance is 0
-or 1, then no change is assumed (see items marked with * in the following
+mode, \fBmcs\fR, changes similarly, with one exception: if the distance is 0
+or 1, then no change is assumed (see items marked with * in the following
table).
.sp
.LP
@@ -2336,7 +2336,7 @@ mode.
.LP
The movement made when a character is printed in the rightmost position varies
among printers. Some make no movement, some move to the beginning of the next
-line, others move to the beginning of the same line. \fBterminfo\fRhas boolean
+line, others move to the beginning of the same line. \fBterminfo\fR has boolean
capabilities for describing all three cases.
.sp
.in +2
@@ -2425,7 +2425,7 @@ Miscellaneous Motion Strings
.sp
.SS "Margins"
-\fBterminfo\fR provides two strings for setting margins on terminals: one for
+\fBterminfo\fR provides two strings for setting margins on terminals: one for
the left and one for the right margin. Printers, however, have two additional
margins, for the top and bottom margins of each page. Furthermore, some
printers require not using motion strings to move the current position to a
@@ -2912,6 +2912,6 @@ The most effective way to prepare a terminal description is by imitating the
description of a similar terminal in \fBterminfo\fR and to build up a
description gradually, using partial descriptions with a screen oriented
editor, such as \fBvi\fR, to check that they are correct. To easily test a new
-terminal description the environment variable \fBTERMINFO\fR can be set to the
+terminal description the environment variable \fBTERMINFO\fR can be set to the
pathname of a directory containing the compiled description, and programs will
look there rather than in \fB/usr/share/lib/terminfo\fR.
diff --git a/usr/src/man/man4/tnf_kernel_probes.4 b/usr/src/man/man4/tnf_kernel_probes.4
index b7c84e1e41..12ab068ccb 100644
--- a/usr/src/man/man4/tnf_kernel_probes.4
+++ b/usr/src/man/man4/tnf_kernel_probes.4
@@ -3,7 +3,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 TNF_KERNEL_PROBES 4 "May 16, 2020"
+.TH TNF_KERNEL_PROBES 4 "June 20, 2021"
.SH NAME
tnf_kernel_probes \- TNF kernel probes
.SH DESCRIPTION
@@ -438,7 +438,7 @@ Pagein start event. This event signals the initiation of pagein I/O.
.sp
.ne 2
.na
-\fB\fIvnode\fRand\fIoffset\fR\fR
+\fB\fIvnode\fR and \fIoffset\fR\fR
.ad
.RS 18n
Identifies the file and offset to be paged in.
diff --git a/usr/src/man/man7d/hxge.7d b/usr/src/man/man7d/hxge.7d
index 23cbc8c5ce..2574c00391 100644
--- a/usr/src/man/man7d/hxge.7d
+++ b/usr/src/man/man7d/hxge.7d
@@ -3,18 +3,15 @@
.\" 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 HXGE 7D "Feb 10, 2007"
+.TH HXGE 7D "June 20, 2021"
.SH NAME
hxge \- Sun Blade 10 Gigabit Ethernet network driver
.SH SYNOPSIS
-.LP
.nf
/dev/hxge*
.fi
.SH DESCRIPTION
-.sp
-.LP
The \fBhxge\fR Gigabit Ethernet driver is a multi-threaded, loadable, clonable,
GLD-based STREAMS driver supporting the Data Link Provider Interface,
\fBdlpi\fR(7P), on the Sun Blade Shared 10Gb Ethernet Interface.
@@ -29,14 +26,12 @@ The \fBhxge\fR driver functions include chip initialization, frame transmit and
receive, flow classification, multicast and promiscuous support and error
recovery and reporting in the blade domain.
.SH APPLICATION PROGRAMMING INTERFACE
-.sp
-.LP
-The cloning character-special device, \fB/dev/hxge\fR, is used to access Sun
+The cloning character-special device, \fB/dev/hxge\fR, is used to access Sun
Blade Shared 10Gb Ethernet Interface devices installed within the system.
.sp
.LP
The \fBhxge\fR driver is managed by the \fBdladm\fR(1M) command line utility,
-which allows VLANs to be defined on top of \fBhxge\fR instances and for
+which allows VLANs to be defined on top of \fBhxge\fR instances and for
\fBhxge\fR instances to be aggregated. See \fBdladm\fR(1M) for more details.
.sp
.LP
@@ -45,7 +40,7 @@ with a particular device (PPA). The PPA ID is interpreted as an unsigned
integer data type and indicates the corresponding device instance (unit)
number. The driver returns an error (DL_ERROR_ACK) if the PPA field value does
not correspond to a valid device instance number for the system. The device is
-initialized on first attach and de-initialized (stopped) at last detach
+initialized on first attach and de-initialized (stopped) at last detach
.sp
.LP
The values returned by the driver in the DL_INFO_ACK primitive in response to a
@@ -103,8 +98,6 @@ defined 4 byte header.
Once in the DL_ATTACHED state, you must send a DL_BIND_REQ to associate a
particular Service Access Point (SAP) with the stream.
.SH CONFIGURATION
-.sp
-.LP
The link speed and mode are fixed at 10 Gbps full-duplex.
.sp
.LP
@@ -131,8 +124,8 @@ You can also use the \fBndd\fR(1M) command to configure the \fBhxge\fR driver
at runtime to discard any classes of traffic.
.sp
.LP
-The \fBhxge\fRdriver supports the self-healing functionality of Solaris OS. By
-default it is configured to DDI_FM_EREPORT_CAPABLE | DDI_FM_ERRCB_CAPABLE.
+The \fBhxge\fR driver supports self-healing functionality, see \fBfmd\fR(1M). By
+default it is configured to DDI_FM_EREPORT_CAPABLE | DDI_FM_ERRCB_CAPABLE.
You configure the \fBhxge\fR driver by defining the fm-capable property in
\fBhxge.conf\fR to other capabilities or to 0x0 to disable it entirely.
.sp
@@ -144,7 +137,6 @@ command.
The \fBhxge\fR driver also reports various hardware and software statistics
data. You can view these statistics using the \fBkstat\fR(1M) command.
.SH FILES
-.sp
.ne 2
.na
\fB\fB/dev/hxge*\fR\fR
@@ -156,15 +148,6 @@ Special character device.
.sp
.ne 2
.na
-\fB\fB/kernel/drv/hxge\fR\fR
-.ad
-.RS 28n
-32-bit device driver (x86).
-.RE
-
-.sp
-.ne 2
-.na
\fB\fB/kernel/drv/sparcv9/hxge\fR\fR
.ad
.RS 28n
@@ -190,8 +173,6 @@ Configuration file.
.RE
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -206,10 +187,8 @@ Architecture SPARC, x86
.TE
.SH SEE ALSO
-.sp
-.LP
-\fBdladm\fR(1M), \fBifconfig\fR(1M), \fBkstat\fR(1M), \fBndd\fR(1M),
-\fBnetstat\fR(1M), \fBdriver.conf\fR(4), \fBattributes\fR(5),
+\fBdladm\fR(1M), \fBfmd\fR(1M), \fBifconfig\fR(1M), \fBkstat\fR(1M),
+\fBndd\fR(1M), \fBnetstat\fR(1M), \fBdriver.conf\fR(4), \fBattributes\fR(5),
\fBstreamio\fR(7I), \fBdlpi\fR(7P)
.sp
.LP
diff --git a/usr/src/man/man7fs/pcfs.7fs b/usr/src/man/man7fs/pcfs.7fs
index 519b073650..cd92220c57 100644
--- a/usr/src/man/man7fs/pcfs.7fs
+++ b/usr/src/man/man7fs/pcfs.7fs
@@ -3,7 +3,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 PCFS 7FS "Nov 6, 2007"
+.TH PCFS 7FS "June 20, 2021"
.SH NAME
pcfs \- FAT formatted file system
.SH SYNOPSIS
@@ -99,7 +99,7 @@ if the following line is in your \fB/etc/vfstab\fR file:
.sp
.in +2
.nf
-\fIdevice-special\fR - \fIdirectory-name\fRpcfs \(mi no rw
+\fIdevice-special\fR - \fIdirectory-name\fR pcfs \(mi no rw
.fi
.in -2
@@ -131,7 +131,7 @@ if the following line is in your \fB/etc/vfstab\fR file:
.sp
.in +2
.nf
-\fIdevice-special\fR:\fIlogical_drive\fR \fB\(mi\fR \fIdirectory-name\fR \fBpcfs \(mi no rw\fR
+\fIdevice-special\fR:\fIlogical_drive\fR \fB\(mi\fR \fIdirectory-name\fR pcfs \(mi no rw
.fi
.in -2
@@ -404,16 +404,25 @@ result in the more descriptive short names:
\fB\fB/usr/lib/fs/pcfs/mount\fR\fR
.ad
.RS 26n
-\fBpcfs\fR \fBmount\fR command
+\fBpcfs\fR \fBmount\fR command.
.RE
.sp
.ne 2
.na
-\fB\fB/usr/kernel/fs/pcfs\fR\fR
+\fB\fB/usr/kernel/fs/amd64/pcfs\fR\fR
.ad
.RS 26n
-32-bit kernel module
+64-bit kernel module (x86).
+.RE
+
+.sp
+.ne 2
+.na
+\fB\fB/usr/kernel/fs/sparcv9/pcfs\fR\fR
+.ad
+.RS 26n
+64-bit kernel module (SPARC).
.RE
.SH ENVIRONMENT VARIABLES
diff --git a/usr/src/man/man7fs/udfs.7fs b/usr/src/man/man7fs/udfs.7fs
index 18d3e947a6..cd0733bbc7 100644
--- a/usr/src/man/man7fs/udfs.7fs
+++ b/usr/src/man/man7fs/udfs.7fs
@@ -4,30 +4,26 @@
.\" 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 UDFS 7FS "Mar 29, 1999"
+.TH UDFS 7FS "June 20, 2021"
.SH NAME
udfs \- universal disk format file system
.SH DESCRIPTION
-.sp
-.LP
The \fBudfs\fR file system is a file system type that allows user access to
files on Universal Disk Format (UDF) disks from within the Solaris operating
-environment. Once mounted, a \fBudfs\fR file system provides standard Solaris
+environment. Once mounted, a \fBudfs\fR file system provides standard Solaris
file system operations and semantics. That is, users can read files, write
-files, and list files in a directory on a UDF device and applications can use
+files, and list files in a directory on a UDF device and applications can use
standard UNIX system calls on these files and directories.
.sp
.LP
Because \fBudfs\fR is a platform-independent file system, the same media can be
written to and read from by any operating system or vendor.
.SS "Mounting File Systems"
-.sp
-.LP
\fBudfs\fR file systems are mounted using:
.sp
.in +2
.nf
-mount\fB-F\fR udfs -o rw/ro device-special
+mount -F udfs -o rw/ro device-special
.fi
.in -2
.sp
@@ -58,20 +54,16 @@ file:
.sp
.LP
-The \fBudfs\fR file system provides read-only support for ROM, RAM, and
-sequentially-recordable media and read-write support on RAM media.
+The \fBudfs\fR file system provides read-only support for ROM, RAM, and
+sequentially-recordable media and read-write support on RAM media.
.sp
.LP
The \fBudfs\fR file system also supports regular files, directories, and
symbolic links, as well as device nodes such as block, character, FIFO, and
Socket.
.SH SEE ALSO
-.sp
-.LP
\fBmount\fR(1M), \fBmount_udfs\fR(1M), \fBvfstab\fR(4)
.SH NOTES
-.sp
-.LP
Invalid characters such as "\fINULL\fR" and "\fB/\fR" and invalid file names
such as "\fB\&.\fR" and "\fB\&..\fR" will be translated according to the
following rule:
diff --git a/usr/src/man/man7m/ldterm.7m b/usr/src/man/man7m/ldterm.7m
index 409ee23762..cdeaf893e5 100644
--- a/usr/src/man/man7m/ldterm.7m
+++ b/usr/src/man/man7m/ldterm.7m
@@ -4,11 +4,10 @@
.\" 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 LDTERM 7M "Jun 7, 1999"
+.TH LDTERM 7M "June 20, 2021"
.SH NAME
ldterm \- standard STREAMS terminal line discipline module
.SH SYNOPSIS
-.LP
.nf
#include <sys/stream.h>
.fi
@@ -24,8 +23,6 @@ int ioctl(\fIfd\fR,I_PUSH,"ldterm");
.fi
.SH DESCRIPTION
-.sp
-.LP
The \fBldterm\fR STREAMS module provides most of the \fBtermio\fR(7I) terminal
interface. The \fBvis \fRmodule does not perform the low-level device control
functions specified by flags in the \fBc_cflag\fR word of the
@@ -47,8 +44,6 @@ codesets.
The remainder of this section describes the processing of various \fBSTREAMS\fR
messages on the read- and write-side.
.SS "Read-side Behavior"
-.sp
-.LP
Various types of STREAMS messages are processed as follows:
.sp
.ne 2
@@ -91,8 +86,6 @@ downstream.
.LP
All other messages are passed upstream unchanged.
.SS "Write-side Behavior"
-.sp
-.LP
Various types of \fBSTREAMS\fR messages are processed as follows:
.sp
.ne 2
@@ -178,8 +171,6 @@ are augmented if necessary, and the message is passed upstream.
.LP
All other messages are passed downstream unchanged.
.SH IOCTLS
-.sp
-.LP
\fBThe \fR\fBldterm module\fR processes the following \fBTRANSPARENT\fR
ioctls. All others are passed downstream.
.sp
@@ -264,9 +255,9 @@ This call takes a pointer to an \fBeucioc\fR structure, and uses it to set the
\fBEUC\fR line discipline's local definition for the code set widths to be used
for subsequent operations. Within the stream, the line discipline may
optionally notify other modules of this setting using \fBM_CTL\fR messages.
-When this call is received and the \fBeucioc\fRstructure contains valid data,
+When this call is received and the \fBeucioc\fR structure contains valid data,
the line discipline changes into \fBEUC \fRhandling mode once the
-\fBeucioc\fRdata is completely transferred to an internal data structure.
+\fBeucioc\fR data is completely transferred to an internal data structure.
.RE
.sp
@@ -283,8 +274,6 @@ is meaningless.
.RE
.SH SEE ALSO
-.sp
-.LP
\fBtermios\fR(3C), \fBconsole\fR(7D), \fBtermio\fR(7I)
.sp
.LP
diff --git a/usr/src/man/man9f/ddi_prop_create.9f b/usr/src/man/man9f/ddi_prop_create.9f
index 884f83f390..f248a0610c 100644
--- a/usr/src/man/man9f/ddi_prop_create.9f
+++ b/usr/src/man/man9f/ddi_prop_create.9f
@@ -3,7 +3,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 DDI_PROP_CREATE 9F "September 22, 2020"
+.TH DDI_PROP_CREATE 9F "June 20, 2021"
.SH NAME
ddi_prop_create, ddi_prop_modify, ddi_prop_remove, ddi_prop_remove_all,
ddi_prop_undefine \- create, remove, or modify properties for leaf device
@@ -328,7 +328,7 @@ is subject to the same memory allocation constraints as
.RS 25n
\fBddi_prop_remove()\fR unlinks a property from the device's property list. If
\fBddi_prop_remove()\fR finds the property (an exact match of both
-\fIname\fRand \fIdev\fR), it unlinks the property, frees its memory, and
+\fIname\fR and \fIdev\fR), it unlinks the property, frees its memory, and
returns \fBDDI_PROP_SUCCESS,\fR otherwise, it returns \fBDDI_PROP_NOT_FOUND\fR.
.RE
diff --git a/usr/src/man/man9f/dupb.9f b/usr/src/man/man9f/dupb.9f
index 5a87c63ec5..15abe35d32 100644
--- a/usr/src/man/man9f/dupb.9f
+++ b/usr/src/man/man9f/dupb.9f
@@ -5,11 +5,10 @@
.\" 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 DUPB 9F "Mar 22, 2002"
+.TH DUPB 9F "June 20, 2021"
.SH NAME
dupb \- duplicate a message block descriptor
.SH SYNOPSIS
-.LP
.nf
#include <sys/stream.h>
@@ -19,55 +18,45 @@ dupb \- duplicate a message block descriptor
.fi
.SH INTERFACE LEVEL
-.sp
-.LP
Architecture independent level 1 (DDI/DKI).
.SH DESCRIPTION
+\fBdupb()\fR creates a new \fBmblk_t\fR structure (see \fBmsgb\fR(9S)) to
+reference the message block pointed to by \fIbp\fR.
.sp
.LP
-\fBdupb()\fR creates a new \fBmblk_t\fR structure (see \fBmsgb\fR(9S)) to
-reference the message block pointed to by \fIbp\fR.
-.sp
-.LP
-Unlike \fBcopyb\fR(9F), \fBdupb()\fR does not copy the information in the
-\fBdblk_t\fR structure (see \fBdatab\fR(9S)), but creates a new \fBmblk_t\fR
-structure to point to it. The reference count in the \fBdblk_t\fR structure
+Unlike \fBcopyb\fR(9F), \fBdupb()\fR does not copy the information in the
+\fBdblk_t\fR structure (see \fBdatab\fR(9S)), but creates a new \fBmblk_t\fR
+structure to point to it. The reference count in the \fBdblk_t\fR structure
(\fBdb_ref\fR) is incremented. The new \fBmblk_t\fR structure contains the
-same information as the original. Note that \fBb_rptr\fRand \fBb_wptr\fR are
+same information as the original. Note that \fBb_rptr\fR and \fBb_wptr\fR are
copied from the \fIbp\fR.
.sp
Printed copy or docs.sun.com shows a figure that shows a new mblk_t structure
created, with the original and new bp both pointing to the dblk_t structure,
and db_ref incremented by one
.SH PARAMETERS
-.sp
.ne 2
.na
\fB\fIbp\fR \fR
.ad
.RS 7n
Pointer to the message block to be duplicated. \fBmblk_t\fR is an instance of
-the \fBmsgb\fR(9S) structure.
+the \fBmsgb\fR(9S) structure.
.RE
.SH RETURN VALUES
-.sp
-.LP
-If successful, \fBdupb()\fR returns a pointer to the new message block. A
-\fINULL\fR pointer is returned if \fBdupb()\fR cannot allocate a new message
+If successful, \fBdupb()\fR returns a pointer to the new message block. A
+\fINULL\fR pointer is returned if \fBdupb()\fR cannot allocate a new message
block descriptor or if the \fBdb_ref\fR field of the data block structure (see
\fBdatab\fR(9S)) has reached a maximum value (\fB255\fR).
.SH CONTEXT
-.sp
-.LP
\fBdupb()\fR can be called from user, kernel, or interrupt context.
.SH EXAMPLES
-.LP
\fBExample 1 \fRUsing \fBdupb()\fR
.sp
.LP
-This \fBsrv\fR(9E) (service) routine adds a header to all \fBM_DATA\fR
-messages before passing them along. \fBdupb\fR is used instead of
+This \fBsrv\fR(9E) (service) routine adds a header to all \fBM_DATA\fR
+messages before passing them along. \fBdupb\fR is used instead of
\fBcopyb\fR(9F) because the contents of the header block are not changed.
.sp
@@ -76,16 +65,16 @@ For each message on the queue, if it is a priority message, pass it along
immediately (lines 10-11). Otherwise, if it is anything other than an
\fBM_DATA\fR message (line 12), and if it can be sent along (line 13), then do
so (line 14). Otherwise, put the message back on the queue and return (lines
-16-17). For all \fBM_DATA\fR messages, first check to see if the stream is
+16-17). For all \fBM_DATA\fR messages, first check to see if the stream is
flow-controlled (line 20). If it is, put the message back on the queue and
return (lines 37-38). If it is not, the header block is duplicated (line 21).
.sp
.LP
\fBdupb()\fR can fail either due to lack of resources or because the message
-block has already been duplicated 255 times. In order to handle the latter
+block has already been duplicated 255 times. In order to handle the latter
case, the example calls \fBcopyb\fR(9F) (line 22). If \fBcopyb\fR(9F) fails,
-it is due to buffer allocation failure. In this case, \fBqbufcall\fR(9F) is
+it is due to buffer allocation failure. In this case, \fBqbufcall\fR(9F) is
used to initiate a callback (lines 30-31) if one is not already pending (lines
26-27).
@@ -93,13 +82,13 @@ used to initiate a callback (lines 30-31) if one is not already pending (lines
.LP
The callback function, \fBxxxcallback()\fR, clears the recorded
\fBqbufcall\fR(9F) callback id and schedules the service procedure (lines
-49-50). Note that the close routine, \fBxxxclose()\fR, must cancel any
-outstanding \fBqbufcall\fR(9F) callback requests (lines 58-59).
+49-50). Note that the close routine, \fBxxxclose()\fR, must cancel any
+outstanding \fBqbufcall\fR(9F) callback requests (lines 58-59).
.sp
.LP
-If \fBdupb()\fR or \fBcopyb\fR(9F) succeed, link the \fBM_DATA\fR message to
-the new message block (line 34) and pass it along (line 35).
+If \fBdupb()\fR or \fBcopyb\fR(9F) succeed, link the \fBM_DATA\fR message to
+the new message block (line 34) and pass it along (line 35).
.sp
.in +2
@@ -171,8 +160,6 @@ the new message block (line 34) and pass it along (line 35).
.in -2
.SH SEE ALSO
-.sp
-.LP
\fBsrv\fR(9E), \fBcopyb\fR(9F), \fBqbufcall\fR(9F), \fBdatab\fR(9S),
\fBmsgb\fR(9S)
.sp
diff --git a/usr/src/man/man9p/size.9p b/usr/src/man/man9p/size.9p
index 74aa9cff8d..331e15439a 100644
--- a/usr/src/man/man9p/size.9p
+++ b/usr/src/man/man9p/size.9p
@@ -3,12 +3,10 @@
.\" 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 SIZE 9P "Jan 23, 2008"
+.TH SIZE 9P "June 20, 2021"
.SH NAME
size, Nblock, blksize, device-nblocks, device-blksize \- device size properties
.SH DESCRIPTION
-.sp
-.LP
A driver can communicate size information to the system by the values
associated with following properties. Size information falls into two
categories: device size associated with a \fBdev_info_t\fR node, and minor node
@@ -23,7 +21,7 @@ device size property names:
.ad
.RS 18n
An \fBint64_t\fR property representing device size in
-\fBdevice-blksize\fRblocks.
+\fBdevice-blksize\fR blocks.
.RE
.sp
@@ -98,8 +96,6 @@ The DDI property interfaces deal in signed numbers. All Size(9P) values should
be considered unsigned. It is the responsibility of the code dealing with the
property value to ensure that an unsigned interpretation occurs.
.SH ATTRIBUTES
-.sp
-.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -114,8 +110,6 @@ Interface Stability Committed
.TE
.SH SEE ALSO
-.sp
-.LP
attach(9E), detach(9E), prop_op(9E), ddi_create_minor_node(9F),
inquiry-vendor-id(9P)
.sp
diff --git a/usr/src/pkg/manifests/system-microcode-intel.mf b/usr/src/pkg/manifests/system-microcode-intel.mf
index 79f4dc7ff4..af19976d57 100644
--- a/usr/src/pkg/manifests/system-microcode-intel.mf
+++ b/usr/src/pkg/manifests/system-microcode-intel.mf
@@ -25,7 +25,7 @@
# Copyright 2014 Gary Mills
# Copyright 2019 Peter Tribble.
# Copyright 2020 Joyent, Inc.
-# Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
+# Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
#
#
@@ -35,7 +35,7 @@
#
<include global_zone_only_component>
set name=pkg.fmri \
- value=pkg:/system/microcode/intel@20201112,$(PKGVERS_BUILTON)-$(PKGVERS_BRANCH)
+ value=pkg:/system/microcode/intel@20210608,$(PKGVERS_BUILTON)-$(PKGVERS_BRANCH)
set name=pkg.description value="Microcode for Intel CPUs"
set name=pkg.summary value="Microcode for Intel CPUs"
set name=info.classification value=org.opensolaris.category.2008:System/Core
@@ -369,6 +369,8 @@ file path=platform/i86pc/ucode/GenuineIntel/00050653-01 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/00050654-01 group=sys mode=0444 \
reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/00050655-01 group=sys mode=0444 \
+ reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/00050656-01 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/00050657-01 group=sys mode=0444 \
@@ -395,16 +397,26 @@ file path=platform/i86pc/ucode/GenuineIntel/000506F1-01 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/00060663-80 group=sys mode=0444 \
reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/000606A5-01 group=sys mode=0444 \
+ reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/000606A6-01 group=sys mode=0444 \
+ reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000706A1-01 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000706A8-01 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000706E5-80 group=sys mode=0444 \
reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/00080664-01 group=sys mode=0444 \
+ reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000806A1-10 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000806C1-80 group=sys mode=0444 \
reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/000806C2-02 group=sys mode=0444 \
+ reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/000806D1-02 group=sys mode=0444 \
+ reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000806E9-10 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000806E9-40 group=sys mode=0444 \
@@ -415,6 +427,10 @@ file path=platform/i86pc/ucode/GenuineIntel/000806EB-10 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000806EC-04 group=sys mode=0444 \
reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/00090661-01 group=sys mode=0444 \
+ reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/000906C0-01 group=sys mode=0444 \
+ reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000906E9-02 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000906EA-02 group=sys mode=0444 \
@@ -435,6 +451,8 @@ file path=platform/i86pc/ucode/GenuineIntel/000A0660-80 group=sys mode=0444 \
reboot-needed=true
file path=platform/i86pc/ucode/GenuineIntel/000A0661-80 group=sys mode=0444 \
reboot-needed=true
+file path=platform/i86pc/ucode/GenuineIntel/000A0671-02 group=sys mode=0444 \
+ reboot-needed=true
hardlink path=platform/i86pc/ucode/GenuineIntel/00000F32-04 target=00000F32-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00000F32-08 target=00000F32-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00000F33-04 target=00000F33-01
@@ -544,6 +562,11 @@ hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-04 target=00050654-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-10 target=00050654-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-20 target=00050654-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00050654-80 target=00050654-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/00050655-02 target=00050655-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/00050655-04 target=00050655-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/00050655-10 target=00050655-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/00050655-20 target=00050655-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/00050655-80 target=00050655-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-02 target=00050656-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-04 target=00050656-01
hardlink path=platform/i86pc/ucode/GenuineIntel/00050656-08 target=00050656-01
@@ -567,6 +590,17 @@ hardlink path=platform/i86pc/ucode/GenuineIntel/000506CA-02 target=000506CA-01
hardlink path=platform/i86pc/ucode/GenuineIntel/000506E3-04 target=000506E3-02
hardlink path=platform/i86pc/ucode/GenuineIntel/000506E3-10 target=000506E3-02
hardlink path=platform/i86pc/ucode/GenuineIntel/000506E3-20 target=000506E3-02
+hardlink path=platform/i86pc/ucode/GenuineIntel/000606A5-02 target=000606A5-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/000606A5-04 target=000606A5-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/000606A5-80 target=000606A5-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/000606A6-02 target=000606A6-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/000606A6-04 target=000606A6-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/000606A6-80 target=000606A6-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/00080665-01 target=00080664-01
+hardlink path=platform/i86pc/ucode/GenuineIntel/000806C2-40 target=000806C2-02
+hardlink path=platform/i86pc/ucode/GenuineIntel/000806C2-80 target=000806C2-02
+hardlink path=platform/i86pc/ucode/GenuineIntel/000806D1-40 target=000806D1-02
+hardlink path=platform/i86pc/ucode/GenuineIntel/000806D1-80 target=000806D1-02
hardlink path=platform/i86pc/ucode/GenuineIntel/000806E9-80 target=000806E9-40
hardlink path=platform/i86pc/ucode/GenuineIntel/000806EA-80 target=000806EA-40
hardlink path=platform/i86pc/ucode/GenuineIntel/000806EB-40 target=000806EB-10
diff --git a/usr/src/uts/common/fs/smbsrv/smb2_negotiate.c b/usr/src/uts/common/fs/smbsrv/smb2_negotiate.c
index 0ac7e6c74e..321a566648 100644
--- a/usr/src/uts/common/fs/smbsrv/smb2_negotiate.c
+++ b/usr/src/uts/common/fs/smbsrv/smb2_negotiate.c
@@ -487,13 +487,13 @@ smb31_decode_neg_ctxs(smb_request_t *sr, smb2_neg_ctxs_t *neg_ctxs)
switch (cipher) {
case SMB3_CIPHER_AES128_GCM:
if (encrypt_gcm_enabled) {
- s->smb31_enc_cipherid = cipher;
+ s->smb31_enc_cipherid = SMB3_CIPHER_AES128_GCM;
break;
}
/* FALLTHROUGH */
case SMB3_CIPHER_AES128_CCM:
if (encrypt_ccm_enabled) {
- s->smb31_enc_cipherid = cipher;
+ s->smb31_enc_cipherid = SMB3_CIPHER_AES128_CCM;
break;
}
/* FALLTHROUGH */
diff --git a/usr/src/uts/common/sys/ucode.h b/usr/src/uts/common/sys/ucode.h
index 0e1b60cc53..50db604b48 100644
--- a/usr/src/uts/common/sys/ucode.h
+++ b/usr/src/uts/common/sys/ucode.h
@@ -226,6 +226,8 @@ typedef union ucode_file {
extern ucode_errno_t ucode_header_validate_intel(ucode_header_intel_t *);
extern uint32_t ucode_checksum_intel(uint32_t, uint32_t, uint8_t *);
+extern uint32_t ucode_checksum_intel_extsig(ucode_header_intel_t *,
+ ucode_ext_sig_intel_t *);
extern ucode_errno_t ucode_validate_amd(uint8_t *, int);
extern ucode_errno_t ucode_validate_intel(uint8_t *, int);
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx.c b/usr/src/uts/i86pc/io/vmm/intel/vmx.c
index c716c02a34..61df90da3d 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx.c
+++ b/usr/src/uts/i86pc/io/vmm/intel/vmx.c
@@ -284,13 +284,6 @@ SDT_PROBE_DEFINE4(vmm, vmx, exit, return,
"struct vmx *", "int", "struct vm_exit *", "int");
/* END CSTYLED */
-/*
- * Use the last page below 4GB as the APIC access address. This address is
- * occupied by the boot firmware so it is guaranteed that it will not conflict
- * with a page in system memory.
- */
-#define APIC_ACCESS_ADDRESS 0xFFFFF000
-
static int vmx_getdesc(void *arg, int vcpu, int reg, struct seg_desc *desc);
static int vmx_getreg(void *arg, int vcpu, int reg, uint64_t *retval);
static void vmx_apply_tsc_adjust(struct vmx *, int);
@@ -298,40 +291,33 @@ static void vmx_apicv_sync_tmr(struct vlapic *vlapic);
static void vmx_tpr_shadow_enter(struct vlapic *vlapic);
static void vmx_tpr_shadow_exit(struct vlapic *vlapic);
-static int
-vmx_allow_x2apic_msrs(struct vmx *vmx)
+static void
+vmx_allow_x2apic_msrs(struct vmx *vmx, int vcpuid)
{
- int i, error;
-
- error = 0;
-
/*
* Allow readonly access to the following x2APIC MSRs from the guest.
*/
- error += guest_msr_ro(vmx, MSR_APIC_ID);
- error += guest_msr_ro(vmx, MSR_APIC_VERSION);
- error += guest_msr_ro(vmx, MSR_APIC_LDR);
- error += guest_msr_ro(vmx, MSR_APIC_SVR);
-
- for (i = 0; i < 8; i++)
- error += guest_msr_ro(vmx, MSR_APIC_ISR0 + i);
-
- for (i = 0; i < 8; i++)
- error += guest_msr_ro(vmx, MSR_APIC_TMR0 + i);
-
- for (i = 0; i < 8; i++)
- error += guest_msr_ro(vmx, MSR_APIC_IRR0 + i);
-
- error += guest_msr_ro(vmx, MSR_APIC_ESR);
- error += guest_msr_ro(vmx, MSR_APIC_LVT_TIMER);
- error += guest_msr_ro(vmx, MSR_APIC_LVT_THERMAL);
- error += guest_msr_ro(vmx, MSR_APIC_LVT_PCINT);
- error += guest_msr_ro(vmx, MSR_APIC_LVT_LINT0);
- error += guest_msr_ro(vmx, MSR_APIC_LVT_LINT1);
- error += guest_msr_ro(vmx, MSR_APIC_LVT_ERROR);
- error += guest_msr_ro(vmx, MSR_APIC_ICR_TIMER);
- error += guest_msr_ro(vmx, MSR_APIC_DCR_TIMER);
- error += guest_msr_ro(vmx, MSR_APIC_ICR);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_ID);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_VERSION);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_LDR);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_SVR);
+
+ for (uint_t i = 0; i < 8; i++) {
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_ISR0 + i);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_TMR0 + i);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_IRR0 + i);
+ }
+
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_ESR);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_LVT_TIMER);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_LVT_THERMAL);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_LVT_PCINT);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_LVT_LINT0);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_LVT_LINT1);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_LVT_ERROR);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_ICR_TIMER);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_DCR_TIMER);
+ guest_msr_ro(vmx, vcpuid, MSR_APIC_ICR);
/*
* Allow TPR, EOI and SELF_IPI MSRs to be read and written by the guest.
@@ -339,11 +325,9 @@ vmx_allow_x2apic_msrs(struct vmx *vmx)
* These registers get special treatment described in the section
* "Virtualizing MSR-Based APIC Accesses".
*/
- error += guest_msr_rw(vmx, MSR_APIC_TPR);
- error += guest_msr_rw(vmx, MSR_APIC_EOI);
- error += guest_msr_rw(vmx, MSR_APIC_SELF_IPI);
-
- return (error);
+ guest_msr_rw(vmx, vcpuid, MSR_APIC_TPR);
+ guest_msr_rw(vmx, vcpuid, MSR_APIC_EOI);
+ guest_msr_rw(vmx, vcpuid, MSR_APIC_SELF_IPI);
}
static ulong_t
@@ -667,6 +651,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
uint32_t exc_bitmap;
uint16_t maxcpus;
uint32_t proc_ctls, proc2_ctls, pin_ctls;
+ uint64_t apic_access_pa = UINT64_MAX;
vmx = malloc(sizeof (struct vmx), M_VMX, M_WAITOK | M_ZERO);
if ((uintptr_t)vmx & PAGE_MASK) {
@@ -688,36 +673,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
*/
ept_invalidate_mappings(vmx->eptp);
- msr_bitmap_initialize(vmx->msr_bitmap);
-
- /*
- * It is safe to allow direct access to MSR_GSBASE and MSR_FSBASE.
- * The guest FSBASE and GSBASE are saved and restored during
- * vm-exit and vm-entry respectively. The host FSBASE and GSBASE are
- * always restored from the vmcs host state area on vm-exit.
- *
- * The SYSENTER_CS/ESP/EIP MSRs are identical to FS/GSBASE in
- * how they are saved/restored so can be directly accessed by the
- * guest.
- *
- * MSR_EFER is saved and restored in the guest VMCS area on a
- * VM exit and entry respectively. It is also restored from the
- * host VMCS area on a VM exit.
- *
- * The TSC MSR is exposed read-only. Writes are disallowed as
- * that will impact the host TSC. If the guest does a write
- * the "use TSC offsetting" execution control is enabled and the
- * difference between the host TSC and the guest TSC is written
- * into the TSC offset in the VMCS.
- */
- if (guest_msr_rw(vmx, MSR_GSBASE) ||
- guest_msr_rw(vmx, MSR_FSBASE) ||
- guest_msr_rw(vmx, MSR_SYSENTER_CS_MSR) ||
- guest_msr_rw(vmx, MSR_SYSENTER_ESP_MSR) ||
- guest_msr_rw(vmx, MSR_SYSENTER_EIP_MSR) ||
- guest_msr_rw(vmx, MSR_EFER) ||
- guest_msr_ro(vmx, MSR_TSC))
- panic("vmx_vminit: error setting guest msr access");
+ vmx_msr_bitmap_initialize(vmx);
vpid_alloc(vpid, VM_MAXCPU);
@@ -740,8 +696,17 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
PROCBASED2_APIC_REGISTER_VIRTUALIZATION |
PROCBASED2_VIRTUAL_INTERRUPT_DELIVERY);
+ /*
+ * Allocate a page of memory to back the APIC access address for
+ * when APICv features are in use. Guest MMIO accesses should
+ * never actually reach this page, but rather be intercepted.
+ */
+ vmx->apic_access_page = kmem_zalloc(PAGESIZE, KM_SLEEP);
+ VERIFY3U((uintptr_t)vmx->apic_access_page & PAGEOFFSET, ==, 0);
+ apic_access_pa = vtophys(vmx->apic_access_page);
+
error = vm_map_mmio(vm, DEFAULT_APIC_BASE, PAGE_SIZE,
- APIC_ACCESS_ADDRESS);
+ apic_access_pa);
/* XXX this should really return an error to the caller */
KASSERT(error == 0, ("vm_map_mmio(apicbase) error %d", error));
}
@@ -759,7 +724,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
* may be required inside the critical_enter() section implied
* by VMPTRLD() below.
*/
- vm_paddr_t msr_bitmap_pa = vtophys(vmx->msr_bitmap);
+ vm_paddr_t msr_bitmap_pa = vtophys(vmx->msr_bitmap[i]);
vm_paddr_t apic_page_pa = vtophys(&vmx->apic_page[i]);
vm_paddr_t pir_desc_pa = vtophys(&vmx->pir_desc[i]);
@@ -841,7 +806,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
}
if (vmx_cap_en(vmx, VMX_CAP_APICV)) {
- vmcs_write(VMCS_APIC_ACCESS, APIC_ACCESS_ADDRESS);
+ vmcs_write(VMCS_APIC_ACCESS, apic_access_pa);
vmcs_write(VMCS_EOI_EXIT0, 0);
vmcs_write(VMCS_EOI_EXIT1, 0);
vmcs_write(VMCS_EOI_EXIT2, 0);
@@ -2870,8 +2835,14 @@ vmx_vmcleanup(void *arg)
struct vmx *vmx = arg;
uint16_t maxcpus;
- if (apic_access_virtualization(vmx, 0))
+ if (vmx_cap_en(vmx, VMX_CAP_APICV)) {
vm_unmap_mmio(vmx->vm, DEFAULT_APIC_BASE, PAGE_SIZE);
+ kmem_free(vmx->apic_access_page, PAGESIZE);
+ } else {
+ VERIFY3P(vmx->apic_access_page, ==, NULL);
+ }
+
+ vmx_msr_bitmap_destroy(vmx);
maxcpus = vm_get_maxcpus(vmx->vm);
for (i = 0; i < maxcpus; i++)
@@ -3436,7 +3407,7 @@ vmx_enable_x2apic_mode_vid(struct vlapic *vlapic)
{
struct vmx *vmx;
uint32_t proc_ctls2;
- int vcpuid, error;
+ int vcpuid;
vcpuid = vlapic->vcpuid;
vmx = ((struct vlapic_vtx *)vlapic)->vmx;
@@ -3453,23 +3424,7 @@ vmx_enable_x2apic_mode_vid(struct vlapic *vlapic)
vmcs_write(VMCS_SEC_PROC_BASED_CTLS, proc_ctls2);
vmcs_clear(vmx->vmcs_pa[vcpuid]);
- if (vlapic->vcpuid == 0) {
- /*
- * The nested page table mappings are shared by all vcpus
- * so unmap the APIC access page just once.
- */
- error = vm_unmap_mmio(vmx->vm, DEFAULT_APIC_BASE, PAGE_SIZE);
- KASSERT(error == 0, ("%s: vm_unmap_mmio error %d",
- __func__, error));
-
- /*
- * The MSR bitmap is shared by all vcpus so modify it only
- * once in the context of vcpu 0.
- */
- error = vmx_allow_x2apic_msrs(vmx);
- KASSERT(error == 0, ("%s: vmx_allow_x2apic_msrs error %d",
- __func__, error));
- }
+ vmx_allow_x2apic_msrs(vmx, vcpuid);
}
static void
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx.h b/usr/src/uts/i86pc/io/vmm/intel/vmx.h
index f86d812104..c0d1fdd7fb 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx.h
+++ b/usr/src/uts/i86pc/io/vmm/intel/vmx.h
@@ -137,13 +137,14 @@ typedef enum {
struct vmx {
struct vmcs vmcs[VM_MAXCPU]; /* one vmcs per virtual cpu */
struct apic_page apic_page[VM_MAXCPU]; /* one apic page per vcpu */
- char msr_bitmap[PAGE_SIZE];
+ uint8_t *msr_bitmap[VM_MAXCPU]; /* one MSR bitmap per vCPU */
struct pir_desc pir_desc[VM_MAXCPU];
uint64_t guest_msrs[VM_MAXCPU][GUEST_MSR_NUM];
uint64_t host_msrs[VM_MAXCPU][GUEST_MSR_NUM];
uint64_t tsc_offset_active[VM_MAXCPU];
vmcs_state_t vmcs_state[VM_MAXCPU];
uintptr_t vmcs_pa[VM_MAXCPU];
+ void *apic_access_page;
struct vmxctx ctx[VM_MAXCPU];
struct vmxcap cap[VM_MAXCPU];
struct vmxstate state[VM_MAXCPU];
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c b/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c
index df044fd09e..cf00426300 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c
+++ b/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c
@@ -29,6 +29,7 @@
*/
/*
* Copyright 2020 Joyent, Inc.
+ * Copyright 2021 Oxide Computer Company
*/
#include <sys/cdefs.h>
@@ -138,38 +139,57 @@ vmx_set_ctlreg(int ctl_reg, int true_ctl_reg, uint32_t ones_mask,
}
void
-msr_bitmap_initialize(char *bitmap)
+vmx_msr_bitmap_initialize(struct vmx *vmx)
{
+ for (uint_t i = 0; i < VM_MAXCPU; i++) {
+ uint8_t *bitmap;
- memset(bitmap, 0xff, PAGE_SIZE);
+ bitmap = kmem_alloc(PAGESIZE, KM_SLEEP);
+ VERIFY3U((uintptr_t)bitmap & PAGEOFFSET, ==, 0);
+ memset(bitmap, 0xff, PAGESIZE);
+
+ vmx->msr_bitmap[i] = bitmap;
+ }
}
-int
-msr_bitmap_change_access(char *bitmap, uint_t msr, int access)
+void
+vmx_msr_bitmap_destroy(struct vmx *vmx)
+{
+ for (uint_t i = 0; i < VM_MAXCPU; i++) {
+ VERIFY3P(vmx->msr_bitmap[i], !=, NULL);
+ kmem_free(vmx->msr_bitmap[i], PAGESIZE);
+ vmx->msr_bitmap[i] = NULL;
+ }
+}
+
+void
+vmx_msr_bitmap_change_access(struct vmx *vmx, int vcpuid, uint_t msr, int acc)
{
+ uint8_t *bitmap = vmx->msr_bitmap[vcpuid];
int byte, bit;
- if (msr <= 0x00001FFF)
+ if (msr <= 0x00001FFF) {
byte = msr / 8;
- else if (msr >= 0xC0000000 && msr <= 0xC0001FFF)
+ } else if (msr >= 0xC0000000 && msr <= 0xC0001FFF) {
byte = 1024 + (msr - 0xC0000000) / 8;
- else
- return (EINVAL);
+ } else {
+ panic("Invalid MSR for bitmap: %x", msr);
+ }
bit = msr & 0x7;
- if (access & MSR_BITMAP_ACCESS_READ)
+ if (acc & MSR_BITMAP_ACCESS_READ) {
bitmap[byte] &= ~(1 << bit);
- else
+ } else {
bitmap[byte] |= 1 << bit;
+ }
byte += 2048;
- if (access & MSR_BITMAP_ACCESS_WRITE)
+ if (acc & MSR_BITMAP_ACCESS_WRITE) {
bitmap[byte] &= ~(1 << bit);
- else
+ } else {
bitmap[byte] |= 1 << bit;
-
- return (0);
+ }
}
static uint64_t misc_enable;
@@ -306,21 +326,46 @@ vmx_msr_init(void)
void
vmx_msr_guest_init(struct vmx *vmx, int vcpuid)
{
- uint64_t *guest_msrs;
+ uint64_t *guest_msrs = vmx->guest_msrs[vcpuid];
- guest_msrs = vmx->guest_msrs[vcpuid];
+ /*
+ * It is safe to allow direct access to MSR_GSBASE and
+ * MSR_FSBASE. The guest FSBASE and GSBASE are saved and
+ * restored during vm-exit and vm-entry respectively. The host
+ * FSBASE and GSBASE are always restored from the vmcs host
+ * state area on vm-exit.
+ *
+ * The SYSENTER_CS/ESP/EIP MSRs are identical to FS/GSBASE in
+ * how they are saved/restored so can be directly accessed by
+ * the guest.
+ *
+ * MSR_EFER is saved and restored in the guest VMCS area on a VM
+ * exit and entry respectively. It is also restored from the
+ * host VMCS area on a VM exit.
+ *
+ * The TSC MSR is exposed read-only. Writes are disallowed as
+ * that will impact the host TSC. If the guest does a write the
+ * "use TSC offsetting" execution control is enabled and the
+ * difference between the host TSC and the guest TSC is written
+ * into the TSC offset in the VMCS.
+ */
+ guest_msr_rw(vmx, vcpuid, MSR_GSBASE);
+ guest_msr_rw(vmx, vcpuid, MSR_FSBASE);
+ guest_msr_rw(vmx, vcpuid, MSR_SYSENTER_CS_MSR);
+ guest_msr_rw(vmx, vcpuid, MSR_SYSENTER_ESP_MSR);
+ guest_msr_rw(vmx, vcpuid, MSR_SYSENTER_EIP_MSR);
+ guest_msr_rw(vmx, vcpuid, MSR_EFER);
+ guest_msr_ro(vmx, vcpuid, MSR_TSC);
/*
- * The permissions bitmap is shared between all vcpus so initialize it
- * once when initializing the vBSP.
+ * The guest may have direct access to these MSRs as they are
+ * saved/restored in vmx_msr_guest_enter() and vmx_msr_guest_exit().
*/
- if (vcpuid == 0) {
- guest_msr_rw(vmx, MSR_LSTAR);
- guest_msr_rw(vmx, MSR_CSTAR);
- guest_msr_rw(vmx, MSR_STAR);
- guest_msr_rw(vmx, MSR_SF_MASK);
- guest_msr_rw(vmx, MSR_KGSBASE);
- }
+ guest_msr_rw(vmx, vcpuid, MSR_LSTAR);
+ guest_msr_rw(vmx, vcpuid, MSR_CSTAR);
+ guest_msr_rw(vmx, vcpuid, MSR_STAR);
+ guest_msr_rw(vmx, vcpuid, MSR_SF_MASK);
+ guest_msr_rw(vmx, vcpuid, MSR_KGSBASE);
/*
* Initialize guest IA32_PAT MSR with default value after reset.
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h b/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h
index 4bc43d74f9..5df9fc631d 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h
+++ b/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h
@@ -27,6 +27,9 @@
*
* $FreeBSD$
*/
+/*
+ * Copyright 2021 Oxide Computer Company
+ */
#ifndef _VMX_MSR_H_
#define _VMX_MSR_H_
@@ -58,13 +61,14 @@ int vmx_set_ctlreg(int ctl_reg, int true_ctl_reg, uint32_t ones_mask,
#define MSR_BITMAP_ACCESS_READ 0x1
#define MSR_BITMAP_ACCESS_WRITE 0x2
#define MSR_BITMAP_ACCESS_RW (MSR_BITMAP_ACCESS_READ|MSR_BITMAP_ACCESS_WRITE)
-void msr_bitmap_initialize(char *bitmap);
-int msr_bitmap_change_access(char *bitmap, uint_t msr, int access);
+void vmx_msr_bitmap_initialize(struct vmx *);
+void vmx_msr_bitmap_destroy(struct vmx *);
+void vmx_msr_bitmap_change_access(struct vmx *, int, uint_t, int);
-#define guest_msr_rw(vmx, msr) \
- msr_bitmap_change_access((vmx)->msr_bitmap, (msr), MSR_BITMAP_ACCESS_RW)
+#define guest_msr_rw(vmx, vcpuid, msr) \
+ vmx_msr_bitmap_change_access((vmx), (vcpuid), (msr), MSR_BITMAP_ACCESS_RW)
-#define guest_msr_ro(vmx, msr) \
- msr_bitmap_change_access((vmx)->msr_bitmap, (msr), MSR_BITMAP_ACCESS_READ)
+#define guest_msr_ro(vmx, vcpuid, msr) \
+ vmx_msr_bitmap_change_access((vmx), (vcpuid), (msr), MSR_BITMAP_ACCESS_READ)
#endif
diff --git a/usr/src/uts/i86pc/os/microcode.c b/usr/src/uts/i86pc/os/microcode.c
index d07a79bf18..cbcecadbef 100644
--- a/usr/src/uts/i86pc/os/microcode.c
+++ b/usr/src/uts/i86pc/os/microcode.c
@@ -25,6 +25,7 @@
*
* Copyright 2012 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2018, Joyent, Inc.
+ * Copyright 2021 OmniOS Community Edition (OmniOSce) Association.
*/
#include <sys/asm_linkage.h>
@@ -609,18 +610,18 @@ ucode_locate_intel(cpu_t *cp, cpu_ucode_info_t *uinfop, ucode_file_t *ufp)
rc = EM_FILESIZE;
} else if (ucode_checksum_intel(0, ext_size,
(uint8_t *)(ucodefp->uf_ext_table))) {
- rc = EM_CHECKSUM;
+ rc = EM_EXTCHECKSUM;
} else {
int i;
- ext_size -= UCODE_EXT_TABLE_SIZE_INTEL;
- for (i = 0; i < ucodefp->uf_ext_table->uet_count;
- i++) {
- if (ucode_checksum_intel(0,
- UCODE_EXT_SIG_SIZE_INTEL,
- (uint8_t *)(&(ucodefp->uf_ext_table->
- uet_ext_sig[i])))) {
- rc = EM_CHECKSUM;
+ for (i = 0; i < ucodefp->uf_ext_table->uet_count; i++) {
+ ucode_ext_sig_intel_t *sig;
+
+ sig = &ucodefp->uf_ext_table->uet_ext_sig[i];
+
+ if (ucode_checksum_intel_extsig(uhp,
+ sig) != 0) {
+ rc = EM_SIGCHECKSUM;
break;
}
}