.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "fr::crypto::OPENSSL_ia32cap 3SSL" .TH fr::crypto::OPENSSL_ia32cap 3SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" OPENSSL_ia32cap, OPENSSL_ia32cap_loc \- vecteur de capacités des processeurs \&\s-1IA\-32\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" \fBunsigned int *OPENSSL_ia32cap_loc(void);\fR \fB#define OPENSSL_ia32cap ((\f(BIOPENSSL_ia32cap_loc()\fB)[0])\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" La valeur renvoyée par \fBOPENSSL_ia32cap_loc\fR() est l’adresse d’une variable qui contient les capacités d'un processeur \s-1IA\-32\s0 sous la forme d’un vecteur de bits comme elle apparait dans le couple de registres \s-1EDX:ECX\s0 après avoir exécuté l'instruction \s-1CPUID\s0 avec la valeur d'entrée EAX=1 (consultez la note applicative d'Intel nº 241618). Naturellement, cela n'a de sens que pour les plates-formes x86 et x86_64. La variable est normalement définie automatiquement lors de l'initialisation de la boîte à outils, mais peut être manipulée plus tard pour changer le comportement de la bibliothèque cryptographique. À ce jour, les bits suivants sont significatifs : .IP "\- le bit nº 4 indique la présence d'un compteur d'horodatage ;" 4 .IX Item "- le bit nº 4 indique la présence d'un compteur d'horodatage ;" .PD 0 .IP "\- le bit nº 19 indique la disponibilité d’instruction \s-1CLFLUSH \s0;" 4 .IX Item "- le bit nº 19 indique la disponibilité d’instruction CLFLUSH ;" .IP "\- le bit nº 20, réservé par Intel, est utilisé pour choisir parmi les chemins de code \s-1RC4 \s0;" 4 .IX Item "- le bit nº 20, réservé par Intel, est utilisé pour choisir parmi les chemins de code RC4 ;" .IP "\- le bit nº 23 indique la prise en charge de \s-1MMX \s0;" 4 .IX Item "- le bit nº 23 indique la prise en charge de MMX ;" .IP "\- le bit nº 24, bit \s-1FXSR,\s0 indique la disponibilité de registres \s-1XMM \s0;" 4 .IX Item "- le bit nº 24, bit FXSR, indique la disponibilité de registres XMM ;" .IP "\- le bit nº 25 indique la prise en charge de \s-1SSE \s0;" 4 .IX Item "- le bit nº 25 indique la prise en charge de SSE ;" .IP "\- le bit nº 26 indique la prise en charge de \s-1SSE2 \s0;" 4 .IX Item "- le bit nº 26 indique la prise en charge de SSE2 ;" .IP "\- le bit nº 28 indique l'Hyperthreading, utilisé pour distinguer les cœurs avec cache partagé ;" 4 .IX Item "- le bit nº 28 indique l'Hyperthreading, utilisé pour distinguer les cœurs avec cache partagé ;" .IP "\- le bit nº 30, réservé par Intel, est propre aux processeurs Intel ;" 4 .IX Item "- le bit nº 30, réservé par Intel, est propre aux processeurs Intel ;" .IP "\- le bit nº 33 indique la disponibilité d’instruction \s-1PCLMULQDQ \s0;" 4 .IX Item "- le bit nº 33 indique la disponibilité d’instruction PCLMULQDQ ;" .IP "\- le bit nº 41 indique la prise en charge de \s-1SSSE3,\s0 supplément à \s-1SSE3 \s0;" 4 .IX Item "- le bit nº 41 indique la prise en charge de SSSE3, supplément à SSE3 ;" .IP "\- le bit nº 43 indique la prise en charge de \s-1XOP\s0 d’AMD (forcé à zéro sur les processeurs non \s-1AMD\s0) ;" 4 .IX Item "- le bit nº 43 indique la prise en charge de XOP d’AMD (forcé à zéro sur les processeurs non AMD) ;" .IP "\- le bit nº 57 indique l’extension de jeu d’instructions AES-NI ;" 4 .IX Item "- le bit nº 57 indique l’extension de jeu d’instructions AES-NI ;" .IP "\- le bit nº 59, bit \s-1OSXSAVE,\s0 indique la disponibilité de registres \s-1YMM \s0;" 4 .IX Item "- le bit nº 59, bit OSXSAVE, indique la disponibilité de registres YMM ;" .IP "\- le bit nº 60 indique l’extension \s-1AVX \s0;" 4 .IX Item "- le bit nº 60 indique l’extension AVX ;" .IP "\- le bit nº 62 indique la disponibilité d’instruction \s-1RDRAND.\s0" 4 .IX Item "- le bit nº 62 indique la disponibilité d’instruction RDRAND." .PD .PP Par exemple, la suppression du bit nº 26 à l’exécution désactive l'utilisation du code optimisé pour \s-1SSE2\s0 dans la bibliothèque cryptographique, alors que la suppression du bit nº 24 désactive le code \&\s-1SSE2\s0 agissant sur la banque de registres \s-1XMM 128\s0 bits. Cette dernière manipulation peut être utile si la cible est un \s-1CPU SSE2,\s0 mais que le système d'exploitation n’active pas les registres \s-1XMM.\s0 Même si la valeur peut être modifiée par programmation, définir une variable d'environnement du même nom avant d’exécuter l’application sera probablement plus approprié (par exemple, avec un processeur Intel P4, « env OPENSSL_ia32cap=0x16980010 apps/openssl », ou encore mieux, « env OPENSSL_ia32cap=~0x1000000 apps/openssl » pour obtenir le même résultat sans avoir à modifier le code source de l'application). Vous pouvez sinon reconfigurer la boîte à outils avec l’option no\-sse2 et recompiler. .PP La suppression du bit nº 28 est moins intuitive. En réalité, ce n’est pas copié directement de la sortie de \s-1CPUID,\s0 mais ajusté pour indiquer si le cache de données est vraiment partagé ou non entre les cœurs logiques. Cela affecte alors la décision d’appliquer ou non des contre-mesures coûteuses contre les attaques temporelles de cache, en particulier sur le module assembleur \s-1AES.\s0 .PP Le vecteur est ensuite étendu avec le valeur \s-1EBX\s0 renvoyée par \s-1CPUID\s0 avec EAX=7 et ECX=0 en entrée. Les bits suivants sont significatifs : .IP "\- le bit nº 64+3 indique la disponibilité d’instructions \s-1BMI1,\s0 par exemple \s-1ANDN \s0;" 4 .IX Item "- le bit nº 64+3 indique la disponibilité d’instructions BMI1, par exemple ANDN ;" .PD 0 .IP "\- le bit nº 64+5 indique la disponibilité d’instructions \s-1AVX2 \s0;" 4 .IX Item "- le bit nº 64+5 indique la disponibilité d’instructions AVX2 ;" .IP "\- le bit nº 64+8 indique la disponibilité d’instructions \s-1BMI2,\s0 par exemple \s-1MUXL\s0 et \s-1RORX \s0;" 4 .IX Item "- le bit nº 64+8 indique la disponibilité d’instructions BMI2, par exemple MUXL et RORX ;" .IP "\- le bit nº 64+18 indique la disponibilité d’instruction \s-1RDSEED \s0;" 4 .IX Item "- le bit nº 64+18 indique la disponibilité d’instruction RDSEED ;" .IP "\- le bit nº 64+19 indique la disponibilité d’instructions \s-1ADCX\s0 et \s-1ADOX.\s0" 4 .IX Item "- le bit nº 64+19 indique la disponibilité d’instructions ADCX et ADOX." .PD .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.