Estructura de bufx
Finalidad
Amplía la estructura de buf para acomodar nuevos campos según sea necesario por razones de rendimiento y RAS.
Descripción
La estructura bufx está disponible para su uso por las extensiones de kernel de 64 bits y de kernel de 64 bits. Las extensiones de kernel de 32 bits y de kernel de 32 bits sólo tienen la opción de utilizar la estructura buf .
Variables de estructura de bufx para E/S de bloque
La estructura bufx , que se define en el archivo /usr/include/sys/buf.h , incluye los campos siguientes:
| Elemento | Descripción |
|---|---|
| b_flags | Bits de distintivo. El valor de este campo lo construye la operación OR lógica con 0 o más de los valores siguientes:
|
| b_forw | El puntero de bloque de avance ocupado. |
| b_back | El puntero de bloque ocupado hacia atrás. |
| av_forw | El puntero de reenvío para una cola de solicitud de controlador. |
| av_back | El puntero hacia atrás para una cola de solicitud de controlador. |
| b_iodone | Cualquiera que llame a la rutina estrategia debe establecer este campo para que apunte a su rutina de E/S realizada. Esta rutina se llama en el nivel INTIODONA interrupción cuando la E/S está completa. |
| b_dev | El número de dispositivo mayor y menor. |
| b_bcount | El recuento de bytes para la transferencia de datos. |
| b_un.b_addr | La dirección de memoria del almacenamiento intermedio de datos. |
| b_blkno | El número de bloque en el dispositivo. |
| b_resid | La cantidad de datos no transferidos después del error. |
| b_event | El ancla para la lista de sucesos. |
| b_xmemd | El descriptor de memoria cruzada. |
| bx_refptrtop | La mitad superior del puntero de referencia. |
| bx_refptrbot | La mitad inferior del puntero de referencia. |
| bx_version | La versión de la estructura bufx . |
| bx_eyecatcher | El campo contiene la serie "bufx", que permite la fácil identificación de la estructura bufx en KDB al volcar datos y para la verificación de la estructura además de utilizar la macro BUFX_VALIDATE . |
| bx_flags | Distintivos de Bufx con un campo de 64 bits que se pueden utilizar para los distintivos específicos de bufxque aún no se han definido. |
| bx_io_priority | Si los dispositivos de almacenamiento subyacentes no dan soporte a la prioridad de E/S, este valor se ignora. Los 2bx_io_prioritydebe ser el valor deIOPRIORITY_UNSET(0) o un valor de 1 a 15. Los valores de prioridad de E/S inferior se consideran más importantes que los valores superiores. Por ejemplo, un valor de 1 se considera la prioridad más alta y un valor de 15 se considera la prioridad más baja. El valor deIOPRIORITY_UNSETse define en el archivo sys/extendio.h . |
| bx_io_cache_hint | Si los dispositivos de almacenamiento subyacentes no dan soporte a las sugerencias de memoria caché de E/S, este valor se ignora. Los 2bx_io_cache_hintdebe ser el valor deCH_AGE_OUT_FASTo el valor deCH_PAGE_WRITE(definido en el archivo sys/extendio.h ). Estos valores se excluyen mutuamente. SiCH_AGE_OUT_FAST, el almacenamiento intermedio de E/S puede envejecer rápidamente desde la memoria caché del almacenamiento intermedio del dispositivo de almacenamiento. Esto es útil en las situaciones en las que la aplicación ya está almacenando en memoria caché el almacenamiento intermedio de E/S y se puede evitar el almacenamiento en caché redundante dentro de la capa de almacenamiento. SiCH_PAGE_WRITE, el almacenamiento intermedio de E/S se graba sólo en la memoria caché del dispositivo de almacenamiento y no en el disco. |