genminor-Subroutine für Einheitenkonfiguration
Zweck
Generiert entweder die kleinste nicht verwendete Nebengerätenummer, die für eine Einheit verfügbar ist, eine bevorzugte Nebengerätenummer (falls verfügbar) oder eine Gruppe nicht verwendeter Nebengerätenummern für eine Einheit.
Syntax
#include <cf.h>
#include <sys/cfgodm.h>
#include <sys/cfgdb.h> minors_in_grp, inc_within_grp, inc_btwn_grp)
char * device_instance;
int major_no;
int preferred_minor;
int minors_in_grp;
int inc_within_grp;
int inc_btwn_grp;
Parameter
| Element | Beschreibung |
|---|---|
| Einheiteninstanz | Verweist auf eine Zeichenfolge, die den Einheiteninstanznamen enthält |
| Major_no | Enthält die Hauptnummer der Einheiteninstanz. |
| bevorzugte_untergeordnet | Enthält eine einzelne bevorzugte Nebennummer oder eine Anfangsnebennummer zum Generieren einer Gruppe von Nummern. Im letzteren Fall kann die Subroutine Genminor verwendet werden, um eine Gruppe von Nebennummern in einem einzelnen Aufruf abzurufen. |
| minors_in_grp | Gibt an, wie viele untergeordnete Nummern zugeordnet werden sollen |
| inc_within_grp | Gibt das Intervall zwischen untergeordneten Zahlen an. |
| inc_btwn_grp | Gibt das Intervall zwischen Gruppen von untergeordneten Zahlen an. |
Beschreibung
Die Einheitenkonfigurationssubroutine genminor ist eine der designierten Routinen für den Zugriff auf die Objektklasse des Customized Device Driver (CuDv). Um sicherzustellen, dass eindeutige Zahlen generiert werden, wird die Objektklasse von dieser Routine bis zu ihrem Abschluss gesperrt.
Wenn eine einzelne bevorzugte Nebennummer zugeordnet werden muss, sollte sie im Parameter bevorzugte_untergeordnet angegeben sein. In diesem Fall sollten die anderen Parameter einen ganzzahligen Wert von 1 enthalten. Wenn die gewünschte Zahl verfügbar ist, wird sie zurückgegeben. Andernfalls wird ein Nullzeiger zurückgegeben, der angibt, dass die angeforderte Zahl verwendet wird.
Wenn der Anrufer keine Präferenz hat und nur eine Nebennummer benötigt, sollte dies durch die Übergabe eines Wertes von-1 im bevorzugte_minor Parameter. Die anderen Parameter sollten alle den ganzzahligen Wert 1 enthalten. In diesem Fall gibt die Subroutine Genminor die niedrigste verfügbare Nebennummer zurück.
Wenn eine Gruppe von Zahlen gewünscht wird, muss jede Zahl in der angegebenen Gruppe verfügbar sein. Eine nicht verfügbare Nummer ist eine Nummer, die bereits zugeordnet wurde. Zum Abrufen einer bestimmten Gruppe von untergeordneten Nummern, die zugeordnet sind, enthält der Parameter bevorzugte_untergeordnet die erste untergeordnete Nummer. Wenn diese Gruppe eine Nebennummer hat, die nicht verfügbar ist, gibt die Subroutine Genminor einen Nullzeiger zurück, der auf einen Fehler hinweist.
Wenn die Menge der Nebennummern so zugeordnet werden muss, dass die erste Nummer an einer bestimmten Grenze beginnt (d. h. eine Menge, die mit einem Vielfachen von 8 beginnt), dann ist ein Wert von-1 sollte verabschiedet werden in der bevorzugte_minor Parameter. Der Parameter inc_btwn_grp sollte auf das gewünschte Vielfache gesetzt werden. Die Subroutine Genminor verwendet den Parameter inc_btwn_grp , um die erste vollständige Gruppe verfügbarer Nebennummern zu suchen.
Wenn eine Liste mit untergeordneten Nummern zurückgegeben werden soll, verweist der Rückgabewert auf die erste in einer Liste mit bevorzugten untergeordneten Nummern. Dieser Zeiger kann dann erhöht werden, um durch die Liste zu navigieren, um auf jede Nebennummer zuzugreifen. Die untergeordneten Zahlen werden in aufsteigender sortierter Reihenfolge zurückgegeben.
Rückgabewerte
Bei einem Fehler wird ein Nullzeiger zurückgegeben. Wenn die Subroutine Genminor erfolgreich ist, wird ein Zeiger auf die niedrigste verfügbare Nebennummer oder auf eine Liste mit Nebennummern zurückgegeben.
Dateien
| Element | Beschreibung |
|---|---|
| /usr/lib/libcfg.a | Archivierung von Einheitenkonfigurationssubroutinen. |