CACHEFLUSH(2)

NOME
cacheflush - descarrega o conteúdo do cache de instruções e/ou dados

SINOPSE
#include <asm/cachectl.h>

int cacheflush(char *addr, int nbytes, int cache);

DESCRIÇÃO
cacheflush() descarrega o conteúdo do(s) cache(s) indicado(s) pelos endereços do usuário no intervalo addr até (addr+nbytes-1). cache pode ser um entre:

ICACHE
    Descarrega o cache de instruções.

DCACHE
    Escreve de volta para a memória e invalida as linhas válidas de cache afetadas.

BCACHE
    O mesmo que (ICACHE|DCACHE).

VALOR DE RETORNO
cacheflush() returna 0 em caso de sucesso ou -1 em caso de erro. Se erros forem detectados, errno indicará o erro.

ERROS

EFAULT
    Algum ou todos os endereços no intervalo de addr até (addr+nbytes-1) não estão acessíveis.

EINVAL
    cache não é um de ICACHE, DCACHE ou BCACHE (mas veja BUGS).

DE ACORDO COM
Historicamente, essa chamada de sistema estava disponível em todas as variantes do MIPS UNIX, incluindo RISC/os, IRIX, Ultrix, NetBSD, OpenBSD e FreeBSD (e também em alguns sistemas operacionais MIPS não UNIX), de forma que a existência dessa chamada nos sistemas operacionais de MIPS é um padrão de fato.

  Problemas
cacheflush() não deve ser usado em programas destinados a serem portáteis. No Linux, essa chamada apareceu pela primeira vez na arquitetura MIPS, mas atualmente o Linux fornece uma chamada do sistema cacheflush() em algumas outras arquiteturas, mas com argumentos diferentes.

BUGS
Os kernels do Linux anteriores à versão 2.6.11 ignoram os argumentos addr e nbytes, tornando essa função bastante custosa. Portanto, todo o cache é sempre liberado.

Essa função sempre se comporta como se BCACHE tivesse sido passado para o argumento cache e não realiza nenhuma verificação de erro no argumento cache.

COLOFÃO
Esta página faz parte da versão 5.08 do projeto Linux man-pages. Uma descrição do projeto, informações sobre relatórios de bugs e a versão mais recente desta página podem ser encontradas em https://www.kernel.org/doc/man-pages/.

TRADUÇÃO
A tradução para português brasileiro desta página man foi criada por Marcelo D. Beckmann <marcelobeckmann@yahoo.com>, Fábio Henrique F. Silva <fabiohfs@mail.com> e Rafael Fontenelle <rafaelff@gnome.org>. Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita. Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para <debian-l10n-portuguese@lists.debian.org>.