•  Back 
  •  Main 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
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.