Главная » 2017 » Ноябрь » 17 » man 2 cacheflush
01:22
man 2 cacheflush

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


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.



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 571 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar