Servicios de kernel de almacenamiento intermedio de memoria (mbuf)

Los servicios de kernel de Memory Buffer (mbuf) proporcionan funciones para obtener, liberar y manipular almacenamientos intermedios de memoria o mbufs.

Estos servicios mbuf proporcionan los medios para trabajar fácilmente con la estructura de datos mbuf , que se define en el archivo /usr/include/sys/mbuf.h . Los datos se pueden almacenar directamente en una parte de datos de mbufo en un clúster externo conectado. Mbufs también se puede encadenar utilizando elm_nexten la estructura mbuf . Esto es especialmente útil para los protocolos de comunicaciones que necesitan añadir y eliminar cabeceras de protocolo.

Los servicios de kernel de Memory Buffer (mbuf) son:

Elemento Descripción
m_adj Ajusta el tamaño de una cadena mbuf .
m_clatse Asigna una estructura mbuf y conecta un clúster externo.
m_cat Añade una cadena mbuf al final de otra.
m_clgetm Asigna y adjunta un almacenamiento intermedio externo.
m_colapso Garantiza que una cadena mbuf no contenga más que un número determinado de estructuras mbuf .
m_copiardatos Copia datos de una cadena mbuf en un almacenamiento intermedio especificado.
m_copym Crea una copia de todo o parte de una lista de estructuras de mbuf .
m_dereg Desregistra el uso previsto de la estructura de mbuf .
m_free Libera una estructura mbuf y cualquier área de almacenamiento externo asociada.
m_freem Libera toda una cadena mbuf .
m_get Asigna un almacenamiento intermedio de memoria de la agrupación mbuf .
m_getclr Asigna y ceros un almacenamiento intermedio de memoria de la agrupación mbuf .
m_getclustm Asigna una estructura mbuf de la agrupación de almacenamiento intermedio de mbuf y adjunta un clúster del tamaño especificado.
m_gethrr Asigna un almacenamiento intermedio de memoria de cabecera de la agrupación mbuf .
m_pullup Ajusta una cadena mbuf para que un número determinado de bytes esté en memoria contigua en el área de datos de la estructura de la cabecera mbuf .
m_reg Registra el uso esperado de mbuf .

Además de los servicios de kernel de mbuf , las macros siguientes están disponibles para su uso con mbufs:

Elemento Descripción
m_clget Asigna un clúster de estructura mbuf de tamaño de página.
m_copiar Crea una copia de todo o parte de una lista de estructuras de mbuf .
m_getclust Asigna una estructura mbuf de la agrupación de almacenamiento intermedio de mbuf y conecta un clúster de tamaño de página.
M_HASCL Determina si una estructura mbuf tiene un clúster conectado.
DTOM Convierte una dirección en cualquier lugar dentro de una estructura mbuf a la cabecera de esa estructura mbuf .
MTOCL Convierte un puntero a una estructura mbuf en un puntero a la cabecera de un clúster conectado.
MTOD Convierte un puntero a una estructura mbuf en un puntero a los datos almacenados en esa estructura mbuf .
M_XMEMD Devuelve la dirección de un descriptor de memoria cruzada de mbuf .