.\" -*- coding: UTF-8 -*- .\" Written by Ralf Baechle (ralf@waldorf-gmbh.de), .\" Copyright (c) 1994, 1995 Waldorf GMBH .\" .\" %%%LICENSE_START(GPLv2+_DOC_FULL) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, see .\" . .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH CACHEFLUSH 2 "21 декабря 2020 г." Linux "Руководство программиста Linux" .SH ИМЯ cacheflush \- выталкивает содержимое кэша инструкций и/или данных .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint cacheflush(char *\fP\fIaddr\fP\fB, int \fP\fInbytes\fP\fB, int \fP\fIcache\fP\fB);\fP .fi .PP \fINote\fP: On some architectures, there is no glibc wrapper for this system call; see NOTES. .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() возвращает 0 или \-1 при ошибке. Если обнаружены ошибки, то \fIerrno\fP будет содержать номер ошибки. .SH ОШИБКИ .TP \fBEFAULT\fP Некоторая часть или весь диапазон адресов с \fIaddr\fP по \fI(addr+nbytes\-1)\fP недоступен. .TP \fBEINVAL\fP Значение \fIcache\fP не равно \fBICACHE\fP, \fBDCACHE\fP или \fBBCACHE\fP (но смотрите ДЕФЕКТЫ). .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" В прошлом, данный системный вызов был доступен во всех вариантах UNIX на MIPS включая RISC/os, IRIX, Ultrix, NetBSD, OpenBSD и FreeBSD (и также в некоторых ОС не\-UNIX MIPS), поэтому существование этого вызова в ОС на MIPS является стандартом де\-факто. .SS Предостережение Вызов \fBcacheflush\fP() не должен использоваться в переносимых программах. В Linux, этот вызов сперва появился на архитектуре MIPS, но в настоящее время Linux предоставляет системный вызов \fBcacheflush\fP() и на других архитектурах, но с другими аргументами. .SH ЗАМЕЧАНИЯ .SS "Варианты, зависящие от архитектуры" Glibc provides a wrapper for this system call, with the prototype shown in SYNOPSIS, for the following architectures: ARC, CSKY, MIPS, and NIOS2. .PP On some other architectures, Linux provides this system call, with different arguments: .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 .PP On the above architectures, glibc does not provide a wrapper for this system call; call it using \fBsyscall\fP(2). .SS "GCC alternative" 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: .PP .in +4n .EX \fBvoid __builtin___clear_cache(void *\fP\fIbegin\fP\fB, void *\fP\fIend\fP\fB);\fP .EE .in .PP On platforms that don't require instruction cache flushes, \fB__builtin___clear_cache\fP() has no effect. .PP \fINote\fP: On some GCC\-compatible compilers, the prototype for this built\-in function uses \fIchar *\fP instead of \fIvoid *\fP for the parameters. .SH ДЕФЕКТЫ Ядра Linux до версии 2.6.11 игнорируют аргументы \fIaddr\fP и \fInbytes\fP, что делает этот вызов относительно дорогим — всегда очищается весь кэш. .PP Данный вызов всегда поступает так, как если бы в аргументе \fIcache\fP передавалось значение \fBBCACHE\fP, и не выполняет проверку ошибочности значения \fIcache\fP. .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , Katrin Kutepova , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .