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 . |