Topic : Festplattentreiber CBHD Author : Steffen Engel Version : Release 5.00 Subject : Dokumentation/Utilities Nodes : 18 Index Size : 400 HCP-Version : 3 Compiled on : Atari @charset : atarist @lang : @default : @help : @options : -i +zz -t2 @width : 75 View Ref-File8 Interna CBHD Intern arbeitet CBHD bzw. der SCSI-Treiber in CBHD mit einem modularen Aufbau. Der Sinn dabei ist es, belibige weitere Module in Zukunft einbinden zu können, ohne daß CBHD etwas vom Aufbau und der Identität des Treibers wissen muß. Ein Treiber identifiziert sich durch folgende Struktur im Datensegment: #define DRIVERMARK1 'SCSI' #define DRIVERMARK2 '-Mod' typedef struct { ULONG mark1, mark2; WORD cdecl (*InitCall) (WORD *busno, tDriverPar *driverpar); ULONG IdTab; char name[20]; } tDrvEntry; mark1 und mark2 sind dabei mit DRIVERMARK1/2 besetzt, name ist der Name, der bei 'searching driver modules...' für die Module angegeben wird. Während des Suchens nach Modulen durchsucht CBHD sein Datensegment nach eben solchen Einträgen. Wird ein gültiger Eintrag gefunden (mark1 und mark2 besetzt, InitCall != NULL), so wird name ausgegeben, und das Modul über InitCall aufgerufen. Das Modul antwortet dabei, ob es mitspielen wioll, oder nicht. Will man also ein ganzes Modul eliminieren (zB weil Sie am TT kein Geräte an ACSI haben), so können Sie das Modul eliminieren, indem Sie die Marker verändern. Als Beispiel ändern sie mark1 von 'SCSI' auf 'scsi'. IdTab stellt die Tabelle der potetntiell vorhandenen Laufwerke dar. Hier besteht die Möglichkeit, Geräte komplett für den SCSI-Treiber auszublenden. Es wird kein Zugriff auf diese Geräte gemacht, was beim Scannen des Busses erhebliche Geschwindigkeitsvorteile bringt (insbe- sondere für ACSI und IDE, bei anderen nicht unbedingt sinnvoll). Da dies jedoch verwirrend sein kann ('warum nur wird dieses Gerät nicht angezeigt???'), kann dieser Parameter nur mittels eines Diskmonitors verändert werden.