dmp_add Serviço do kernel
Propósito
Especifica dados a serem incluídos em um dump do sistema, adicionando uma entrada na tabela de dump master. Os convocados devem usar o dmp_ctl Serviço de Kernel. Este serviço é fornecido para fins de compatibilidade.
Sintaxe
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/dump.h>
Descrição
Extensões do kernel usam o serviço dmp_add para registrar áreas de dados a serem incluídas em um dump do sistema. O serviço dmp_add adiciia uma entrada na tabela de dump master. Uma entrada de tabela de dump master é um ponteiro para uma função fornecida pela extensão do kernel que será chamada pela rotina do dump do kernel quando ocorre um dump do sistema. A função deve retornar um ponteiro para uma estrutura de tabela de dump de componentes.
Quando ocorre um dump, a rotina do dump do kernel chama a função especificada pelo parâmetro cdt_func duas vezes. Na primeira chamada, um argumento de 1 indica que a rotina do dump do kernel está começando a fazer o dump dos dados especificados pela tabela de dump do componente. Na segunda chamada, um argumento de 2 indica que a rotina do dump do kernel terminou de despejar os dados especificados pela tabela de dump do componente. As extensões do kernel devem alocar e fixar suas tabelas de dump de componentes e chamar o serviço dmp_add durante a inicialização. As entradas na tabela de dump do componente podem ser preenchidas posteriormente. A rotina cdt_func não deve tentar alocar memória quando ela é chamada.
A Tabela Dump do Componente
A estrutura da tabela de dump do componente especifica áreas de memória a serem incluídas no dump do sistema. O tipo de estrutura (struct cdt) é definido no arquivo /usr/include/sys/dump.h . Uma estrutura cdt consiste em um cabeçalho de comprimento fixo (estruturacdt_head ) e uma matriz de uma ou mais estruturas cdt_entry . A estrutura cdt_head contém um campo de nome de componente, que deve ser preenchido com o nome da extensão do kernel, e o comprimento da tabela de dump do componente. Cada estrutura cdt_entry descreve uma área de dados contígua, dando um ponteiro para a área de dados, seu comprimento, um cadastro do segmento e um nome para a área de dados.
Uso da Rotina de Formatação
Cada extensão kernel que inclui dados no dump do sistema pode instalar uma rotina de formatação exclusiva no diretório /var/adm/ras/dmprtns directory.The da rotina de formatação deve corresponder ao campo de nome do componente da tabela de dump do componente correspondente..
O arquivo de imagem de dump inclui uma cópia de cada tabela de dump de componente usada para fazer dump da memória do memory.A é fornecido com o bos.sysmgt.serv_aid no diretório /usr/samples/dumpfmt
Organização do Arquivo de Imagem do Dump
A memória despejada para cada extensão do kernel é estabelecida da seguinte forma no arquivo de imagem do dump. A tabela de dump do componente é seguida por um bitmap para a primeira área de dados, depois a primeira área de dados em si, depois um bitmap para a próxima área de dados, a próxima área de dados em si, e assim por diante.
O bitmap para uma área de dados específica indica quais páginas da área de dados estão presentes na imagem do dump e quais não são. Páginas que não estavam na memória quando o dump ocorreu não foram despejadas. O bit menos significativo do primeiro byte do bitmap é configurado para 1 (um) se a primeira página estiver presente. O próximo bit menos significativo indica a presença ou ausência da segunda página e assim por diante.
Uma macro para determinar o tamanho de um bitmap é fornecida no arquivo /usr/include/sys/dump.h .
Parâmetros
| Item | Descrição |
|---|---|
| cdt_func | Especifica uma função que retorna um ponteiro para uma entrada de tabela de dump de componentes. A função e a entrada da tabela de dump de componente ambos devem residir na memória global pintada. |
Ambiente de Execução
O serviço kernel dmp_add pode ser chamado a partir do ambiente de processo apenas.
Valores De Retorno
| Item | Descrição |
|---|---|
| 0 | Indica uma operação bem-sucedida. |
| -1 | Indica que o ponteiro de função a ser adicionado já está presente na tabela de dump master. |