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