summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorJohn Levon <john.levon@joyent.com>2018-02-23 19:27:19 +0000
committerPatrick Mooney <pmooney@pfmooney.com>2020-04-20 18:03:21 +0000
commit629c07fb6e3f1db7dc0b6e1647ee779f6aaef329 (patch)
tree7ab9cdd088766c845d55574d670b2eb2ed2ac85a /usr/src
parente1086107dcddb40ce490ac7c851716c9e1d7796d (diff)
downloadillumos-joyent-629c07fb6e3f1db7dc0b6e1647ee779f6aaef329.tar.gz
12526 Could combine misc_link_i386.c handlers
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Patrick Mooney <patrick.mooney@joyent.com> Reviewed by: Yuri Pankov <ypankov@fastmail.com> Reviewed by: Andy Fiddaman <andy@omniosce.org> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/devfsadm/i386/misc_link_i386.c86
1 files changed, 19 insertions, 67 deletions
diff --git a/usr/src/cmd/devfsadm/i386/misc_link_i386.c b/usr/src/cmd/devfsadm/i386/misc_link_i386.c
index 67d06ee101..2b678df527 100644
--- a/usr/src/cmd/devfsadm/i386/misc_link_i386.c
+++ b/usr/src/cmd/devfsadm/i386/misc_link_i386.c
@@ -21,7 +21,7 @@
/*
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
- * Copyright 2012 Joyent, Inc. All rights reserved.
+ * Copyright 2018 Joyent, Inc. All rights reserved.
*/
#include <regex.h>
@@ -36,6 +36,7 @@
extern int system_labeled;
+static int ln_minor_name(di_minor_t minor, di_node_t node);
static int lp(di_minor_t minor, di_node_t node);
static int serial_dialout(di_minor_t minor, di_node_t node);
static int serial(di_minor_t minor, di_node_t node);
@@ -43,12 +44,7 @@ static int diskette(di_minor_t minor, di_node_t node);
static int vt00(di_minor_t minor, di_node_t node);
static int kdmouse(di_minor_t minor, di_node_t node);
static int ipmi(di_minor_t minor, di_node_t node);
-static int smbios(di_minor_t minor, di_node_t node);
static int mc_node(di_minor_t minor, di_node_t node);
-static int xsvc(di_minor_t minor, di_node_t node);
-static int srn(di_minor_t minor, di_node_t node);
-static int ucode(di_minor_t minor, di_node_t node);
-
static devfsadm_create_t misc_cbt[] = {
{ "vt00", "ddi_display", NULL,
@@ -61,7 +57,7 @@ static devfsadm_create_t misc_cbt[] = {
TYPE_EXACT | DRV_EXACT, ILEVEL_0, ipmi,
},
{ "pseudo", "ddi_pseudo", "smbios",
- TYPE_EXACT | DRV_EXACT, ILEVEL_1, smbios,
+ TYPE_EXACT | DRV_EXACT, ILEVEL_1, ln_minor_name,
},
/* floppies share the same class, but not link regex, as hard disks */
{ "disk", "ddi_block:diskette", NULL,
@@ -76,17 +72,17 @@ static devfsadm_create_t misc_cbt[] = {
{ "serial", "ddi_serial:dialout,mb", NULL,
TYPE_EXACT, ILEVEL_1, serial_dialout
},
- { "pseudo", "ddi_pseudo", NULL,
- TYPE_EXACT, ILEVEL_0, xsvc
+ { "pseudo", "ddi_pseudo", "xsvc",
+ TYPE_EXACT | DRV_EXACT, ILEVEL_0, ln_minor_name,
},
- { "pseudo", "ddi_pseudo", NULL,
- TYPE_EXACT, ILEVEL_0, srn
+ { "pseudo", "ddi_pseudo", "srn",
+ TYPE_EXACT | DRV_EXACT, ILEVEL_0, ln_minor_name,
},
{ "memory-controller", "ddi_mem_ctrl", NULL,
TYPE_EXACT, ILEVEL_0, mc_node
},
{ "pseudo", "ddi_pseudo", "ucode",
- TYPE_EXACT | DRV_EXACT, ILEVEL_0, ucode,
+ TYPE_EXACT | DRV_EXACT, ILEVEL_0, ln_minor_name,
},
};
@@ -119,6 +115,17 @@ static devfsadm_remove_t misc_remove_cbt[] = {
DEVFSADM_REMOVE_INIT_V0(misc_remove_cbt);
/*
+ * Any /dev/foo entry named after the minor name such as
+ * /devices/.../driver@0:foo
+ */
+static int
+ln_minor_name(di_minor_t minor, di_node_t node)
+{
+ (void) devfsadm_mklink(di_minor_name(minor), node, minor, 0);
+ return (DEVFSADM_CONTINUE);
+}
+
+/*
* Handles minor node type "ddi_display", in addition to generic processing
* done by display().
*
@@ -305,13 +312,6 @@ ipmi(di_minor_t minor, di_node_t node)
return (DEVFSADM_CONTINUE);
}
-static int
-smbios(di_minor_t minor, di_node_t node)
-{
- (void) devfsadm_mklink("smbios", node, minor, 0);
- return (DEVFSADM_CONTINUE);
-}
-
/*
* /dev/mc/mc<chipid> -> /devices/.../pci1022,1102@<chipid+24>,2:mc-amd
*/
@@ -345,51 +345,3 @@ mc_node(di_minor_t minor, di_node_t node)
(void) devfsadm_mklink(linkpath, node, minor, 0);
return (DEVFSADM_CONTINUE);
}
-
-/*
- * Creates \M0 devlink for xsvc node
- */
-static int
-xsvc(di_minor_t minor, di_node_t node)
-{
- char *mn;
-
- if (strcmp(di_node_name(node), "xsvc") != 0)
- return (DEVFSADM_CONTINUE);
-
- mn = di_minor_name(minor);
- if (mn == NULL)
- return (DEVFSADM_CONTINUE);
-
- (void) devfsadm_mklink(mn, node, minor, 0);
- return (DEVFSADM_CONTINUE);
-}
-
-/*
- * Creates \M0 devlink for srn device
- */
-static int
-srn(di_minor_t minor, di_node_t node)
-{
- char *mn;
-
- if (strcmp(di_node_name(node), "srn") != 0)
- return (DEVFSADM_CONTINUE);
-
- mn = di_minor_name(minor);
- if (mn == NULL)
- return (DEVFSADM_CONTINUE);
-
- (void) devfsadm_mklink(mn, node, minor, 0);
- return (DEVFSADM_CONTINUE);
-}
-
-/*
- * /dev/ucode -> /devices/pseudo/ucode@0:ucode
- */
-static int
-ucode(di_minor_t minor, di_node_t node)
-{
- (void) devfsadm_mklink("ucode", node, minor, 0);
- return (DEVFSADM_CONTINUE);
-}