Обозначить недействительными строки кэша, связанные с буфером данных
#include <sys/cache.h>CACHE_INVAL( struct cache_ctrl *cinfo,void *vaddr,uint64_t paddr,size_t len );
MAP_PHYS
и MAP_ANON
flags) и предварительно определяют физические адреса данных.libcache
Этот макрос используется для аннулирования любых строк кэша, связанных с буфером данных. Эта процедура гарантирует, что любые последующие изменения, которые вносятся в данные внешним устройством, не будут повреждены ЦП, при записи данных из кэша ЦП в память, и гарантирует, что после изменения данных ЦП получит обновленные данные из памяти вместо извлечения устаревших данных из кэша.
Перед использованием макросов CACHE_*() на платформах ARM и MIPS, вызывающий поток должен получить права на запись и чтение путем вызова ThreadCtl(), с указанием флага _NTO_TCTL_IO:
ThreadCtl( _NTO_TCTL_IO, 0 );
Не выполнение данной операции влечет появление сигнала SIGILL
(недопустимая инструкция).
Следующие переменные окружения, если они существуют, влияют на поведение данной функции:
ЗОСРВ «Нейтрино»
CACHE_INVAL() является макросом.
struct cache_ctrl, cache_fini(), CACHE_FLUSH(), cache_init()
Предыдущий раздел: Описание API библиотеки cache