# French translation of manpages
# This file is distributed under the same license as the manpages-l10n package.
# Copyright © of this file:
# Christophe Blaess , 1996-2003.
# Stéphan Rafin , 2002.
# Thierry Vignaud , 1999,2002.
# François Micaux, 2002.
# Alain Portal , 2003-2008.
# Jean-Philippe Guérard , 2005-2006.
# Jean-Luc Coulon (f5ibh) , 2006-2007.
# Julien Cristau , 2006-2007.
# Thomas Huriaux , 2006-2008.
# Nicolas François , 2006-2008.
# Florentin Duneau , 2006-2010.
# Simon Paillard , 2006, 2012-2014.
# Denis Barbier , 2006,2010.
# David Prévot , 2010-2014.
# Jean-Philippe MENGUAL , 2020-2024.
msgid ""
msgstr ""
"Project-Id-Version: manpages-l10n\n"
"POT-Creation-Date: 2024-03-01 17:01+0100\n"
"PO-Revision-Date: 2024-01-31 18:50+0100\n"
"Last-Translator: Jean-Philippe MENGUAL \n"
"Language-Team: French \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Lokalize 22.12.1\n"
#. type: TH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "membarrier"
msgstr "membarrier"
#. type: TH
#: archlinux fedora-40 fedora-rawhide mageia-cauldron
#, no-wrap
msgid "2023-10-31"
msgstr "31 octobre 2023"
#. type: TH
#: archlinux fedora-40 fedora-rawhide mageia-cauldron
#, no-wrap
msgid "Linux man-pages 6.06"
msgstr "Pages du manuel de Linux 6.06"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NAME"
msgstr "NOM"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "membarrier - issue memory barriers on a set of threads"
msgstr "membarrier - Poser des barrières mémoire sur un ensemble de threads"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LIBRARY"
msgstr "BIBLIOTHÈQUE"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Standard C library (I, I<-lc>)"
msgstr "Bibliothèque C standard (I, I<-lc>)"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "SYNOPSIS"
msgstr "SYNOPSIS"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"B<#include Elinux/membarrier.hE> /* Definition of B constants */\n"
"B<#include Esys/syscall.hE> /* Definition of B constants */\n"
"B<#include Eunistd.hE>\n"
msgstr ""
"B<#include Elinux/membarrier.hE> /* Définition des constantes B */\n"
"B<#include Esys/syscall.hE> /* Définition des constantes B */\n"
"B<#include Eunistd.hE>\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "BIB<, unsigned int >IB<, int >IB<);>\n"
msgstr "BIB<, unsigned int >IB<, int >IB<);>\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"I: glibc provides no wrapper for B(), necessitating the "
"use of B(2)."
msgstr ""
"I : la glibc ne fournit pas de fonction d'enveloppe pour "
"B(), nécessitant l'utilisation de B(2)."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The B() system call helps reducing the overhead of the memory "
"barrier instructions required to order memory accesses on multi-core "
"systems. However, this system call is heavier than a memory barrier, so "
"using it effectively is I as simple as replacing memory barriers with "
"this system call, but requires understanding of the details below."
msgstr ""
"L'appel système B() aide à réduire le temps-système des "
"instructions de barrières mémoire nécessaire pour organiser les accès à la "
"mémoire sur des systèmes à plusieurs cœurs. Cependant, cet appel système est "
"plus lourd qu'une barrière mémoire, donc l'utiliser efficacement «I< n'est "
"pas >» aussi simple que de remplacer une barrière mémoire par cet appel "
"système, mais nécessite de comprendre les détails ci-dessous."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Use of memory barriers needs to be done taking into account that a memory "
"barrier always needs to be either matched with its memory barrier "
"counterparts, or that the architecture's memory model doesn't require the "
"matching barriers."
msgstr ""
"L'utilisation de barrières mémoire doit se faire en tenant compte du fait "
"qu'elles doivent soit être associées avec leurs homologues, ou que le modèle "
"de mémoire de l'architecture n'a pas besoin de barrières associées."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"There are cases where one side of the matching barriers (which we will refer "
"to as \"fast side\") is executed much more often than the other (which we "
"will refer to as \"slow side\"). This is a prime target for the use of "
"B(). The key idea is to replace, for these matching barriers, "
"the fast-side memory barriers by simple compiler barriers, for example:"
msgstr ""
"Dans certains cas, une face des barrières associées (qu'on appellera la "
"« face rapide ») est sollicitée beaucoup plus souvent que l'autre (qu'on "
"appellera la « face lente »). C'est le motif principal pour utiliser "
"B(). L'idée clé est de remplacer, pour ces barrières associées, "
"les barrières mémoire de la face rapide par de simples barrières du "
"compilateur, par exemple :"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "asm volatile (\"\" : : : \"memory\")\n"
msgstr "asm volatile (\"\" : : : \"memory\")\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "and replace the slow-side memory barriers by calls to B()."
msgstr ""
"et de remplacer les barrières mémoire de la face lente par des appels à "
"B()."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This will add overhead to the slow side, and remove overhead from the fast "
"side, thus resulting in an overall performance increase as long as the slow "
"side is infrequent enough that the overhead of the B() calls "
"does not outweigh the performance gain on the fast side."
msgstr ""
"Cela ajoutera du temps-système à la face lente et en supprimera de la face "
"rapide, d'où une augmentation globale de performances tant que la face lente "
"est si peu utilisée que le temps-système d'appels B() ne "
"l’emporte pas sur le gain de performance de la face rapide."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The I argument is one of the following:"
msgstr "Le paramètre I est l'un des suivants :"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.3)"
msgstr "B (depuis Linux 4.3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Query the set of supported commands. The return value of the call is a bit "
"mask of supported commands. B, which has the value 0, "
"is not itself included in this bit mask. This command is always supported "
"(on kernels where B() is provided)."
msgstr ""
"Rechercher l'ensemble des commandes prises en charge. Le code de retour de "
"l'appel est un masque de bits des commandes prises en charge. "
"B, dont la valeur est B<0>, n'est pas inclus dans ce "
"masque de bits. Cette commande est toujours prise en charge (sur les noyaux "
"où B() est fourni)."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.16)"
msgstr "B (depuis Linux 4.16)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Ensure that all threads from all processes on the system pass through a "
"state where all memory accesses to user-space addresses match program order "
"between entry to and return from the B() system call. All "
"threads on the system are targeted by this command."
msgstr ""
"S'assurer que tous les threads de tous les processus du système passent par "
"un état où tous les accès mémoire aux adresses de l'espace utilisateur "
"correspondent à l'organisation du programme entre l'entrée et le retour de "
"l'appel système B(). Tous les threads du système sont visés par "
"cette commande."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.16)"
msgstr "B (depuis Linux 4.16)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Execute a memory barrier on all running threads of all processes that "
"previously registered with B."
msgstr ""
"Mettre une barrière mémoire sur tous les threads en cours de tous les "
"processus qui se sont enregistrés précédemment avec "
"B."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Upon return from the system call, the calling thread has a guarantee that "
"all running threads have passed through a state where all memory accesses to "
"user-space addresses match program order between entry to and return from "
"the system call (non-running threads are de facto in such a state). This "
"guarantee is provided only for the threads of processes that previously "
"registered with B."
msgstr ""
"Lors du retour de l'appel système, le thread appelant a la garantie que tous "
"les threads en cours sont passés par un état où tous les accès mémoire aux "
"adresses de l'espace utilisateur correspondent à l'organisation du programme "
"entre l'entrée et le retour de l'appel système (les threads non en cours "
"sont dans cet état de facto). Cette garantie n'est apportée qu'aux threads "
"des processus qui se sont précédemment enregistrés avec "
"B."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Given that registration is about the intent to receive the barriers, it is "
"valid to invoke B from a process that has "
"not employed B."
msgstr ""
"Étant donné que l'enregistrement concerne l'intention de recevoir des "
"barrières, il est possible d'appeler "
"B à partir d’un processus qui n’a "
"pas utilisé B."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The \"expedited\" commands complete faster than the non-expedited ones; they "
"never block, but have the downside of causing extra overhead."
msgstr ""
"Les commandes « accélérées » (expedited) se terminent plus vite que celles "
"non accélérées ; elles ne se bloquent jamais, mais elles causent aussi un "
"temps-système supplémentaire."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.16)"
msgstr "B (depuis Linux 4.16)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Register the process's intent to receive B "
"memory barriers."
msgstr ""
"Enregistrer l'intention du processus de recevoir des barrières mémoire "
"B."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.14)"
msgstr "B (depuis Linux 4.14)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Execute a memory barrier on each running thread belonging to the same "
"process as the calling thread."
msgstr ""
"Poser une barrière mémoire sur chaque thread en cours appartenant au même "
"processus que le thread appelant."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Upon return from the system call, the calling thread has a guarantee that "
"all its running thread siblings have passed through a state where all memory "
"accesses to user-space addresses match program order between entry to and "
"return from the system call (non-running threads are de facto in such a "
"state). This guarantee is provided only for threads in the same process as "
"the calling thread."
msgstr ""
"Au retour de l'appel système, le thread appelant a la garantie que tous ses "
"homologues en cours passent par un état où tous les accès mémoire aux "
"adresses de l'espace utilisateur correspondent à l'ordre du programme entre "
"l'entrée et le retour de l'appel système (les threads non en cours sont dans "
"cet état de facto). Cette garantie n'est apportée qu'aux threads du même "
"processus que le thread appelant."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A process must register its intent to use the private expedited command "
"prior to using it."
msgstr ""
"Un processus doit enregistrer son intention d'utiliser la commande accélérée "
"privée avant de le faire."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.14)"
msgstr "B (depuis Linux 4.14)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Register the process's intent to use B."
msgstr ""
"Enregistrer l'intention du processus d'utiliser "
"B."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.16)"
msgstr "B (depuis Linux 4.16)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In addition to providing the memory ordering guarantees described in "
"B, upon return from system call the "
"calling thread has a guarantee that all its running thread siblings have "
"executed a core serializing instruction. This guarantee is provided only "
"for threads in the same process as the calling thread."
msgstr ""
"Outre les garanties d'organisation de la mémoire décrites dans "
"B, lors du retour de l'appel système, le "
"thread appelant a la garantie que tous ses homologues ont exécuté une "
"instruction de sérialisation du cœur. Cette garantie n'est apportée que pour "
"les threads du même processus que celui appelant."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The \"expedited\" commands complete faster than the non-expedited ones, they "
"never block, but have the downside of causing extra overhead."
msgstr ""
"Les commandes « accélérées » se terminent plus vite que celles non "
"accélérées, elles ne se bloquent jamais, mais demandent aussi un temps-"
"système supplémentaire."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A process must register its intent to use the private expedited sync core "
"command prior to using it."
msgstr ""
"Un processus doit enregistrer son intention d'utiliser la commande accélérée "
"privée de synchronisation de cœur avant de le faire."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.16)"
msgstr "B (depuis Linux 4.16)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Register the process's intent to use "
"B."
msgstr ""
"Enregistrer l'intention du processus d'utiliser "
"B."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 5.10)"
msgstr "B (depuis Linux 5.10)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Ensure the caller thread, upon return from system call, that all its running "
"thread siblings have any currently running rseq critical sections restarted "
"if I parameter is 0; if I parameter is "
"B, then this operation is performed only on CPU "
"indicated by I. This guarantee is provided only for threads in the "
"same process as the calling thread."
msgstr ""
"Assurer au thread appelant, pendant le retour de l'appel système, que tous "
"ses homologues en cours ont toutes les sections critiques rseq (restartable "
"sequence) en cours redémarrées si le paramètre I vaut B<0> ; s'il "
"vaut B, cette opération n'est effectuée que sur le "
"processeur indiqué par I. Cette garantie n'est apportée qu'aux "
"threads du même processus que le thread appelant."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "RSEQ membarrier is only available in the \"private expedited\" form."
msgstr ""
"RSEQ membarrier n'est disponible que sous la forme « private expedited »."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A process must register its intent to use the private expedited rseq command "
"prior to using it."
msgstr ""
"Un processus doit enregistrer son intention d'utiliser la commande accélérée "
"privée rseq avant de le faire."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 5.10)"
msgstr "B (depuis Linux 5.10)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Register the process's intent to use "
"B."
msgstr ""
"Enregistrer l'intention du processus d'utiliser "
"B."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B (since Linux 4.3)"
msgstr "B (depuis Linux 4.3)"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This is an alias for B that exists for header "
"backward compatibility."
msgstr ""
"Il s'agit d'un alias pour B pour la "
"rétrocompatibilité de l'entête."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I argument must be specified as 0 unless the command is "
"B, in which case I can be "
"either 0 or B."
msgstr ""
"Le paramètre I doit être indiqué en tant que B<0>, sauf si la "
"commande est B, auquel cas I "
"peut être soit B<0>, soit B."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The I argument is ignored unless I is "
"B, in which case it must specify the CPU targeted "
"by this membarrier command."
msgstr ""
"Le paramètre I est ignoré sauf si I est "
"B, auquel cas il doit indiquer le processeur ciblé "
"par cette commande membarrier."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"All memory accesses performed in program order from each targeted thread are "
"guaranteed to be ordered with respect to B()."
msgstr ""
"Tous les accès mémoire effectués dans l'organisation du programme à partir "
"de chaque thread visé sont garantis d'être organisés par rapport à "
"B()."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If we use the semantic I to represent a compiler barrier forcing "
"memory accesses to be performed in program order across the barrier, and "
"I to represent explicit memory barriers forcing full memory "
"ordering across the barrier, we have the following ordering table for each "
"pairing of I, B(), and I. The pair "
"ordering is detailed as (O: ordered, X: not ordered):"
msgstr ""
"Si nous utilisons la sémantique I pour représenter une barrière "
"du compilateur qui force les accès mémoire à s'opérer dans l'ordre du "
"programme le long des barrières, et I pour représenter les "
"barrières explicites de la mémoire qui forcent toute la mémoire à "
"s'organiser le long de la barrière, nous obtenons le tableau d'organisation "
"suivant pour chaque paire de I, B() et I. "
"L'organisation de la paire est détaillée ainsi (O : organisée, X : non "
"organisée) :"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "barrier()"
msgstr "barrier()"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "smp_mb()"
msgstr "smp_mb()"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "membarrier()"
msgstr "membarrier()"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "X"
msgstr "X"
#. type: tbl table
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "O"
msgstr "B"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "RETURN VALUE"
msgstr "VALEUR RENVOYÉE"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"On success, the B operation returns a bit mask of "
"supported commands, and the B, "
"B, "
"B, "
"B, "
"B, "
"B, and "
"B operations return "
"zero. On error, -1 is returned, and I is set to indicate the error."
msgstr ""
"En cas de succès, l'opération B renvoie un masque de "
"bits des commandes prises en charge, et les opérations "
"B, B, "
"B, "
"B, "
"B, "
"B et "
"B renvoient B<0>. En "
"cas d'erreur, B<-1> est renvoyé et I est défini pour indiquer "
"l'erreur."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"For a given command, with I set to 0, this system call is guaranteed "
"to always return the same value until reboot. Further calls with the same "
"arguments will lead to the same result. Therefore, with I set to 0, "
"error handling is required only for the first call to B()."
msgstr ""
"Pour une commande donnée, quand I est positionné sur B<0>, cet appel "
"système est garanti de renvoyer toujours la même valeur jusqu'au "
"redémarrage. Les appels suivants ayant les mêmes paramètres conduiront au "
"même résultat. Donc, quand I est positionné sur B<0>, une gestion des "
"erreurs n'est nécessaire que pour le premier appel à B()."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "ERRORS"
msgstr "ERREURS"
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"I is invalid, or I is nonzero, or the B "
"command is disabled because the I CPU parameter has been set, or "
"the B and "
"B commands are not "
"implemented by the architecture."
msgstr ""
"I n'est pas valable ou I ne vaut pas zéro ou la commande "
"B est désactivée car le paramètre I du "
"processeur a été positionné ou les commandes "
"B et "
"B ne sont pas "
"implémentées par l'architecture."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The B() system call is not implemented by this kernel."
msgstr "L'appel système B() n'est pas implémenté par ce noyau."
#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B"
msgstr "B"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The current process was not registered prior to using private expedited "
"commands."
msgstr ""
"Le processus actuel n'était pas enregistré avant d'utiliser les commandes "
"accélérées privées."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "STANDARDS"
msgstr "STANDARDS"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid "Linux."
msgstr "Linux."
#. type: SH
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "HISTORY"
msgstr "HISTORIQUE"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid "Linux 4.3."
msgstr "Linux 4.3."
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid "Before Linux 5.10, the prototype was:"
msgstr "Avant Linux 5.10, le prototype était :"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "BIB<, int >IB<);>\n"
msgstr "BIB<, int >IB<);>\n"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NOTES"
msgstr "NOTES"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A memory barrier instruction is part of the instruction set of architectures "
"with weakly ordered memory models. It orders memory accesses prior to the "
"barrier and after the barrier with respect to matching barriers on other "
"cores. For instance, a load fence can order loads prior to and following "
"that fence with respect to stores ordered by store fences."
msgstr ""
"Une instruction de barrière mémoire fait partie du jeu d'instructions des "
"architectures ayant des modèles de mémoire faiblement organisés. Elle "
"organise les accès mémoire avant et après la barrière par rapport à celles "
"correspondantes sur les autres cœurs. Par exemple, une barrière de charge "
"peut organiser les charges avant et après elle par rapport aux stockages "
"conservés dans les barrières de stockage."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Program order is the order in which instructions are ordered in the program "
"assembly code."
msgstr ""
"L'organisation du programme est l'ordre dans lequel les instructions sont "
"ordonnées dans le code d'assembleur du programme."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Examples where B() can be useful include implementations of "
"Read-Copy-Update libraries and garbage collectors."
msgstr ""
"Parmi les exemples où B() peut être utile, figurent les "
"implémentations des bibliothèques Read-Copy-Update et des ramasse-miettes "
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "EXAMPLES"
msgstr "EXEMPLES"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Assuming a multithreaded application where \"fast_path()\" is executed very "
"frequently, and where \"slow_path()\" is executed infrequently, the "
"following code (x86) can be transformed using B():"
msgstr ""
"Supposons une application multithreadée où « fast_path() » est exécutée très "
"souvent et où « slow_path() » l'est rarement, alors le code suivant (x86) "
"peut être transformé en utilisant B() :"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"#include Estdlib.hE\n"
"\\&\n"
"static volatile int a, b;\n"
"\\&\n"
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
"\\&\n"
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_a = a;\n"
"}\n"
"\\&\n"
"int\n"
"main(void)\n"
"{\n"
" int read_a, read_b;\n"
"\\&\n"
" /*\n"
" * Real applications would call fast_path() and slow_path()\n"
" * from different threads. Call those from main() to keep\n"
" * this example short.\n"
" */\n"
"\\&\n"
" slow_path(&read_a);\n"
" fast_path(&read_b);\n"
"\\&\n"
" /*\n"
" * read_b == 0 implies read_a == 1 and\n"
" * read_a == 0 implies read_b == 1.\n"
" */\n"
"\\&\n"
" if (read_b == 0 && read_a == 0)\n"
" abort();\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
"#include Estdlib.hE\n"
"\\&\n"
"static volatile int a, b;\n"
"\\&\n"
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
"\\&\n"
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_a = a;\n"
"}\n"
"\\&\n"
"int\n"
"main(void)\n"
"{\n"
" int read_a, read_b;\n"
"\\&\n"
" /*\n"
" * De vraies applications appelleraient fast_path() et slow_path()\n"
" * à partir de différents threads. Appel à partir de main()\n"
" * pour garder cet exemple court.\n"
" */\n"
"\\&\n"
" slow_path(&read_a);\n"
" fast_path(&read_b);\n"
"\\&\n"
" /*\n"
" * read_b == 0 implique que read_a == 1 et\n"
" * read_a == 0 implique que read_b == 1.\n"
" */\n"
"\\&\n"
" if (read_b == 0 && read_a == 0)\n"
" abort();\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The code above transformed to use B() becomes:"
msgstr "Le code ci-dessus transformé pour utiliser B() donne :"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include Estdlib.hE\n"
"#include Estdio.hE\n"
"#include Eunistd.hE\n"
"#include Esys/syscall.hE\n"
"#include Elinux/membarrier.hE\n"
"\\&\n"
"static volatile int a, b;\n"
"\\&\n"
"static int\n"
"membarrier(int cmd, unsigned int flags, int cpu_id)\n"
"{\n"
" return syscall(__NR_membarrier, cmd, flags, cpu_id);\n"
"}\n"
"\\&\n"
"static int\n"
"init_membarrier(void)\n"
"{\n"
" int ret;\n"
"\\&\n"
" /* Check that membarrier() is supported. */\n"
"\\&\n"
" ret = membarrier(MEMBARRIER_CMD_QUERY, 0, 0);\n"
" if (ret E 0) {\n"
" perror(\"membarrier\");\n"
" return -1;\n"
" }\n"
"\\&\n"
" if (!(ret & MEMBARRIER_CMD_GLOBAL)) {\n"
" fprintf(stderr,\n"
" \"membarrier does not support MEMBARRIER_CMD_GLOBAL\\en\");\n"
" return -1;\n"
" }\n"
"\\&\n"
" return 0;\n"
"}\n"
"\\&\n"
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
"\\&\n"
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" membarrier(MEMBARRIER_CMD_GLOBAL, 0, 0);\n"
" *read_a = a;\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" int read_a, read_b;\n"
"\\&\n"
" if (init_membarrier())\n"
" exit(EXIT_FAILURE);\n"
"\\&\n"
" /*\n"
" * Real applications would call fast_path() and slow_path()\n"
" * from different threads. Call those from main() to keep\n"
" * this example short.\n"
" */\n"
"\\&\n"
" slow_path(&read_a);\n"
" fast_path(&read_b);\n"
"\\&\n"
" /*\n"
" * read_b == 0 implies read_a == 1 and\n"
" * read_a == 0 implies read_b == 1.\n"
" */\n"
"\\&\n"
" if (read_b == 0 && read_a == 0)\n"
" abort();\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
"#define _GNU_SOURCE\n"
"#include Estdlib.hE\n"
"#include Estdio.hE\n"
"#include Eunistd.hE\n"
"#include Esys/syscall.hE\n"
"#include Elinux/membarrier.hE\n"
"\\&\n"
"static volatile int a, b;\n"
"\\&\n"
"static int\n"
"membarrier(int cmd, unsigned int flags, int cpu_id)\n"
"{\n"
" return syscall(__NR_membarrier, cmd, flags, cpu_id);\n"
"}\n"
"\\&\n"
"static int\n"
"init_membarrier(void)\n"
"{\n"
" int ret;\n"
"\\&\n"
" /* Vérifier que membarrier() est pris en charge. */\n"
"\\&\n"
" ret = membarrier(MEMBARRIER_CMD_QUERY, 0, 0);\n"
" if (ret E 0) {\n"
" perror(\"membarrier\");\n"
" return -1;\n"
" }\n"
"\\&\n"
" if (!(ret & MEMBARRIER_CMD_GLOBAL)) {\n"
" fprintf(stderr,\n"
" \"membarrier ne gère pas MEMBARRIER_CMD_GLOBAL\\en\");\n"
" return -1;\n"
" }\n"
"\\&\n"
" return 0;\n"
"}\n"
"\\&\n"
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
"\\&\n"
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" membarrier(MEMBARRIER_CMD_GLOBAL, 0, 0);\n"
" *read_a = a;\n"
"}\n"
"\\&\n"
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" int read_a, read_b;\n"
"\\&\n"
" if (init_membarrier())\n"
" exit(EXIT_FAILURE);\n"
"\\&\n"
" /*\n"
" * De vraies applications appelleraient fast_path() et slow_path()\n"
" * à partir de différents threads. Appel à partir de main()\n"
" * pour garder cet exemple court.\n"
" */\n"
"\\&\n"
" slow_path(&read_a);\n"
" fast_path(&read_b);\n"
"\\&\n"
" /*\n"
" * read_b == 0 implique que read_a == 1 et\n"
" * read_a == 0 implique que read_b == 1.\n"
" */\n"
"\\&\n"
" if (read_b == 0 && read_a == 0)\n"
" abort();\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "2022-12-15"
msgstr "15 décembre 2022"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "Linux man-pages 6.03"
msgstr "Pages du manuel de Linux 6.03"
#. type: SH
#: debian-bookworm
#, no-wrap
msgid "VERSIONS"
msgstr "VERSIONS"
#. type: Plain text
#: debian-bookworm
msgid "The B() system call was added in Linux 4.3."
msgstr "L'appel système B() a été ajouté dans Linux 4.3."
#. type: Plain text
#: debian-bookworm
msgid "Before Linux 5.10, the prototype for B() was:"
msgstr "Avant Linux 5.10, le prototype de B() était :"
#. .SH SEE ALSO
#. FIXME See if the following syscalls make it into Linux 4.15 or later
#. .BR cpu_opv (2),
#. .BR rseq (2)
#. type: Plain text
#: debian-bookworm
msgid "B() is Linux-specific."
msgstr "B() est spécifique à Linux."
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "#include Estdlib.hE\n"
msgstr "#include Estdlib.hE\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "static volatile int a, b;\n"
msgstr "static volatile int a, b;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
msgstr ""
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_a = a;\n"
"}\n"
msgstr ""
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" asm volatile (\"mfence\" : : : \"memory\");\n"
" *read_a = a;\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"int\n"
"main(void)\n"
"{\n"
" int read_a, read_b;\n"
msgstr ""
"int\n"
"main(void)\n"
"{\n"
" int read_a, read_b;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * Real applications would call fast_path() and slow_path()\n"
" * from different threads. Call those from main() to keep\n"
" * this example short.\n"
" */\n"
msgstr ""
" /*\n"
" * De vraies applications appelleraient fast_path() et slow_path()\n"
" * à partir de différents threads. Appel à partir de main()\n"
" * pour garder cet exemple court.\n"
" */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" slow_path(&read_a);\n"
" fast_path(&read_b);\n"
msgstr ""
" slow_path(&read_a);\n"
" fast_path(&read_b);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * read_b == 0 implies read_a == 1 and\n"
" * read_a == 0 implies read_b == 1.\n"
" */\n"
msgstr ""
" /*\n"
" * read_b == 0 implique que read_a == 1 et\n"
" * read_a == 0 implique que read_b == 1.\n"
" */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" if (read_b == 0 && read_a == 0)\n"
" abort();\n"
msgstr ""
" if (read_b == 0 && read_a == 0)\n"
" abort();\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include Estdlib.hE\n"
"#include Estdio.hE\n"
"#include Eunistd.hE\n"
"#include Esys/syscall.hE\n"
"#include Elinux/membarrier.hE\n"
msgstr ""
"#define _GNU_SOURCE\n"
"#include Estdlib.hE\n"
"#include Estdio.hE\n"
"#include Eunistd.hE\n"
"#include Esys/syscall.hE\n"
"#include Elinux/membarrier.hE\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static int\n"
"membarrier(int cmd, unsigned int flags, int cpu_id)\n"
"{\n"
" return syscall(__NR_membarrier, cmd, flags, cpu_id);\n"
"}\n"
msgstr ""
"static int\n"
"membarrier(int cmd, unsigned int flags, int cpu_id)\n"
"{\n"
" return syscall(__NR_membarrier, cmd, flags, cpu_id);\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static int\n"
"init_membarrier(void)\n"
"{\n"
" int ret;\n"
msgstr ""
"static int\n"
"init_membarrier(void)\n"
"{\n"
" int ret;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " /* Check that membarrier() is supported. */\n"
msgstr " /* Vérifier que membarrier() est pris en charge. */\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" ret = membarrier(MEMBARRIER_CMD_QUERY, 0, 0);\n"
" if (ret E 0) {\n"
" perror(\"membarrier\");\n"
" return -1;\n"
" }\n"
msgstr ""
" ret = membarrier(MEMBARRIER_CMD_QUERY, 0, 0);\n"
" if (ret E 0) {\n"
" perror(\"membarrier\");\n"
" return -1;\n"
" }\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" if (!(ret & MEMBARRIER_CMD_GLOBAL)) {\n"
" fprintf(stderr,\n"
" \"membarrier does not support MEMBARRIER_CMD_GLOBAL\\en\");\n"
" return -1;\n"
" }\n"
msgstr ""
" if (!(ret & MEMBARRIER_CMD_GLOBAL)) {\n"
" fprintf(stderr,\n"
" \"membarrier ne gère pas MEMBARRIER_CMD_GLOBAL\\en\");\n"
" return -1;\n"
" }\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" return 0;\n"
"}\n"
msgstr ""
" return 0;\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
msgstr ""
"static void\n"
"fast_path(int *read_b)\n"
"{\n"
" a = 1;\n"
" asm volatile (\"\" : : : \"memory\");\n"
" *read_b = b;\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" membarrier(MEMBARRIER_CMD_GLOBAL, 0, 0);\n"
" *read_a = a;\n"
"}\n"
msgstr ""
"static void\n"
"slow_path(int *read_a)\n"
"{\n"
" b = 1;\n"
" membarrier(MEMBARRIER_CMD_GLOBAL, 0, 0);\n"
" *read_a = a;\n"
"}\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" int read_a, read_b;\n"
msgstr ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
" int read_a, read_b;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" if (init_membarrier())\n"
" exit(EXIT_FAILURE);\n"
msgstr ""
" if (init_membarrier())\n"
" exit(EXIT_FAILURE);\n"
#. type: TH
#: debian-unstable opensuse-tumbleweed
#, no-wrap
msgid "2023-05-03"
msgstr "3 mai 2023"
#. type: TH
#: debian-unstable opensuse-tumbleweed
#, no-wrap
msgid "Linux man-pages 6.05.01"
msgstr "Pages du manuel de Linux 6.05.01"
#. type: TH
#: opensuse-leap-15-6
#, no-wrap
msgid "2023-03-30"
msgstr "30 mars 2023"
#. type: TH
#: opensuse-leap-15-6
#, no-wrap
msgid "Linux man-pages 6.04"
msgstr "Pages du manuel de Linux 6.04"