SCIOREAD (Leia) SCSI Adaptador de Dispositivo Assistente ioctl Operação

Propósito

Emite um único comando block SCSI leitura para um dispositivo SCSI selecionado.

Descrição

A operação SCIOREAD permite que o responsável pela chamada emita um comando leitura do dispositivo SCSI para um adaptador selecionado. Rotinas de gerenciamento do sistema utilizam este comando para configurar dispositivos SCSI.

O parâmetro arg da operação SCIOREAD é o endereço de uma estrutura sc_readblk . Essa estrutura é definida no arquivo de cabeçalho /usr/include/sys/scsi.h .

Este comando resulta no driver de dispositivo adaptador SCSI emitindo um comando ANSI SCSI-1 leitura de formato ANSI 6-byte. O comando é configurado para ler apenas um único bloco. Os suprimentos do ouvinte:

  • Dispositivo de destino SCSI e ID de suporte
  • Número lógico do bloco a ser lido
  • Comprimento (em bytes) do bloco no dispositivo
  • Valor de tempo limite (em segundos) para o comando
  • Pointer para o buffer de aplicação onde os dados retornados devem ser colocados
  • Parâmetro Flags

O comprimento máximo do bloco para este comando é 4096 bytes. O comando será rejeitado se o comprimento for considerado maior do que este valor.

A sinalização SC_ASYNC do parâmetro flag não deve ser definida na chamada inicial para esta operação. Esta sinalização é definida apenas se ocorrer uma falha de barramento e somente se esta for a última tentativa de nova tentativa do ouvinte após esse erro ocorrer.

Nota: O driver de dispositivo adaptador SCSI executa procedimentos normais de recuperação de erros durante a execução deste comando.

Valores De Retorno

Quando concluído com sucesso esta operação retorna um valor de 0. Caso contrário, um valor de-1 é devolvido e o errno variável global é definida como um dos seguintes valores:

Valor Descrição
EFAULT Indica que ocorreu uma cópia ruim entre o kernel e o espaço do usuário.
EINVAL Indica que um comando SCIOSTART não foi emitido antes deste comando. Se o comando SCIOSTART foi emitido, então isso indica que o valor do campo length block é muito grande.
EIO Indica que ocorreu um erro de E/S. Se um valor EIO for retornado, o ouvinte deverá tentar novamente a operação SCIOREAD desde que o primeiro comando pode ter limpo uma condição de erro com o dispositivo. No caso de um erro do adaptador, o log de erros do sistema registra as informações de status de erro do adaptador.
ENOCONNECT Indica que uma falha de ônibus ocorreu. O ouvinte deverá responder retentando com o sinalizador SC_ASYNC configurado no byte de sinalização dos parâmetros passados. Se mais de uma nova tentativa for tentada, apenas a última nova tentativa deverá ser feita com o conjunto de bandeiras SC_ASYNC . Geralmente, o driver de dispositivo adaptador SCSI não pode determinar qual dispositivo causou a falha do barramento, portanto, este erro não é registrado.
ENODEV Indica que nenhum controlador SCSI respondeu ao ID SCSI solicitado. Esse valor de retorno implica que nenhum número de unidade lógica (LUNs) existe no ID SCSI especificado. Essa condição não é necessariamente um erro e não é registrada.
ENOMEM Indica memória insuficiente está disponível para completar o comando.
ETIMEDOUT Indica que o adaptador não respondeu com status antes que o valor de tempo limite interno expirado. O ouvinte deve tentar novamente este comando pelo menos uma vez, uma vez que o primeiro comando pode ter limpo uma condição de erro com o dispositivo. O log de erros do sistema registra este erro.

Arquivos

Item Descrição
/dev/scsi0, /dev/scsi1, ..., /dev/scsi n Forneça uma interface para permitir que os drivers de dispositivo SCSI acessem os dispositivos / adaptadores SCSI.
/dev/vscsi0, /dev/vscsi1, ..., /dev/vscsin Forneça uma interface para permitir que os drivers de dispositivos SCSI-2 Rápida / Wide Adapter/A e SCSI-2 Diferencial Fast / Wide Adapter/A acessem dispositivos SCSI ou adaptadores.