fita SCSI Device Driver
Propósito
Suporta o driver de dispositivo de meio de armazenamento em massa de acesso sequencial.
Sintaxe
#include <sys/devinfo.h>
#include <sys/scsi.h>
#include <sys/tape.h>Dispositivo-Subroutines Dependentes
A maioria das operações de fita é implementada usando as subroutines aberto, leitura, escrevere fechar . No entanto, a subroutine openx deve ser usada se o dispositivo deve ser aberto no modo Diagnóstico.
abrir e fechar Subroutines
A subroutine openx é destinada para uso pelos comandos e utilitários de diagnóstico. A autoridade adequada é necessária para execução. A tentativa de executar esta sub-rotina sem a autoridade adequada faz com que a sub-rotina retorne um valor de-1 e define o errno variável global para EPERMA .
O subroutine openx permite que o driver do dispositivo entre no modo de Diagnóstico e desabilita a lógica de retentativa de comando. Esta ação permite a execução de operações ioctl que desempenham funções especiais associadas ao processamento de diagnóstico. Outras capacidades openx , como abertura forçada e reservas retidas, também estão disponíveis.
O parâmetro ext passado para a subroutine openx seleciona a operação a ser utilizada para o dispositivo de destino. O parâmetro ext é definido no arquivo /usr/include/sys/scsi.h . Este parâmetro pode conter qualquer combinação dos seguintes valores de sinalização logicamente ORed juntos:
| Valor da Sin | Descrição |
|---|---|
| SC_DIAGNÓSTICO | Coloca o dispositivo selecionado no modo Diagnóstico. Este modo é singularmente entrante. Quando um dispositivo está no modo Diagnóstico, as operações SCSI são realizadas durante as operações aberto ou fechar e o registro de erros é desativado. No Modo Diagnóstico, apenas as operações fechar e ioctl são aceitas. Todas as outras sub-rotinas suportadas pelo dispositivo retornam um valor de-1 , com o errno variável global definida para um valor de EACCES . Um dispositivo pode ser aberto no modo Diagnóstico apenas se o dispositivo de destino não for aberto atualmente. Se for feita uma tentativa de abrir um dispositivo no modo Diagnóstico e o dispositivo alvo já estiver aberto, um valor de-1 é devolvido e o errno variável global está definida como EACCES . |
| SC_FORCED_OPEN | Força um reset de dispositivo de barramento (BDR) independentemente de outro iniciador ter o dispositivo reservado. O reset do dispositivo de barramento SCSI é enviado para o dispositivo antes do início da sequência aberto . Caso contrário, a operação aberto é executada normalmente. |
| SC_RETAIN_RESERVA | Mantém a reserva do dispositivo após uma operação fechar ao não emitir a liberação. Esta sinalização evita que outros iniciadores usem o dispositivo, a menos que quebrem a reserva da máquina host. |
"Opções SCSI para o openx Subroutine" em Kernel Extensões e Conceitos de Programação de Suporte de Dispositivo dá informações mais específicas sobre as operações abertas.
subrotina ioctl
A operação ioctl STIOCMD fornece os meios para o envio de comandos SCSI diretamente para um dispositivo de fita. Isso permite que um aplicativo emita comandos SCSI específicos que não são suportados diretamente pelo driver do dispositivo de fita.
Para utilizar a operação STIOCMD , o dispositivo deve ser aberto no modo Diagnóstico. Se este comando for tentado enquanto o dispositivo não estiver no modo Diagnóstico, um valor de-1 é devolvido e o errno variável global é definida com um valor de EACCES . A operação STIOCMD passa o endereço de uma estrutura scsi_iocmd . Essa estrutura está definida no/usr/include/sys/scsi_buf.h arquivo.
Consulte o Pequena Especificação de Interface do Sistema de Computadores (SCSI) para o dispositivo aplicável para obter informações sobre a emissão dos parâmetros.
Condições de Erro
Além desses erros listados, o ioctl, aberto, leiturae escrever subroutines contra este dispositivo não são bem sucedidos nas seguintes circunstâncias:
| Erro | Descrição |
|---|---|
| EACCES | Indica que um comando de diagnóstico foi emitido para um dispositivo não no modo Diagnóstico. |
| EAGAIN | Indica que foi feita uma tentativa de abrir um dispositivo que já estava aberto. |
| EBUSY | Indica que o dispositivo de destino é reservado por outro iniciador. |
| EINVAL | Indica que um valor de O_APPEND é fornecido como o modo em que se abre. |
| EINVAL | Indica que o parâmetro nbyte fornecido por uma operação leitura ou escrever não é um múltiplo do tamanho do bloco. |
| EINVAL | Indica que um parâmetro para uma operação ioctl não é válido. |
| EINVAL | Indica que a operação ioctl solicitada não é suportada no dispositivo atual. |
| EIO | Indica que a unidade de fita foi reajustada ou que a fita foi alterada. Este erro é retornado em aberto se a operação anterior a fita deixou a fita posicionada além do início da fita ao fechar. |
| EIO | Indica que o dispositivo não poderia espaço para frente ou inverter o número de registros especificados pelost_countcampo antes de encontrar um EOM (fim de mídia) ou uma marca de arquivo. |
| EMÉDIA | Indica que o dispositivo de fita encontrou um erro de mídia irrecuperável. |
| EMFILE | Indica que uma operação aberto foi tentada para um adaptador SCSI que já possui o número máximo permitido de dispositivos abertos. |
| ENOTREADY | Indica que não há fita na unidade ou a unidade não está pronta. |
| ENXIO | Indica que houve uma tentativa de gravar em uma fita que está na EOM. |
| EPERM | Indica que esta subroutine requer autoridade apropriada. |
| ETIMEDOUT | Indica um comando ter cronometeado. |
| EWRPROTECT | Indica uma operação aberto solicitando o modo de leitura / gravação foi tentado em uma fita de leitura. |
| EWRPROTECT | Indica que uma operação ioctl que afeta a mídia foi tentado em uma fita de leitura. |
Informações de Confiabilidade e Serviceability
Os erros retornados dos dispositivos de fita são os seguintes:
| Erro | Descrição |
|---|---|
| COMANDO ABORTADO | Indica que o dispositivo acabou com o comando. |
| Verificação de espaço em branco | Indica que um comando de leitura encontrou uma fita em branco. |
| PROTEÇÃO DE DADOS | Indica que uma gravação foi tentada em uma fita protegida por gravação. |
| BOA CONCLUSÃO | Indica que o comando foi concluído com sucesso. |
| Erro de Hardware | Indica que uma falha de hardware irrecuperável ocorreu durante a execução do comando ou durante um auto-teste. |
| Pedido ilegal | Indica um comando ilegal ou parâmetro de comando. |
| Erro Médio | Indica que o comando terminou com uma condição de erro de mídia não recuperada. Essa condição pode ser causada por uma falha de fita ou por uma cabeça suja. |
| Não Pronta | Indica que a unidade lógica está offline. |
| Erro Recuperado | Indica que o comando foi bem-sucedido depois que alguma recuperação foi aplicada. |
| Atenção da unidade | Indica que o dispositivo foi reajustado ou ligado. |
Erros de comandos médios, de hardware e abortados da lista acima devem ser registrados a cada vez que ocorrerem. O erro COMANDO ABORTADO pode ser recuperável, mas o erro é registrado se a recuperação falhar. Para os tipos de erro ERRO RECUPERADO e recuperados COMANDO ABORTADO , os limites são mantidos; quando são excedidos, um erro é registrado. Os limites são então apurados.
Valores de Registro de Erro para Erros de Mídias do Dispositivo de
Os campos definidos no modelo de registro de erro para erros de mídia de dispositivo de fita são:
| autorização | Descrição |
|---|---|
| Comment | Igual a erro de mídia de fita. |
| Class | Igual a H, indicando um erro de hardware. |
| Report | Igual a TRUE, indicando esse erro deve ser incluído quando um relatório de erro é gerado. |
| Log | Igual a TRUE, indicando uma entrada de log de erro deve ser criado quando este erro ocorrer. |
| Alert | Igual a FALSE, indicando que este erro não é alertao. |
| Err_Type | Igual a PERM, indicando um fracasso permanente. |
| Err_Desc | Igual a 1332, indicando uma falha de operação de fita. |
| Prob_Causes | Igual a 5003, indicando mídia de fita. |
| User_Causes | Igual a 5100 e 7401, indicando uma causa originária com a fita e a mídia defeituosa, respectivamente. |
| User_Actions | Iguais a 1601 e 0000, indicando, respectivamente, que os meios de comunicação removíveis devem ser substituídos e a operação rejulgada, e que procedimentos de determinação de problemas devem ser executados. |
| Inst_Causes | Nenhum. |
| Inst_Actions | Nenhum. |
| Fail_Causes | Igual a 5003, indicando mídia de fita. |
| Fail_Actions | Iguais a 1601 e 0000, indicando, respectivamente, que os meios de comunicação removíveis devem ser substituídos e a operação rejulgada e que procedimentos de determinação de problemas devem ser executados. |
Os comandosDetail_Datacampo contém o tipo de comando, o dispositivo e o status do adaptador e as informações de sentido de solicitação do dispositivo particular em erro. Os comandosDetail_Datacampo está contido na estrutura err_rec . Esta estrutura é definida no arquivo /usr/include/sys/errids.h . A estrutura sc_error_log_df , que descreve informações contidas noDetail_Datacampo, é definido no arquivo /usr/include/sys/scsi.h .
Consulte o Pequena Especificação de Interface do Sistema de Computadores (SCSI) para o dispositivo aplicável para o formato das informações de solicitação de sentido específico.
Erro-Registros de Registro para Fitas ou Erros de Comando abortado de Hardware
Os campos na estrutura err_hdr , conforme definido no arquivo /usr/include/sys/erec.h para erros de hardware e erros de comando abortados, são:
| autorização | Descrição |
|---|---|
| Comment | Igual a um hardware de fita ou erro de comando abortado. |
| Class | Igual a H, indicando um erro de hardware. |
| Report | Igual a TRUE, indicando esse erro deve ser incluído quando um relatório de erro é gerado. |
| Log | Igual a TRUE, indicando uma entrada de log de erro deve ser criado quando este erro ocorrer. |
| Alert | FALSO, indicando que este erro não é alertao. |
| Err_Type | Igual a PERM, indicando um fracasso permanente. |
| Err_Desc | Igual a 1331, indicando uma falha na unidade de fita. |
| Prob_Causes | Igual a 6314, indicando um erro da unidade de fita. |
| User_Causes | Nenhum. |
| User_Actions | Igual a 0000, indicando que procedimentos de determinação de problemas devem ser executados. |
| Inst_Actions | Nenhum. |
| Fail_Causes | Igual a 5003 e 6314, indicando a causa falha é a fita e a unidade de fita, respectivamente. |
| Fail_Actions | Igual a 0000 para executar procedimentos de determinação de problemas. |
Os comandosDetail_Datacampo contém o tipo de comando, o dispositivo e o status do adaptador e as informações de sentido de solicitação do dispositivo particular em erro. Os comandosDetail_Datacampo está contido na estrutura err_rec . Esta estrutura é definida no arquivo /usr/include/sys/errids.h . A estrutura sc_error_log_df , que descreve informações contidas noDetail_Datacampo, é definido no arquivo /usr/include/sys/scsi.h .
Consulte o Pequena Especificação de Interface do Sistema de Computadores (SCSI) para o dispositivo aplicável para o formato das informações de solicitação de sentido específico.
Erro-Valores de Registro para Fita-Limite de Erro Recuperado excedido
Os campos definidos na estrutura err_hdr , conforme definido no arquivo /usr/include/sys/erec.h para erros recuperados que excederam o contador de limite, são:
| autorização | Descrição |
|---|---|
| Comment | Indica que o limite de erro recuperado em fita foi excedido. |
| Class | Igual a H, indicando um erro de hardware. |
| Report | Igual a TRUE, indicando esse erro deve ser incluído quando um relatório de erro é gerado. |
| Log | Igual a TRUE, indicando uma entrada de log de erro deve ser criado quando este erro ocorrer. |
| Alert | Igual a FALSE, indicando que este erro não é alertao. |
| Err_Type | Igual a PERM, indicando um fracasso permanente. |
| Err_Desc | Igual a 1331, indicando uma falha na unidade de fita. |
| Prob_Causes | Igual a 5003 e 6314, indicando a causa provável é a unidade de fita e fita, respectivamente. |
| User_Causes | Igual a 5100 e 7401, indicando que a mídia é defeituosa e a cabeça de leitura / gravação está suja, respectivamente. |
| User_Actions | Igual a 1601 e 0000, indicando que a mídia removível deve ser substituída e a operação rejulgada e que procedimentos de determinação de problemas devem ser executados, respectivamente. |
| Inst_Causes | Nenhum. |
| Inst_Actions | Nenhum. |
| Fail_Causes | Igual a 5003 e 6314, indicando a causa é a unidade de fita e fita, respectivamente. |
| Fail_Actions | Igual a 0000, para realizar procedimentos de determinação de problemas. |
Os comandosDetail_Datacampo contém o tipo de comando, o dispositivo e o status do adaptador e as informações de sentido de solicitação do dispositivo particular em erro. Este campo está contido na estrutura err_rec . A estrutura err_rec é definida no arquivo /usr/include/sys/errids.h . Os comandosDetail_Datacampo também especifica o tipo de erro do limite excedido. A estrutura sc_error_log_df , que descreve informações contidas noDetail_Datacampo, é definido no arquivo /usr/include/sys/scsi.h .
Consulte o Pequena Especificação de Interface do Sistema de Computadores (SCSI) para o dispositivo aplicável para o formato das informações de solicitação de sentido específico.
Erro Registro Valores para Adaptador SCSI de Fita-Erros detectados
Os campos na estrutura err_hdr , conforme definido no arquivo /usr/include/sys/erec.h para erros detectados pelo adaptador, são:
| autorização | Descrição |
|---|---|
| Comment | Igual a um adaptador SCSI de fita-erro detectado. |
| Class | Igual a H, indicando um erro de hardware. |
| Report | Igual a TRUE, indicando esse erro deve ser incluído quando um relatório de erro é gerado. |
| Log | Igual a TRUE, indicando uma entrada de log de erro deve ser criado quando este erro ocorrer. |
| Alert | Igual a FALSE, indicando que este erro não é alertao. |
| Err_Type | Igual a PERM, indicando um fracasso permanente. |
| Err_Desc | Igual a 1331, indicando uma falha na unidade de fita. |
| Prob_Causes | Igual a 3300 e 6314, indicando uma falha do adaptador e da unidade de fita, respectivamente. |
| User_Causes | Nenhum. |
| User_Actions | Igual a 0000, indicando que procedimentos de determinação de problemas devem ser executados. |
| Inst_Causes | Nenhum. |
| Inst_Actions | Nenhum. |
| Fail_Causes | Igual a 3300 e 6314, indicando uma falha do adaptador e da unidade de fita, respectivamente. |
| Fail_Actions | Igual a 0000, para realizar procedimentos de determinação de problemas. |
Os comandosDetail_Datacampo contém o tipo de comando e o status do adaptador. Este campo está contido na estrutura err_rec , que é definida pelo arquivo /usr/include/sys/err_rec.h . Informações de sentido de solicitação não estão disponíveis com este tipo de erro. A estrutura sc_error_log_df descreve informações contidas noDetail_Datacampo e é definido no arquivo /usr/include/sys/scsi.h .
Consulte o Pequena Especificação de Interface do Sistema de Computadores (SCSI) para o dispositivo aplicável para o formato das informações de solicitação de sentido específico.
Erro-Registros de Registro para Erros de Limpeza Da Unidade De Fita
Algumas fitas de fita retornam erros quando precisam de limpeza. Erros que ocorrem quando a unidade precisa de limpeza são agrupados sob esta classe.
| autorização | Descrição |
|---|---|
| Comment | Indica que a unidade de fita precisa de limpeza. |
| Class | Igual a H, indicando um erro de hardware. |
| Report | Igual a TRUE, indicando que este erro deve ser incluído quando um relatório de erro é gerado. |
| Log | Igual a TRUE, indicando que uma entrada de erro-log deve ser criada quando esse erro ocorrer. |
| Alert | Igual a FALSE, indicando que este erro não é alertao. |
| Err_Type | Igual ao TEMP, indicando uma falha temporária. |
| Err_Desc | Igual a 1332, indicando um erro de operação de fita. |
| Prob_Causes | Igual a 6314, indicando que a causa provável é a unidade de fita. |
| User_Causes | Igual a 7401, indicando um cabeçote de leitura / gravação sujo. |
| User_Actions | Igual a 0000, indicando que procedimentos de determinação de problemas devem ser executados. |
| Inst_Causes | Nenhum. |
| Inst_Actions | Nenhum. |
| Fail_Causes | Igual a 6314, indicando que a causa é a unidade de fita. |
| Fail_Actions | Igual a 0000, indicando para realizar procedimentos de determinação de problemas. |
Os comandosDetail_Datacampo contém o tipo de comando e o status do adaptador e também as informações de sentido de solicitação do dispositivo particular em erro. Este campo está contido na estrutura err_rec , que é definida pelo arquivo /usr/include/sys/errids.h . A estrutura sc_error_log_df descreve informações contidas noDetail_Datacampo e é definido no arquivo /usr/include/sys/scsi.h .
Consulte o Pequena Especificação de Interface do Sistema de Computadores (SCSI) para o dispositivo aplicável para o formato das informações de solicitação de sentido específico.
Erro-Gravação de Valores para Erros Desconhecidos
Erros que ocorrem por razões desconhecidas são agrupados nesta classe. Erros de proteção de dados caem nessa classe. Esses erros, detectados pelo driver do dispositivo de fita, nunca são vistos na unidade de fita.
A estrutura err_hdr para erros desconhecidos descreve os seguintes campos:
| autorização | Descrição |
|---|---|
| Comment | Igual a fita erro desconhecido. |
| Class | Igual a todas as classes de erro. |
| Report | Igual a TRUE, indicando esse erro deve ser incluído quando um relatório de erro é gerado. |
| Log | Igual a TRUE, indicando uma entrada de erro-log deve ser criado quando este erro ocorrer. |
| Alert | Igual a FALSE, indicando que este erro não é alertao. |
| Err_Type | Igual ao UNKN, indicando o tipo de erro é desconhecido. |
| Err_Desc | Igual a 0xFE00, indicando a descrição do erro é desconhecida. |
| Prob_Causes | Nenhum. |
| User_Causes | Nenhum. |
| User_Actions | Nenhum. |
| Inst_Causes | Nenhum. |
| Inst_Actions | Nenhum. |
| Fail_Causes | Igual a 0xFFFF, indicando a causa de falha é desconhecida. |
| Fail_Actions | Igual a 0000, indicando que procedimentos de determinação de problemas devem ser executados. |
Os comandosDetail_Datacampo contém o tipo de comando e status do adaptador, e as informações de sentido de solicitação do dispositivo particular em erro. Os comandosDetail_Datacampo está contido na estrutura err_rec . Este campo está contido no arquivo /usr/include/sys/errids.h . A estrutura sc_error_log_df descreve informações contidas noDetail_Datacampo e é definido no arquivo /usr/include/sys/scsi.h .
Consulte o Pequena Especificação de Interface do Sistema de Computadores (SCSI) para o dispositivo aplicável para o formato das informações de solicitação de sentido específico.
Arquivos
/dev/rmt0, /dev/rmt0.1, /dev/rmt0.2, ..., /dev/rmt0.7,
/dev/rmt1, /dev/rmt1.1, /dev/rmt1.2, ..., /dev/rmt1.7,...,
| Item | Descrição |
|---|---|
| /dev/rmt255, /dev/rmt255.1, /dev/rmt255.2, ..., /dev/rmt255.7 | Forneça uma interface para permitir que os drivers de dispositivo SCSI acessem unidades de fita SCSI. |