m_get Kernel-Service

Zweck

Weist einen Speicherpuffer (mbuf) aus dem mbuf Pool zu.

Syntax

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/mbuf.h>
struct mbuf *m_get ( wait,  type)
int  wait;
int  type;

Parameter

Element Beschreibung
wait Gibt an, was zu tun ist, wenn es keine freien mbuf Strukturen gibt. Mögliche Werte sind:
M_DONTWAIT
Wird von einer Interrupt-oder Prozessumgebung aufgerufen.
M_WAIT
Wird aus einer Prozessumgebung aufgerufen.
Typ Gibt einen gültigen mbuf-Typ an, wie er in der Datei /usr/include/sys/mbuf.h aufgeführt ist.

Beschreibung

Der Kernel-Dienst m_get weist eine mbuf-Struktur des angegebenen Typs zu. Wenn der Pufferpool leer ist und der Warteparameter auf M_WAIT gesetzt ist, kehrt der Kernel-Dienst m_get erst zurück, wenn eine mbuf-Struktur verfügbar ist.

Ausführungsumgebung

Der Kernel-Dienst m_get kann entweder aus der Prozess- oder der Interrupt-Umgebung aufgerufen werden.

Ein Interrupt-Handler kann den Warteparameter nur als M_DONTWAIT angeben.

Rückgabewerte

Nach erfolgreichem Abschluss gibt der m_get-Dienst die Adresse einer zugewiesenen mbuf-Struktur zurück. Wenn der Warteparameter auf M_DONTWAIT gesetzt ist und keine freien mbuf-Strukturen vorhanden sind, gibt der Kernel-Dienst m_get einen Nullwert zurück.