summaryrefslogtreecommitdiff
path: root/usr/src/cmd/format/misc.c
diff options
context:
space:
mode:
authorSheng-Liang Eric Zhang <Shengliang.Zhang@Sun.COM>2010-05-05 12:10:59 +0800
committerSheng-Liang Eric Zhang <Shengliang.Zhang@Sun.COM>2010-05-05 12:10:59 +0800
commit589271a44eaf1e2b6b05d80b025dc8b94e009aef (patch)
treebf476e2d8664fd8f8453179d050cced78c9a4602 /usr/src/cmd/format/misc.c
parent40764c95159232b912f6f16cb1fb1a41897fb0a7 (diff)
downloadillumos-joyent-589271a44eaf1e2b6b05d80b025dc8b94e009aef.tar.gz
6944423 'format' need identify the name scheme of emc powerpath driver in x86 platform
Diffstat (limited to 'usr/src/cmd/format/misc.c')
-rw-r--r--usr/src/cmd/format/misc.c37
1 files changed, 35 insertions, 2 deletions
diff --git a/usr/src/cmd/format/misc.c b/usr/src/cmd/format/misc.c
index 55ca2e80a8..785bf642bf 100644
--- a/usr/src/cmd/format/misc.c
+++ b/usr/src/cmd/format/misc.c
@@ -19,8 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
*/
/*
@@ -674,6 +673,40 @@ conventional_name(char *name)
return (*name == 0);
}
+#ifdef i386
+/*
+ * Return true if a device name match the emc powerpath name scheme:
+ * emcpowerN[a-p,p0,p1,p2,p3,p4]
+ */
+int
+emcpower_name(char *name)
+{
+ char *emcp = "emcpower";
+ char *devp = "/dev/dsk";
+ char *rdevp = "/dev/rdsk";
+
+ if (strncmp(devp, name, strlen(devp)) == 0) {
+ name += strlen(devp) + 1;
+ } else if (strncmp(rdevp, name, strlen(rdevp)) == 0) {
+ name += strlen(rdevp) + 1;
+ }
+ if (strncmp(emcp, name, strlen(emcp)) == 0) {
+ name += strlen(emcp);
+ if (isdigit(*name)) {
+ skip_digits(name);
+ if ((*name >= 'a') && (*name <= 'p')) {
+ name ++;
+ if ((*name >= '0') && (*name <= '4')) {
+ name++;
+ }
+ }
+ return (*name == '\0');
+ }
+ }
+ return (0);
+}
+#endif
+
/*
* Return true if a device name matches the intel physical name conventions
* for the particular system.