.\" -*- coding: UTF-8 -*- .\" Written by Ralf Baechle (ralf@waldorf-gmbh.de), .\" Copyright (c) 1994, 1995 Waldorf GMBH .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH cacheflush 2 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH НАИМЕНОВАНИЕ cacheflush \- выталкивает содержимое кэша инструкций и/или данных .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP, \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP .P \fBint cacheflush(void \fP\fIaddr\fP\fB[.\fP\fInbytes\fP\fB], int \fP\fInbytes\fP\fB, int \fP\fIcache\fP\fB);\fP .fi .P \fIПримечание\fP: На некоторых архитектурах нет оболочки glibc для этой системы call; см. ПРИМЕЧАНИЯ. .SH ОПИСАНИЕ \fBcacheflush\fP() выталкивает содержимое указанного кэша(ей) обратно в пользовательское адресное пространство в диапазоне с \fIaddr\fP по \fI(addr+nbytes\-1)\fP. Параметр \fIcache\fP может принимать одно из значений: .TP \fBICACHE\fP Выталкивает кэш инструкций. .TP \fBDCACHE\fP Записать обратно в память и объявить недействительными задетые достоверные строки кэша. .TP \fBBCACHE\fP Тоже что и \fB(ICACHE|DCACHE)\fP. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" \fBcacheflush\fP() returns 0 on success. On error, it returns \-1 and sets \fIerrno\fP to indicate the error. .SH ОШИБКИ .TP \fBEFAULT\fP Некоторая часть или весь диапазон адресов с \fIaddr\fP по \fI(addr+nbytes\-1)\fP недоступен. .TP \fBEINVAL\fP Значение \fIcache\fP не равно \fBICACHE\fP, \fBDCACHE\fP или \fBBCACHE\fP (но смотрите ДЕФЕКТЫ). .SH ВЕРСИИ Вызов \fBcacheflush\fP() не должен использоваться в переносимых программах. В Linux, этот вызов сперва появился на архитектуре MIPS, но в настоящее время Linux предоставляет системный вызов \fBcacheflush\fP() и на других архитектурах, но с другими аргументами. .SS "Варианты, зависящие от архитектуры" glibc provides a wrapper for this system call, with the prototype shown in SYNOPSIS, for the following architectures: ARC, CSKY, MIPS, and NIOS2. .P В некоторых других архитектурах Linux предоставляет этот системный вызов с другими аргументами: .TP M68K: .nf \fBint cacheflush(unsigned long \fP\fIaddr\fP\fB, int \fP\fIscope\fP\fB, int \fP\fIcache\fP\fB,\fP \fB unsigned long \fP\fIlen\fP\fB);\fP .fi .TP SH: .nf \fBint cacheflush(unsigned long \fP\fIaddr\fP\fB, unsigned long \fP\fIlen\fP\fB, int \fP\fIop\fP\fB);\fP .fi .TP NDS32: .nf \fBint cacheflush(unsigned int \fP\fIstart\fP\fB, unsigned int \fP\fIend\fP\fB, int \fP\fIcache\fP\fB);\fP .fi .P On the above architectures, glibc does not provide a wrapper for this system call; call it using \fBsyscall\fP(2). .SS "альтернатива GCC" Unless you need the finer grained control that this system call provides, you probably want to use the GCC built\-in function \fB__builtin___clear_cache\fP(), which provides a portable interface across platforms supported by GCC and compatible compilers: .P .in +4n .EX \fBvoid __builtin___clear_cache(void *\fP\fIbegin\fP\fB, void *\fP\fIend\fP\fB);\fP .EE .in .P На платформах, не требующих очистки кэша инструкций, \fB__builtin___clear_cache\fP() не имеет никакого эффекта. .P \fIПримечание\fP: В некоторых GCC\-совместимых компиляторах прототип этой встроенной функции использует \fIchar *\fP вместо \fIvoid *\fP для параметров. .SH СТАНДАРТЫ В прошлом, данный системный вызов был доступен во всех вариантах UNIX на MIPS включая RISC/os, IRIX, Ultrix, NetBSD, OpenBSD и FreeBSD (и также в некоторых ОС не\-UNIX MIPS), поэтому существование этого вызова в ОС на MIPS является стандартом де\-факто. .SH ОШИБКИ Linux kernels older than Linux 2.6.11 ignore the \fIaddr\fP and \fInbytes\fP arguments, making this function fairly expensive. Therefore, the whole cache is always flushed. .P Данный вызов всегда поступает так, как если бы в аргументе \fIcache\fP передавалось значение \fBBCACHE\fP, и не выполняет проверку ошибочности значения \fIcache\fP. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , Katrin Kutepova , Yuri Kozlov , Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .