Servicios de kernel dmp_compspec y dmp_compext

Finalidad

Especifica un componente y los parámetros de devolución de llamada que se deben incluir en el vuelco.

Sintaxis

#include <sys/livedump.h>
kerrno_t dmp_compspec (flags, comp, anchor, extid, p1, p2, ..., NULL)
long flags;
long comp;
void *anchor;
dmp_extid_t *extid;
char *p1;
char *p2;
...

kerrno_t dmp_compext (extid, p1, p2, ..., NULL)
dmp_extid_t extid;
char *p1;
char *p2;
...

Parámetros

Elemento Descripción
ancla Apunta a la estructura de datos ldmp_parms_t asociada o a una estructura de datos ldmp_prepare_t .
COMP Especifica el componente, especificado como indicado por los distintivos.
extid Apunta a un elemento de tipo dmp_extid_t , para el servicio de kernel de dmp_compspec , donde se devuelve un identificador, si utiliza el servicio de kernel de dmp_compext para proporcionar parámetros adicionales para el componente que se está volcando. A continuación, se puede especificar este identificador para añadir parámetros adicionales al componente utilizando el servicio de kernel de dmp_compext . El parámetro extid puede ser NULL.
distintivos Puede especificar los valores siguientes:
DCF_FAILING
Indica que este es el componente anómalo. Sólo puede especificar un componente anómalo.
DCF_PRIMERO
Indica que este componente se va a volcar primero. Normalmente los componentes se vuelcan en el orden especificado.
Nota:
  • El valor DCF_PRIMERO sólo es válido cuando el ancla hace referencia a un elemento de datos ldmp_parms_t . No es válido cuando la devolución de llamada recibe el mandato RASCD_LDMP_PREPARE .
  • El último componente especificado para volcarse primero es el primero que se vuelca.
DCF_LEVEL0 - DCF_LEVEL9
Indica el nivel de detalle, de 0 a 9, para volcar este componente. Si no se establece ninguno de estos distintivos, el componente se vuelca en su nivel actual.
DCF_MINIMAL
Indica el nivel de DCF_LEVEL1 .
DCF_NORMAL
Indica el nivel de DCF_LEVEL3 .
DCF_DETAIL
Indica el nivel de DCF_LEVEL7 .
DCF_LONG
Indica que los parámetros son dos parámetros de tipo largo. En lugar de pasar en un número ilimitado de series, se puede pasar un componente en dos elementos de datos largos, como en el caso de los pseudo-componentes.
Se debe dar sólo uno de los siguientes distintivos de especificación de componente. Especifican cómo se especifica el componente en el campo dc_component:
DCF_BYPNAME
Indica que el componente se especifica por nombre de vía de acceso.
DCF_BILNAME
Indica que el componente está especificado por alias lógico.
DCF_BYTYPE
Indica que el componente se especifica por tipo.
DCF_BYCB
Indica que el componente se especifica mediante ras_block_t.
p1, p2 ... Especifica los parámetros del componente, el último de los cuales debe ser NULL. Si se especifican parámetros de palabra clave, los parámetros deben ser series y contener la palabra clave y sus valores. Si aparecen varios pares de palabras clave y valor en un único parámetro, se separan con espacios en blanco. Por ejemplo, el parámetro p1 puede ser foo=1234y el parámetro p2 puede ser bar=5678,16. Además, el parámetro p1 puede ser foo=1234 bar=5678.

Si se establece el distintivo DCF_LONG , se pasan dos parámetros de tipo largo. En este caso, los parámetros p1 y p2 contienen los valores de tipo long y no se pueden especificar más parámetros.

Descripción

Los servicios de kernel de dmp_compspec y dmp_compext proporcionan componentes y sus parámetros de devolución de llamada para un vuelco. Sólo puede utilizar estos servicios de kernel en un vuelco activo.

El servicio de kernel de dmp_compspec se utiliza antes de iniciar un vuelco en directo con el servicio de kernel de livedump . También puede utilizar este servicio de kernel cuando la devolución de llamada de un componente desea incluir otro componente en un vuelco activo, es decir, cuando la devolución de llamada recibe el mandato RASCD_LDMP_PREPARE .

Se pueden incluir varios componentes en un vuelco activo.

La función dmp_compext se utiliza para proporcionar parámetros adicionales para un componente.

Valores de retorno

Elemento Descripción
0 Indica una finalización satisfactoria.
EINVAL_RAS_DMP_COMPSPEC_FLAGS Indica que la especificación de distintivos no es válida.
EINVAL_RAS_DMP_COMPSPEC_COMP Indica que la especificación de componente no es válida.
EINVAL_RAS_DMP_COMPSPEC_NOTARWARE Indica que el componente especificado debe dar soporte al vuelco activo.
EINVAL_RAS_DMP_COMPSPEC_ANCHOR Indica que la especificación de ancla no es válida.
EFAULT_RAS_DMP_COMPSPEC_ANCHOR Indica que el almacenamiento al que hace referencia el parámetro de ancla no es válido.
EFAULT_RAS_DMP_COMPSPEC_EXTID Indica que el almacenamiento al que hace referencia el parámetro extid no es válido.
EFAULT_RAS_DMP_COMPSPEC_PARMS Indica que una dirección de parámetro no es válida.
EINVAL_RAS_LDMP_ESTIMATE Indica que el parámetro de ancla indica una solicitud de estimación de tamaño de vuelco, pero la llamada de dmp_compspec no se ha realizado desde el entorno de proceso.
EINVAL_RAS_DMP_COMPSPEC_NOADD Indica que los componentes no se pueden añadir a este vuelco, es decir, los distintivos de tipo de vuelco, ldpr_flags, tienen el conjunto de bits LDT_NOADD.
EINVAL_RAS_DMP_COMPSPEC_FALLEN Indica que el componente anómalo ya se ha especificado.
ENOMM_RAS_DMP_COMPSPEC Indica que no hay almacenamiento disponible.
EINVAL_RAS_DMP_COMPEXT_EXTID Indica que el parámetro extid no hace referencia a un componente válido.
EFAULT_RAS_DMP_COMPEXT_EXTID Indica que el almacenamiento al que hace referencia el parámetro extid no es válido.
EFAULT_RAS_DMP_COMPEXT_PARMS Indica que el almacenamiento a que hace referencia un parámetro no es válido.
EBUSY_RAS_DMP_COMEXT Indica que la especificación de este componente se ha completado y no se pueden añadir más parámetros. Esto sucede si el componente al que se ha referido el parámetro extid ya ha completado su proceso de RASCD_LDMP_PREPARE .
ENOMM_RAS_DMP_COMEXT Indica que no hay almacenamiento disponible.