Scroll to navigation

CACHEFLUSH(2) Manual do Programador do Linux 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:

Descarrega o cache de instruções.
Escreve de volta para a memória e invalida as linhas válidas de cache afetadas.
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

Algum ou todos os endereços no intervalo de addr até (addr+nbytes-1) não estão acessíveis.
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 4.16 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 a lista de discussão de tradutores.

15 setembro 2017 Linux