diff options
Diffstat (limited to 'usr/src/cmd/devfsadm/misc_link.c')
-rw-r--r-- | usr/src/cmd/devfsadm/misc_link.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/usr/src/cmd/devfsadm/misc_link.c b/usr/src/cmd/devfsadm/misc_link.c index d446392618..a8f0ef5d71 100644 --- a/usr/src/cmd/devfsadm/misc_link.c +++ b/usr/src/cmd/devfsadm/misc_link.c @@ -2,9 +2,8 @@ * CDDL HEADER START * * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * 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. @@ -20,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -58,6 +57,7 @@ static int zcons_create(di_minor_t minor, di_node_t node); static int cpuid(di_minor_t minor, di_node_t node); static int glvc(di_minor_t minor, di_node_t node); static int ses_callback(di_minor_t minor, di_node_t node); +static int kmdrv_create(di_minor_t minor, di_node_t node); static devfsadm_create_t misc_cbt[] = { { "pseudo", "ddi_pseudo", "(^pts$)|(^sad$)", @@ -146,7 +146,10 @@ static devfsadm_create_t misc_cbt[] = { TYPE_EXACT | DRV_EXACT, ILEVEL_0, gpio }, { "pseudo", "ddi_pseudo", "sckmdrv", - TYPE_EXACT | DRV_RE, ILEVEL_0, minor_name, + TYPE_EXACT | DRV_RE, ILEVEL_0, kmdrv_create, + }, + { "pseudo", "ddi_pseudo", "oplkmdrv", + TYPE_EXACT | DRV_RE, ILEVEL_0, kmdrv_create, }, { "av", "^ddi_av:(isoch|async)$", NULL, TYPE_RE, ILEVEL_0, av_create, @@ -169,6 +172,9 @@ static devfsadm_create_t misc_cbt[] = { { "pseudo", "ddi_pseudo", "glvc", TYPE_EXACT | DRV_EXACT, ILEVEL_0, glvc, }, + { "pseudo", "ddi_pseudo", "dm2s", + TYPE_EXACT | DRV_EXACT, ILEVEL_0, minor_name, + }, }; DEVFSADM_CREATE_INIT_V0(misc_cbt); @@ -658,3 +664,16 @@ glvc(di_minor_t minor, di_node_t node) } return (DEVFSADM_CONTINUE); } + +/* + * Handles links of the form: + * type=ddi_pseudo;name=sckmdrv kmdrv\M0 + * type=ddi_pseudo;name=oplkmdrv kmdrv\M0 + */ +static int +kmdrv_create(di_minor_t minor, di_node_t node) +{ + + (void) devfsadm_mklink("kmdrv", node, minor, 0); + return (DEVFSADM_CONTINUE); +} |