dmp_compspec und dmp_compext Kernel Services

Zweck

Gibt eine Komponente und Rückrufparameter an, die in den Speicherauszug eingeschlossen werden sollen

Syntax

#include <sys/livedump.h>
kerrno_t dmp_compspec (flags, comp, anchor, extid, p1, p2, ..., NULL)
long flags;
long comp;
void *anchor;
dmp_extid_t *extid;
char *p1;
char *p2;
...

kerrno_t dmp_compext (extid, p1, p2, ..., NULL)
dmp_extid_t extid;
char *p1;
char *p2;
...

Parameter

Element Beschreibung
Anker Verweist auf die zugeordnete ldmp_parms_t -Datenstruktur oder auf eine ldmp_prepare_t -Datenstruktur
comp Gibt die durch die Flags angegebene Komponente an.
Extid Verweist auf ein Element des Typs dmp_extid_t für den dmp_compspec -Kernelservice, wobei eine ID zurückgegeben wird, wenn Sie den dmp_compext -Kernelservice verwenden, um zusätzliche Parameter für die Komponente bereitzustellen, für die ein Speicherauszug erstellt wird. Diese ID kann dann angegeben werden, um der Komponente mit dem dmp_compext -Kernel-Service zusätzliche Parameter hinzuzufügen. Der Parameter Extid kann NULL sein.
Flags Sie können die folgenden Werte angeben:
DCF-FEHLSCHLAG
Gibt an, dass dies die fehlerhafte Komponente ist. Sie können nur eine fehlerhafte Komponente angeben.
DCF-ZUERST
Gibt an, dass für diese Komponente zuerst ein Speicherauszug erstellt werden soll Normalerweise werden die Komponenten in der angegebenen Reihenfolge ausgegeben.
Hinweis:
  • Der Wert DCF-ZUERST ist nur gültig, wenn der Anker auf ein ldmp_parms_t -Datenelement verweist. Er ist ungültig, wenn der Callback den Befehl RASCD_LDMP_PREPARE empfängt.
  • Die letzte Komponente, für die ein Speicherauszug erstellt werden soll, ist die erste Komponente, für die ein Speicherauszug erstellt wird.
DCF_LEVEL0 - DCF_LEVEL9
Gibt die Detailstufe (0 bis 9) für den Speicherauszug dieser Komponente an. Wird keines dieser Flags gesetzt, wird ein Speicherauszug der Komponente auf der aktuellen Stufe erstellt.
DCF_MINIMAL
Gibt die DCF_LEVEL1 -Version an.
DCF_NORMAL
Gibt die DCF_LEVEL3 -Version an.
DCF-DETAIL
Gibt die DCF_LEVEL7 -Version an.
DCF-LONG
Gibt an, dass die Parameter zwei Parameter des Typs 'long' sind. Anstatt eine unbegrenzte Anzahl von Zeichenfolgen zu übergeben, kann eine Komponente in zwei langen Datenelementen übergeben werden, wie im Fall von Pseudokomponenten.
Nur eines der folgenden Komponentenspezifikationsflags darf angegeben werden. Sie geben an, wie die Komponente im Feld 'dc_component' angegeben wird:
DCF-_BYPNAME
Gibt an, dass die Komponente durch den Pfadnamen angegeben wird
DCF-_BYLNAME
Gibt an, dass die Komponente durch einen logischen Aliasnamen angegeben wird
DCF_BYTYP
Gibt an, dass die Komponente nach Typ angegeben ist.
DCF-_BYCB
Gibt an, dass die Komponente durch ras_block_t angegeben wird.
p1, p2 ... Gibt die Parameter der Komponente an, von denen die letzte NULL sein muss. Wenn Schlüsselwortparameter angegeben werden, müssen die Parameter Zeichenfolgen sein und das Schlüsselwort und seine Werte enthalten. Wenn mehrere Schlüsselwort/Wert-Paare in einem einzelnen Parameter vorkommen, werden sie durch Leerzeichen getrennt. Der Parameter p1 kann beispielsweise foo=1234sein und der Parameter p2 kann bar=5678,16sein. Der Parameter p1 kann auch foo=1234 bar=5678sein.

Wenn das Flag DCF-LONG gesetzt ist, werden zwei Parameter des Typs "long" übergeben. In diesem Fall enthalten die Parameter p1 und p2 die Werte des Typs 'long' und es können keine weiteren Parameter angegeben werden.

Beschreibung

Die Kernel-Services dmp_compspec und dmp_compext stellen Komponenten und ihre Rückrufparameter für einen Speicherauszug bereit. Sie können diese Kernel-Services nur in einem Livespeicherauszug verwenden.

Der Kernel-Service dmp_compspec wird verwendet, bevor Sie einen Livespeicherauszug mit dem Kernel-Service Livespeicherauszug starten. Sie können diesen Kernel-Service auch verwenden, wenn der Callback einer Komponente eine andere Komponente in einen Livespeicherauszug aufnehmen möchte, d. h., wenn der Callback den Befehl RASCD_LDMP_PREPARE empfängt.

Ein Livespeicherauszug kann mehrere Komponenten enthalten.

Die Funktion dmp_compext wird verwendet, um zusätzliche Parameter für eine Komponente bereitzustellen.

Rückgabewerte

Element Beschreibung
0 Erfolgreiche Ausführung.
EINVAL_RAS_DMP_COMPSPEC_FLAGS Gibt an, dass die Flagspezifikation ungültig ist.
EINVAL_RAS_DMP_COMPSPEC_COMP Gibt an, dass die Komponentenspezifikation ungültig ist.
EINVAL_RAS_DMP_COMPSPEC_NOTAWARE Gibt an, dass die angegebene Komponente zeitnahe Speicherauszüge unterstützen muss
EINVAL_RAS_DMP_COMPSPEC_ANCHOR Gibt an, dass die Ankerspezifikation ungültig ist.
EFAULT_RAS_DMP_COMPSPEC_ANCHOR Gibt an, dass der Speicher, auf den sich der Ankerparameter bezieht, ungültig ist.
EFAULT_RAS_DMP_COMPSPEC_EXTID Gibt an, dass der Speicher, auf den sich der Parameter Extid bezieht, ungültig ist.
EFAULT_RAS_DMP_COMPSPEC_PARMS Gibt an, dass eine Parameteradresse ungültig ist.
EINVAL_RAS_LDMP_ESTIMATE Gibt an, dass der Ankerparameter eine Anforderung zur Schätzung der Speicherauszugsgröße angibt, der Aufruf dmp_compspec jedoch nicht aus der Prozessumgebung stammt.
EINVAL_RAS_DMP_COMPSPEC_NOADD Gibt an, dass diesem Speicherauszug keine Komponenten hinzugefügt werden können, d. h., dass für die Flags des Speicherauszugstyps, ldpr_flags, das Bit LDT_NOADD gesetzt ist.
EINVAL_RAS_DMP_COMPSPEC_FAILING Gibt an, dass die fehlerhafte Komponente bereits angegeben wurde.
ENOMEM_RAS_DMP_COMPSPEC Gibt an, dass kein Speicher verfügbar ist
EINVAL_RAS_DMP_COMPEXT_EXTID Gibt an, dass der Parameter Extid nicht auf eine gültige Komponente verweist.
EFAULT_RAS_DMP_COMPEXT_EXTID Gibt an, dass der Speicher, auf den sich der Parameter Extid bezieht, ungültig ist.
EFAULT_RAS_DMP_COMPEXT_PARMS Gibt an, dass der Speicher, auf den sich ein Parameter bezieht, ungültig ist.
EBUSY_RAS_DMP_COMPEXT Gibt an, dass die Spezifikation dieser Komponente vollständig ist und keine weiteren Parameter hinzugefügt werden können. Dies geschieht, wenn die Komponente, auf die der Parameter Extid verweist, bereits ihre RASCD_LDMP_PREPARE -Verarbeitung abgeschlossen hat.
ENOMEM_RAS_DMP_COMPEXT Gibt an, dass kein Speicher verfügbar ist