Interface: ErrorManager Arquivos: errormanager.h Última atualização: 11/04/2004 Autor: Luiz Henrique Shigunov |
Descrição |
Para facilitar o desenvolvimento, a identificação e a manipulação dos códigos de retorno das funções, códigos padrões foram definidos.
O administrador de erros não tem implementação.
Algumas funções do sistema retornam um ponteiro e como alguns valores do ponteiro não são válidos, esses valores são usados para retornar o código de erro.
As seguintes macros foram criadas para este caso:
IS_PTR_ERROR(error) - retorna verdadeiro se o ponteiro error é um erro.
PTR_TO_ERROR(error) - converte o ponteiro error num inteiro.
ERROR_TO_PTR(error) - converte o inteiro error num ponteiro.
Se uma função que retorne void * quiser retornar o erro E_FAULT ela deve fazer: return ERROR_TO_PTR(E_FAULT);
Códigos de retorno
Constante | Valor | Descrição |
---|---|---|
E_OK | 0x00 | Sucesso |
E_BAD_INDEX | 0x01 | Índice incorreto |
E_BAD_VALUE | 0x02 | Valor incorreto |
E_BAD_TYPE | 0x03 | Tipo incorreto |
E_MISMATCHED_VALUES | 0x04 | Valores conflitantes |
E_PERMISSION_DENIED | 0x05 | Permissão negada |
E_FAULT | 0x06 | Endereço de memória incorreto |
E_NOT_ALLOWED | 0x07 | Operação não permitida |
E_NOT_INIT | 0x08 | Estrutura/objeto não iniciado corretamente |
E_NOT_FOUND | 0x09 | Valor/objeto/recurso não encontrado |
E_NOT_READY | 0x0a | Objeto/recurso não está pronto |
E_NOT_EMPTY | 0x0b | Objeto/recurso não vazio |
E_NOT_IN_USE | 0x0c | Objeto/recurso não está sendo usado |
E_EMPTY | 0x0d | Objeto/recurso vazio |
E_IN_USE | 0x0e | Valor/objeto/recurso em uso |
E_BUSY | 0x0f | Ocupado |
E_TIMED_OUT | 0x10 | Tempo limite esgotado |
E_INTERRUPTED | 0x11 | Operação interrompida |
E_WOULD_BLOCK | 0x12 | Iria bloquear |
E_IO_ERROR | 0x13 | Erro de entrada/saída |
E_TOO_BIG | 0x14 | Nome/estrutura/buffer grande demais |
E_UNSUPPORTED | 0x15 | Operação não suportada |
E_END_REACHED | 0x16 | Fim alcançado |
E_NO_MEMORY | 0x17 | Não existe memória suficiente |
E_REGISTERED | 0x18 | Objeto/estrutura já está registrada |
E_NOT_REGISTERED | 0x19 | Objeto/estrutura não está registrada |
E_UNDEFINED | 0x1a | Erro indefinido |
E_NOT_IMPLEMENTED | 0x1b | Função/operação não implementada |
E_BUG | 0x1c | A especificação da interface não foi atendida. Por exemplo, um valor de parâmetro incorreto. |
E_NOT_USER_TASK | 0x1d | A tarefa não é uma tarefa do usuário |
E_NO_SUCH_UNIT | 0x1e | Unidade inexistente |
E_BUFFER_TOO_SMALL | 0x1f | Tamanho do buffer muito pequeno |
E_NO_SUCH_DRIVE | 0x20 | Drive inexistente |
E_NO_SUCH_INTERFACE | 0x21 | Interface inexistente |
E_INVALID_VERSION | 0x22 | Versão inválida |
E_PROBE_FAILED | 0x23 | O teste falhou |
E_NO_SUCH_IMPLEMENTATION | 0x24 | Implementação inexistente |
E_FILE_ERROR | 0x30 | Erro genérico de arquivo |
E_FILE_EXISTS | 0x31 | O arquivo já existe |
E_TOO_MANY_OPEN_FILES | 0x32 | Limite máximo de arquivos abertos atingido |
E_NOT_A_DIRECTORY | 0x33 | Não é um diretório |
E_IS_A_DIRECTORY | 0x34 | É um diretório |
E_FS_FULL | 0x35 | Sistema de arquivos cheio |
E_READ_ONLY_FS | 0x36 | Sistema de arquivos apenas para leitura |
E_CORRUPTED_FS | 0x37 | Sistema de arquivos corrompido |
E_LOOP | 0x38 | Muitas ligações simbólicas foram encontradas |
E_NOT_FILE_DIR | 0x39 | Não é um arquivo nem um diretório |
E_NO_MEDIA | 0x40 | Sem mídia no dispositivo |
E_MEDIA_CHANGED | 0x41 | A mídia foi mudada |
E_FORMAT_ERROR | 0x42 | Erro na formatação da mídia |
E_READ_ONLY_DEVICE | 0x43 | Dispositivo apenas para leitura |
E_LOADING_MODULE | 0x50 | Erro carregando o módulo |
E_STARTING_MODULE | 0x51 | Erro iniciando o módulo |
E_SHUTTINGDOWN_MODULE | 0x52 | Erro finalizando o módulo |
E_INTERFACE_NOT_IMPLEMENTED | 0x53 | A interface não é implementada pelo módulo |
E_BAD_FUNCTION_TYPE | 0x54 | Tipo da função inválida (é do usuário e deveria ser do sistema ou vice-versa) |
E_MODULE | 0x55 | Erro genérico de módulo |
E_HANDLED_INT | 0x70 | A interrupção foi servida |
E_UNHANDLED_INT | 0x71 | A interrupção não foi servida |
E_INVOKE_SCHEDULER | 0x72 | A interrupção foi servida e o escalonador deve ser chamado |