Linux repositories inspector
Linux
2017-09-15

man-pages-ru

Russian man pages from the Linux Documentation Project

manpages-dev

Manual pages about using GNU/Linux for development

man-pages

Linux kernel and C library user-space interface documentation

ИМЯ

cacheflush - выталкивает содержимое кэша инструкций и/или данных

ОБЗОР

#include <asm/cachectl.h>

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

ОПИСАНИЕ

cacheflush() выталкивает содержимое указанного кэша(ей) обратно в пользовательское адресное пространство в диапазоне с addr по (addr+nbytes-1). Параметр cache может принимать одно из значений:
ICACHE Выталкивает кэш инструкций.
DCACHE Записать обратно в память и объявить недействительными задетые достоверные строки кэша.
BCACHE Тоже что и (ICACHE|DCACHE).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном завершении cacheflush() возвращает 0 или -1 при ошибке. Если обнаружены ошибки, то errno будет содержать номер ошибки.

ОШИБКИ

EFAULT Некоторая часть или весь диапазон адресов с addr по (addr+nbytes-1) недоступен.
EINVAL Значение cache не равно ICACHE, DCACHE или BCACHE (но смотрите ДЕФЕКТЫ).

СООТВЕТСТВИЕ СТАНДАРТАМ

В прошлом, данный системный вызов был доступен во всех вариантах UNIX на MIPS включая RISC/os, IRIX, Ultrix, NetBSD, OpenBSD и FreeBSD (и также в некоторых ОС не-UNIX MIPS), поэтому существование этого вызова в ОС на MIPS является стандартом де-факто.

Предостережение

Вызов cacheflush() не должен использоваться в переносимых программах. В Linux, этот вызов сперва появился на архитектуре MIPS, но в настоящее время Linux предоставляет системный вызов cacheflush() и на других архитектурах, но с другими аргументами.

ДЕФЕКТЫ

Ядра Linux до версии 2.6.11 игнорируют аргументы addr и nbytes, что делает этот вызов относительно дорогим — всегда очищается весь кэш.
Данный вызов всегда поступает так, как если бы в аргументе cache передавалось значение BCACHE, и не выполняет проверку ошибочности значения cache.
⇧ Top