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.
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. |