diff -Nur linux-oldDAC960/drivers/block/DAC960.c linux-DAC960/drivers/block/DAC960.c --- linux-oldDAC960/drivers/block/DAC960.c Fri Sep 15 10:18:01 2000 +++ linux-DAC960/drivers/block/DAC960.c Fri Sep 15 08:01:46 2000 @@ -53,6 +53,7 @@ static int DAC960_ControllerCount = 0; +#include /* DAC960_ActiveControllerCount is the number of active DAC960 Controllers @@ -1628,7 +1629,7 @@ { DAC960_V1_LogicalDriveInformation_T *LogicalDriveInformation = &Controller->V1.LogicalDriveInformation[LogicalDriveNumber]; - DAC960_Info(" /dev/rd/c%dd%d: RAID-%d, %s, %d blocks, %s\n", + DAC960_Info(" /dev/dac960/host%d/disc%d/disc: RAID-%d, %s, %d blocks, %s\n", Controller, Controller->ControllerNumber, LogicalDriveNumber, LogicalDriveInformation->RAIDLevel, (LogicalDriveInformation->LogicalDriveState @@ -1761,7 +1762,7 @@ Controller, LogicalDeviceInfo->DriveGeometry); break; } - DAC960_Info(" /dev/rd/c%dd%d: RAID-%d, %s, %d blocks\n", + DAC960_Info(" /dev/dac960/host%d/disc%d/disc: RAID-%d, %s, %d blocks\n", Controller, Controller->ControllerNumber, LogicalDriveNumber, LogicalDeviceInfo->RAIDLevel, (LogicalDeviceInfo->LogicalDeviceState @@ -1833,15 +1834,23 @@ int MajorNumber = DAC960_MAJOR + Controller->ControllerNumber; GenericDiskInfo_T *GenericDiskInfo; int MinorNumber; + devfs_handle_t devfs_handle; + static char MajorName[16]; /* Register the Block Device Major Number for this DAC960 Controller. */ - if (register_blkdev(MajorNumber, "rd", &DAC960_FileOperations) < 0) + sprintf(MajorName, "dac960/host%d", Controller->ControllerNumber); + devfs_mk_dir (NULL, "dac960", 0, NULL); + devfs_handle = devfs_mk_dir (NULL, MajorName, 0, NULL); + + if (devfs_register_blkdev(MajorNumber, MajorName, + &DAC960_FileOperations) < 0) { DAC960_Error("UNABLE TO ACQUIRE MAJOR NUMBER %d - DETACHING\n", Controller, MajorNumber); return false; } + /* Initialize the I/O Request Function. */ @@ -1872,7 +1881,7 @@ Complete initialization of the Generic Disk Information structure. */ Controller->GenericDiskInfo.major = MajorNumber; - Controller->GenericDiskInfo.major_name = "rd"; + Controller->GenericDiskInfo.major_name = MajorName; Controller->GenericDiskInfo.minor_shift = DAC960_MaxPartitionsBits; Controller->GenericDiskInfo.max_p = DAC960_MaxPartitions; Controller->GenericDiskInfo.max_nr = DAC960_MaxLogicalDrives; @@ -1906,10 +1915,16 @@ static void DAC960_UnregisterBlockDevice(DAC960_Controller_T *Controller) { int MajorNumber = DAC960_MAJOR + Controller->ControllerNumber; + devfs_handle_t devfs_handle; + char MajorName[16]; + /* Unregister the Block Device Major Number for this DAC960 Controller. */ - unregister_blkdev(MajorNumber, "rd"); + sprintf(MajorName, "dac960/host%d", Controller->ControllerNumber); + devfs_handle = devfs_find_handle (NULL, MajorName, 0, 0, 0, DEVFS_SPECIAL_BLK, 0); + devfs_unregister_blkdev(MajorNumber, MajorName); + devfs_unregister(devfs_handle); /* Remove the I/O Request Function. */ @@ -2987,12 +3002,12 @@ Controller, Command->V1.CommandStatus, CommandName); break; } - DAC960_Error(" /dev/rd/c%dd%d: absolute blocks %d..%d\n", + DAC960_Error(" /dev/dac960/host%d/disc%d/disc: absolute blocks %d..%d\n", Controller, Controller->ControllerNumber, Command->LogicalDriveNumber, Command->BlockNumber, Command->BlockNumber + Command->BlockCount - 1); if (DAC960_PartitionNumber(Command->BufferHeader->b_rdev) > 0) - DAC960_Error(" /dev/rd/c%dd%dp%d: relative blocks %d..%d\n", + DAC960_Error(" /dev/dac960/host%d/disc%d/discp%d: relative blocks %d..%d\n", Controller, Controller->ControllerNumber, Command->LogicalDriveNumber, DAC960_PartitionNumber(Command->BufferHeader->b_rdev), @@ -3175,7 +3190,7 @@ int LogicalDriveNumber = Controller->LogicalDriveCount; while (LogicalDriveNumber < NewEnquiry->NumberOfLogicalDrives) { - DAC960_Critical("Logical Drive %d (/dev/rd/c%dd%d) " + DAC960_Critical("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "Now Exists\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -3431,7 +3446,7 @@ &Controller->V1.NewLogicalDriveInformation[LogicalDriveNumber]; if (NewLogicalDriveInformation->LogicalDriveState != OldLogicalDriveInformation->LogicalDriveState) - DAC960_Critical("Logical Drive %d (/dev/rd/c%dd%d) " + DAC960_Critical("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "is now %s\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -3444,7 +3459,7 @@ ? "CRITICAL" : "OFFLINE")); if (NewLogicalDriveInformation->WriteBack != OldLogicalDriveInformation->WriteBack) - DAC960_Critical("Logical Drive %d (/dev/rd/c%dd%d) " + DAC960_Critical("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "is now %s\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -3472,7 +3487,7 @@ case DAC960_V1_NormalCompletion: Controller->EphemeralProgressMessage = true; DAC960_Progress("Rebuild in Progress: " - "Logical Drive %d (/dev/rd/c%dd%d) " + "Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "%d%% completed\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -3529,7 +3544,7 @@ { Controller->EphemeralProgressMessage = true; DAC960_Progress("Consistency Check in Progress: " - "Logical Drive %d (/dev/rd/c%dd%d) " + "Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "%d%% completed\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -3789,12 +3804,12 @@ } DAC960_Error("Error Condition %s on %s:\n", Controller, SenseErrors[Command->V2.RequestSense.SenseKey], CommandName); - DAC960_Error(" /dev/rd/c%dd%d: absolute blocks %d..%d\n", + DAC960_Error(" /dev/dac960/host%d/disc%d/disc: absolute blocks %d..%d\n", Controller, Controller->ControllerNumber, Command->LogicalDriveNumber, Command->BlockNumber, Command->BlockNumber + Command->BlockCount - 1); if (DAC960_PartitionNumber(Command->BufferHeader->b_rdev) > 0) - DAC960_Error(" /dev/rd/c%dd%dp%d: relative blocks %d..%d\n", + DAC960_Error(" /dev/dac960/host%d/disc%d/discp%d: relative blocks %d..%d\n", Controller, Controller->ControllerNumber, Command->LogicalDriveNumber, DAC960_PartitionNumber(Command->BufferHeader->b_rdev), @@ -3949,12 +3964,12 @@ Event->Channel, Event->TargetID, EventMessage); break; case 'L': - DAC960_Critical("Logical Drive %d (/dev/rd/c%dd%d) %s\n", Controller, + DAC960_Critical("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) %s\n", Controller, Event->LogicalUnit, Controller->ControllerNumber, Event->LogicalUnit, EventMessage); break; case 'M': - DAC960_Progress("Logical Drive %d (/dev/rd/c%dd%d) %s\n", Controller, + DAC960_Progress("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) %s\n", Controller, Event->LogicalUnit, Controller->ControllerNumber, Event->LogicalUnit, EventMessage); break; @@ -4019,7 +4034,7 @@ unsigned long LogicalDeviceSize) { Controller->EphemeralProgressMessage = true; - DAC960_Progress("%s in Progress: Logical Drive %d (/dev/rd/c%dd%d) " + DAC960_Progress("%s in Progress: Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "%d%% completed\n", Controller, MessageString, LogicalDeviceNumber, @@ -4350,7 +4365,7 @@ kmalloc(sizeof(DAC960_V2_LogicalDeviceInfo_T), GFP_ATOMIC); Controller->V2.LogicalDeviceInformation[LogicalDeviceNumber] = LogicalDeviceInfo; - DAC960_Critical("Logical Drive %d (/dev/rd/c%dd%d) " + DAC960_Critical("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "Now Exists%s\n", Controller, LogicalDeviceNumber, Controller->ControllerNumber, @@ -4367,7 +4382,7 @@ NewLogicalDeviceInfo->ConfigurableDeviceSizeIn512ByteBlocksOrMB; if (NewLogicalDeviceInfo->LogicalDeviceState != LogicalDeviceInfo->LogicalDeviceState) - DAC960_Critical("Logical Drive %d (/dev/rd/c%dd%d) " + DAC960_Critical("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) " "is now %s\n", Controller, LogicalDeviceNumber, Controller->ControllerNumber, @@ -4384,7 +4399,7 @@ LogicalDeviceInfo->CommandsFailed) || (NewLogicalDeviceInfo->DeferredWriteErrors != LogicalDeviceInfo->DeferredWriteErrors)) - DAC960_Critical("Logical Drive %d (/dev/rd/c%dd%d) Errors: " + DAC960_Critical("Logical Drive %d (/dev/dac960/host%d/disc%d/disc) Errors: " "Soft = %d, Failed = %d, Deferred Write = %d\n", Controller, LogicalDeviceNumber, Controller->ControllerNumber, @@ -6099,14 +6114,14 @@ { case DAC960_V1_NormalCompletion: DAC960_UserCritical("Consistency Check of Logical Drive %d " - "(/dev/rd/c%dd%d) Initiated\n", + "(/dev/dac960/host%d/disc%d/disc) Initiated\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, LogicalDriveNumber); break; case DAC960_V1_DependentDiskIsDead: DAC960_UserCritical("Consistency Check of Logical Drive %d " - "(/dev/rd/c%dd%d) Failed - " + "(/dev/dac960/host%d/disc%d/disc) Failed - " "Dependent Physical Device is DEAD\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -6114,7 +6129,7 @@ break; case DAC960_V1_InvalidOrNonredundantLogicalDrive: DAC960_UserCritical("Consistency Check of Logical Drive %d " - "(/dev/rd/c%dd%d) Failed - " + "(/dev/dac960/host%d/disc%d/disc) Failed - " "Invalid or Nonredundant Logical Drive\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -6122,7 +6137,7 @@ break; case DAC960_V1_RebuildOrCheckAlreadyInProgress: DAC960_UserCritical("Consistency Check of Logical Drive %d " - "(/dev/rd/c%dd%d) Failed - Rebuild or " + "(/dev/dac960/host%d/disc%d/disc) Failed - Rebuild or " "Consistency Check Already in Progress\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -6130,7 +6145,7 @@ break; default: DAC960_UserCritical("Consistency Check of Logical Drive %d " - "(/dev/rd/c%dd%d) Failed - " + "(/dev/dac960/host%d/disc%d/disc) Failed - " "Unexpected Status %04X\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, @@ -6349,7 +6364,7 @@ CommandMailbox->ConsistencyCheck.InitializedAreaOnly = false; DAC960_ExecuteCommand(Command); DAC960_UserCritical("Consistency Check of Logical Drive %d " - "(/dev/rd/c%dd%d) %s\n", + "(/dev/dac960/host%d/disc%d/disc) %s\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, LogicalDriveNumber, @@ -6367,7 +6382,7 @@ DAC960_V2_ConsistencyCheckStop; DAC960_ExecuteCommand(Command); DAC960_UserCritical("Consistency Check of Logical Drive %d " - "(/dev/rd/c%dd%d) %s\n", + "(/dev/dac960/host%d/disc%d/disc) %s\n", Controller, LogicalDriveNumber, Controller->ControllerNumber, LogicalDriveNumber, @@ -6387,7 +6402,7 @@ /* - DAC960_ProcReadStatus implements reading /proc/rd/status. + DAC960_ProcReadStatus implements reading /proc/dac960/status. */ static int DAC960_ProcReadStatus(char *Page, char **Start, off_t Offset, @@ -6421,7 +6436,7 @@ /* - DAC960_ProcReadInitialStatus implements reading /proc/rd/cN/initial_status. + DAC960_ProcReadInitialStatus implements reading /proc/dac960/cN/initial_status. */ static int DAC960_ProcReadInitialStatus(char *Page, char **Start, off_t Offset, @@ -6442,7 +6457,7 @@ /* - DAC960_ProcReadCurrentStatus implements reading /proc/rd/cN/current_status. + DAC960_ProcReadCurrentStatus implements reading /proc/dac960/cN/current_status. */ static int DAC960_ProcReadCurrentStatus(char *Page, char **Start, off_t Offset, @@ -6490,7 +6505,7 @@ /* - DAC960_ProcReadUserCommand implements reading /proc/rd/cN/user_command. + DAC960_ProcReadUserCommand implements reading /proc/dac960/cN/user_command. */ static int DAC960_ProcReadUserCommand(char *Page, char **Start, off_t Offset, @@ -6511,7 +6526,7 @@ /* - DAC960_ProcWriteUserCommand implements writing /proc/rd/cN/user_command. + DAC960_ProcWriteUserCommand implements writing /proc/dac960/cN/user_command. */ static int DAC960_ProcWriteUserCommand(File_T *File, const char *Buffer, @@ -6536,7 +6551,7 @@ /* - DAC960_CreateProcEntries creates the /proc/rd/... entries for the DAC960 + DAC960_CreateProcEntries creates the /proc/dac960/... entries for the DAC960 Driver. */ @@ -6544,7 +6559,7 @@ { static PROC_DirectoryEntry_T StatusProcEntry; int ControllerNumber; - DAC960_ProcDirectoryEntry.name = "rd"; + DAC960_ProcDirectoryEntry.name = "dac960"; DAC960_ProcDirectoryEntry.namelen = strlen(DAC960_ProcDirectoryEntry.name); DAC960_ProcDirectoryEntry.mode = S_IFDIR | S_IRUGO | S_IXUGO; proc_register(&proc_root, &DAC960_ProcDirectoryEntry); @@ -6561,7 +6576,7 @@ PROC_DirectoryEntry_T *ControllerProcEntry, *InitialStatusProcEntry; PROC_DirectoryEntry_T *CurrentStatusProcEntry, *UserCommandProcEntry; if (Controller == NULL) continue; - sprintf(Controller->ControllerName, "c%d", Controller->ControllerNumber); + sprintf(Controller->ControllerName, "host%d", Controller->ControllerNumber); ControllerProcEntry = &Controller->ControllerProcEntry; ControllerProcEntry->name = Controller->ControllerName; ControllerProcEntry->namelen = strlen(ControllerProcEntry->name); @@ -6594,7 +6609,7 @@ /* - DAC960_DestroyProcEntries destroys the /proc/rd/... entries for the DAC960 + DAC960_DestroyProcEntries destroys the /proc/dac960/... entries for the DAC960 Driver. */ diff -Nur linux-oldDAC960/drivers/block/genhd.c linux-DAC960/drivers/block/genhd.c --- linux-oldDAC960/drivers/block/genhd.c Fri Sep 15 10:18:00 2000 +++ linux-DAC960/drivers/block/genhd.c Fri Sep 15 08:00:32 2000 @@ -82,11 +82,18 @@ int ctlr = hd->major - major_base; int disk = minor >> hd->minor_shift; int part = minor & (( 1 << hd->minor_shift) - 1); - if (part == 0) - sprintf(buf, "%s/c%dd%d", hd->major_name, ctlr, disk); - else - sprintf(buf, "%s/c%dd%dp%d", hd->major_name, ctlr, disk, - part); + if (part == 0) { + if (major_base == DAC960_MAJOR) + sprintf(buf, "%s/disc%d", hd->major_name, ctlr, disk); + else + sprintf(buf, "%s/c%dd%d", hd->major_name, ctlr, disk); + } + else { + if (major_base == DAC960_MAJOR) + sprintf(buf, "%s/disc%d", hd->major_name, ctlr, disk); + else + sprintf(buf, "%s/c%dd%dp%d", hd->major_name, ctlr, disk, part); + } return buf; } @@ -1562,6 +1569,7 @@ sprintf (symlink, "disc%u", disc_counter++); devfs_mk_symlink (devfs_handle, symlink, 0, DEVFS_FL_DEFAULT, dirname + pos, 0, &slave, NULL); + dev->part[minor].de = devfs_register (dir, "disc", devfs_flags, dev->major, minor, S_IFBLK | S_IRUSR | S_IWUSR, dev->fops, NULL);