Eingangspunkt des Einheitentreibers 'dddump'
Zweck
Schreibt Systemspeicherauszugsdaten auf eine Einheit.
Syntax
Parameter
| Element | Beschreibung |
|---|---|
| Devno | Gibt die Major-und Minor-Einheitennummernan. |
| Uiop | Verweist auf die UIO -Struktur, die den Datenbereich oder die Bereiche beschreibt, für die ein Speicherauszug erstellt werden soll. |
| cmd | Der Parameter der Kernelspeicherauszugsfunktion, der die auszuführende Operation angibt. |
| arg | Der Parameter des Aufrufenden, der die Adresse eines Parameterblocks angibt, der dem Kernelspeicherauszugsbefehl zugeordnet ist. |
| Chan | Gibt die Kanalnummeran. |
| ext | Gibt Erweiterungsparameteran. |
Beschreibung
Die Kernelspeicherauszugsroutine ruft den Eingangspunkt Dddump auf, um Speicherauszugsanforderungen einzurichten und an die Einheit zu senden. Die Routine Dddump ist für einen Einheitentreiber optional. Dies ist nur erforderlich, wenn der Einheitentreiber eine Einheit als Ziel für einen möglichen Kernelspeicherauszug unterstützt.
Ist dies der Fall, ist es wichtig, dass sich der Systemstatus beim Erstellen des Speicherauszugs so wenig wie möglich ändert. Daher sollte die Dddump -Routine die minimale Menge an Services verwenden, um die Speicherauszugsdaten auf die Einheit zu schreiben.
Der Parameter Bef kann einen der folgenden Speicherauszugsbefehle angeben:
| Befehl "dump" | Beschreibung |
|---|---|
| SPEICHERAUSZUGSINITIALISIERUNG | Initialisierung einer Einheit als Vorbereitung für die Unterstützung eines Systemspeicherauszugs. Die angegebene Einheiteninstanz muss zuvor geöffnet worden sein. Der Parameter arg verweist auf eine dumpio_stat -Struktur, die in /usr/include/sys/dump.hdefiniert ist. Wird für die Rückgabe eines einheitenspezifischen Status bei einem Fehler verwendet. Die Dddump -Routine sollte den gesamten Code und alle Daten, die der Einheitentreiber verwendet, um das Schreiben von Speicherauszügen zu unterstützen, pinnen. Dies ist erforderlich, um eine Fehlseitenbedingung zu verhindern, wenn tatsächlich ein Schreiben der Speicherauszugsdaten ausgeführt wird. (Fixierter Code sollte die Routine Dddump enthalten.) Hierfür kann der Kernel-Service Pin oder Pincode verwendet werden. |
| DUMPABFRAGE | Bestimmt die maximale und minimale Anzahl von Byte, die in einem DUMPWRITE -Befehl an die Einheit übertragen werden können Bei Netzspeicherauszügen wird auch die Adresse der Schreibroutine, die bei der Übertragung von Speicherauszugsdaten an die Netzspeicherauszugseinheit verwendet wird, gesendet. Der Parameter Uiop wird nicht verwendet und ist für diesen Befehl null. Der Parameter arg ist ein Zeiger auf eine dmp_query -Struktur, wie in der Datei /usr/include/sys/dump.h definiert. Die Struktur dmp_abfrage enthält die folgenden Felder:
Der Befehl DUMPABFRAGE gibt die Informationen zur Größe der Datenübertragung in der dmp_abfrage -Struktur zurück, auf die der Parameter Arg verweist. Die Kernelspeicherauszugsfunktion verwendet dann beim Schreiben von Speicherauszugsdaten einen Puffer zwischen der minimalen und maximalen Übertragungsgröße (einschließlich). Wenn der Puffer nicht die Größe hat, die in dermax_tsizeFeld, dann muss seine Größe ein Vielfaches des Werts in dermin_tsizeFeld. Dermin_tsizeFeld und diemax_tsizekann denselben Wert angeben. |
| DUMPSTART | Setzt die aktuelle Einheitenaktivität aus und stellt die erforderliche Konfiguration der Einheit bereit, bevor ein DUMPWRITE -Befehl empfangen wird. Der Parameter arg verweist auf eine dumpio_stat -Struktur, die in /usr/include/sys/dump.hdefiniert ist. Wird für die Rückgabe eines einheitenspezifischen Status bei einem Fehler verwendet. |
| DUMPWRITE | Schreibt Speicherauszugsdaten auf die Zieleinheit. Die UIO -Struktur, auf die durch den Parameter Uiop verwiesen wird, gibt den Datenbereich oder die Datenbereiche an, die auf die Einheit geschrieben werden sollen, sowie den Anfangsoffset der Einheit. Der Parameter arg verweist auf eine dumpio_stat -Struktur, die in /usr/include/sys/dump.hdefiniert ist. Wird für die Rückgabe eines einheitenspezifischen Status bei einem Fehler verwendet. Code für den Befehl DUMPWRITE sollte seine Abhängigkeit von Systemservices, Prozesszuteilung und solchen Interrupt-Services wie INTIODONE Unterbrechungspriorität oder Hardware-Interrupts für Einheitenminimieren. Anmerkung: Der Befehl DUMPWRITE darf niemals eine Fehlseitenbedingung verursachen. Dies ist seitens des Anrufers sichergestellt, da die zu dumpenden Datenbereiche als im Speicher abgelegt wurden. Der Einheitentreiber muss sicherstellen, dass alle Code-, Daten-und Stackzugriffe auf fixierten Speicher während der Verarbeitung des Befehls SPEICHERAUSZUGSINITIALISIERUNG erfolgen.
|
| DUMPENDE | Gibt an, dass der Kernelspeicherauszug abgeschlossen wurde Jede Bereinigung des Einheitenstatus sollte zu diesem Zeitpunkt erfolgen. |
| DUMPBEGRIFF | Gibt an, dass die angegebene Einheit keine ausgewählte Speicherauszugszieleinheit mehr ist. Wenn keine anderen Einheiten, die von dieser Dddump -Routine unterstützt werden, einen ausstehenden SPEICHERAUSZUGSINITIALISIERUNG -Befehl haben, sollte der DUMPBEGRIFF -Code die Fixierung aller Ressourcen aufheben, wenn er den Befehl SPEICHERAUSZUGSINITIALISIERUNG empfangen hat. (Der Abpinnen -Kernel-Service ist für die Aufhebung der Fixierung von Speicher verfügbar.) Der Befehl DUMPBEGRIFF wird empfangen, bevor die Einheit geschlossen wird. |
| DUMPLESEN | Empfängt das Bestätigungspaket für vorherige DUMPWRITE -Operationen an einen DFV-Einheitentreiber. Wenn der Einheitentreiber die Bestätigung innerhalb der angegebenen Zeit empfängt, gibt er eine 0 zurück und die Antwortdaten werden an die Kernelspeicherauszugsfunktion im Parameter Uiop zurückgegeben. Wenn der Einheitentreiber die Bestätigung nicht innerhalb der angegebenen Zeit empfängt, wird der Wert EZEITDOUTzurückgegeben. Der Parameter Arg enthält einen Zeitlimitwert in Millisekunden. |
Ausführungsumgebung
Die SPEICHERAUSZUGSINITIALISIERUNG Dddump -Operation wird nur in der Prozessumgebung aufgerufen. Die Operationen DUMPABFRAGE, DUMPSTART, DUMPWRITE, DUMPENDEund DUMPBEGRIFF Dddump können in Prozessumgebung und Interruptumgebungaufgerufen werden.
Rückgabewerte
Der Eingangspunkt Dddump gibt dem Aufrufenden eine Fehlerbedingung an, indem er einen Rückkehrcode ungleich null zurückgibt.