- } else if ( strncmp( look, "cdrom", strlen( "cdrom" )) == 0 ) {
- matching = IOCDMatching( look );
+ } else if ( strncmp( look, "cdrom", strlen( "cdrom" )) == 0 ) {
+ matching = IOCDMatching();
+ findHFSChild = true;
+ } else if ( strncmp( look, "uuid", strlen( "uuid" )) == 0 ) {
+ char *uuid;
+ OSString *uuidString;
+
+ uuid = (char *)IOMalloc( kMaxBootVar );
+
+ if ( uuid ) {
+ if (!PE_parse_boot_argn( "boot-uuid", uuid, kMaxBootVar )) {
+ panic( "rd=uuid but no boot-uuid=<value> specified" );
+ }
+ uuidString = OSString::withCString( uuid );
+ if ( uuidString ) {
+ IOService::publishResource( "boot-uuid", uuidString );
+ uuidString->release();
+ IOLog( "\nWaiting for boot volume with UUID %s\n", uuid );
+ matching = IOUUIDMatching();
+ mediaProperty = "boot-uuid-media";
+ }
+ IOFree( uuid, kMaxBootVar );
+ }