Struktur 'bufx'
Zweck
Erweitert die Buf -Struktur, um neue Felder nach Bedarf aus Leistungs-und RAS-Gründen aufzunehmen.
Beschreibung
Die Struktur Bufx ist für die Verwendung durch den 64-Bit-Kernel und 64-Bit-Kernelerweiterungen verfügbar. Der 32-Bit-Kernel und die 32-Bit-Kernelerweiterungen haben nur die Option, die Struktur Buf zu verwenden.
bufx-Strukturvariablen für blockorientierte Ein-/Ausgabe
Die Struktur bufx , die in der Datei /usr/include/sys/buf.h definiert ist, enthält die folgenden Felder:
| Element | Beschreibung |
|---|---|
| b_flags | Markierungsbits. Der Wert dieses Felds wird durch die logische OR-Operation mit 0 oder mehr der folgenden Werte erstellt:
|
| b_forw | Der Vorwärtszeiger für belegte Blöcke. |
| b_back | Der rückwärts belegte Blockzeiger. |
| av_forw | Der Vorwärtszeiger für eine Treiberanforderungswarteschlange. |
| av_back | Der Rückwärtszeiger für eine Treiberanforderungswarteschlange. |
| b_iodone | Jeder, der die Strategie -Routine aufruft, muss dieses Feld so definieren, dass es auf seine ausgeführte E/A-Routine verweist. Diese Routine wird auf INTIODONE Unterbrechung -Ebene aufgerufen, wenn die Ein-/Ausgabe abgeschlossen ist. |
| b_dev | Die Haupt-und Nebeneinheitennummer. |
| b_bcount | Die Bytezahl für die Datenübertragung. |
| b_un.b_addr | Die Speicheradresse des Datenpuffers. |
| b_blkno | Die Blocknummer auf dem Gerät |
| b_resid | Das nach einem Fehler nicht übertragene Datenvolumen. |
| b_event | Der Anker für die Ereignisliste |
| b_xmemd | Der speicherübergreifende Deskriptor. |
| bx_refptrtop | Die obere Hälfte des Referenzzeigers. |
| bx_refptrbot | Die untere Hälfte des Referenzzeigers. |
| bx_version | Die Version der Struktur Bufx . |
| bx_eyecatcher | Das Feld enthält die Zeichenfolge "bufx", die eine einfache Identifizierung der Bufx -Struktur in KDB ermöglicht, wenn ein Speicherauszug für Daten erstellt wird, und die Strukturprüfung zusätzlich zur Verwendung des Makros BUFX_VALIDIEREN ermöglicht. |
| bx_flags | Bufx -Flags mit einem 64-Bit-Feld, die für Bufx-spezifische Flags verwendet werden können, die noch definiert werden müssen |
| bx_io_priority | Wenn die zugrunde liegenden Speichereinheiten keine E/A-Priorität unterstützen, wird dieser Wert ignoriert. Derbx_io_prioritymuss entweder der Wert vonIOPRIORITY_UNSET(0) oder einen Wert von 1 bis 15. Niedrigere Werte für die E/A-Priorität werden als wichtiger betrachtet als höhere Werte. Der Wert 1 wird beispielsweise als höchste Priorität und der Wert 15 als niedrigste Priorität betrachtet. Der Wert vonIOPRIORITY_UNSETist in der Datei sys/extendio.h definiert. |
| bx_io_cache_hint | Wenn die zugrunde liegenden Speichereinheiten keine E/A-Cachehinweise unterstützen, wird dieser Wert ignoriert. Derbx_io_cache_hintmuss entweder der Wert vonCH_AGE_OUT_FASToder der Wert vonCH_PAGE_WRITE(in der Datei sys/extendio.h definiert). Diese Werte schließen sich gegenseitig aus. WennCH_AGE_OUT_FASTdefiniert ist, kann der E/A-Puffer schnell aus dem Puffercache der Speichereinheit ausgelagert werden. Dies ist in Situationen nützlich, in denen die Anwendung bereits den E/A-Puffer zwischenspeichert und redundantes Caching innerhalb der Speicherebene vermieden werden kann. WennCH_PAGE_WRITEfestgelegt ist, wird der E/A-Puffer nur in den Cache der Speichereinheit und nicht auf die Platte geschrieben. |