From 3dc82ede70cb9f1ca6b26ee9c286127043779e73 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Mon, 8 Oct 2001 14:07:33 +0000 Subject: *** empty log message *** --- mdk-stage1/mount.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'mdk-stage1/mount.c') diff --git a/mdk-stage1/mount.c b/mdk-stage1/mount.c index 257638421..917100479 100644 --- a/mdk-stage1/mount.c +++ b/mdk-stage1/mount.c @@ -40,6 +40,7 @@ int ensure_dev_exists(char *dev) int type = S_IFBLK; /* my default type is block. don't forget to change for chars */ char * name; struct stat buf; + char * ptr; name = &dev[5]; /* we really need that dev be passed as /dev/something.. */ @@ -85,8 +86,8 @@ int ensure_dev_exists(char *dev) minor = name[2] - '0'; } else if (ptr_begins_static_str(name, "ida/") || ptr_begins_static_str(name, "cciss/")) { - /* Compaq Smart Array */ - char * ptr = strchr(name, '/'); + /* Compaq Smart Array "ida/c0d0{p1}" */ + ptr = strchr(name, '/'); mkdir("/dev/ida", 0755); mkdir("/dev/cciss", 0755); major = ptr_begins_static_str(name, "ida/") ? 72 : 104 + charstar_to_int(ptr+2); @@ -94,6 +95,14 @@ int ensure_dev_exists(char *dev) minor = 16 * charstar_to_int(ptr+1); ptr = strchr(ptr, 'p'); minor += charstar_to_int(ptr+1); + } else if (ptr_begins_static_str(name, "rd/")) { + /* DAC960 "rd/cXdXXpX" */ + mkdir("/dev/rd", 0755); + major = 48 + charstar_to_int(name+4); + ptr = strchr(name+4, 'd'); + minor = 8 * charstar_to_int(ptr+1); + ptr = strchr(ptr, 'p'); + minor += charstar_to_int(ptr+1); } else { log_message("I don't know how to create device %s, please post bugreport to me!", dev); return -1; -- cgit v1.2.1