summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man3pm/B::Op_private.3pm
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /upstream/mageia-cauldron/man3pm/B::Op_private.3pm
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/mageia-cauldron/man3pm/B::Op_private.3pm')
-rw-r--r--upstream/mageia-cauldron/man3pm/B::Op_private.3pm172
1 files changed, 172 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man3pm/B::Op_private.3pm b/upstream/mageia-cauldron/man3pm/B::Op_private.3pm
new file mode 100644
index 00000000..7da50ce6
--- /dev/null
+++ b/upstream/mageia-cauldron/man3pm/B::Op_private.3pm
@@ -0,0 +1,172 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" 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
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. 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 >0, 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 "B::Op_private 3pm"
+.TH B::Op_private 3pm 2023-11-28 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+B::Op_private \- OP op_private flag definitions
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+.Vb 1
+\& use B::Op_private;
+\&
+\& # flag details for bit 7 of OP_AELEM\*(Aqs op_private:
+\& my $name = $B::Op_private::bits{aelem}{7}; # OPpLVAL_INTRO
+\& my $value = $B::Op_private::defines{$name}; # 128
+\& my $label = $B::Op_private::labels{$name}; # LVINTRO
+\&
+\& # the bit field at bits 5..6 of OP_AELEM\*(Aqs op_private:
+\& my $bf = $B::Op_private::bits{aelem}{6};
+\& my $mask = $bf\->{bitmask}; # etc
+.Ve
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+This module provides four global hashes:
+.PP
+.Vb 4
+\& %B::Op_private::bits
+\& %B::Op_private::defines
+\& %B::Op_private::labels
+\& %B::Op_private::ops_using
+.Ve
+.PP
+which contain information about the per-op meanings of the bits in the
+op_private field.
+.ie n .SS %bits
+.el .SS \f(CW%bits\fP
+.IX Subsection "%bits"
+This is indexed by op name and then bit number (0..7). For single bit flags,
+it returns the name of the define (if any) for that bit:
+.PP
+.Vb 1
+\& $B::Op_private::bits{aelem}{7} eq \*(AqOPpLVAL_INTRO\*(Aq;
+.Ve
+.PP
+For bit fields, it returns a hash ref containing details about the field.
+The same reference will be returned for all bit positions that make
+up the bit field; so for example these both return the same hash ref:
+.PP
+.Vb 2
+\& $bitfield = $B::Op_private::bits{aelem}{5};
+\& $bitfield = $B::Op_private::bits{aelem}{6};
+.Ve
+.PP
+The general format of this hash ref is
+.PP
+.Vb 5
+\& {
+\& # The bit range and mask; these are always present.
+\& bitmin => 5,
+\& bitmax => 6,
+\& bitmask => 0x60,
+\&
+\& # (The remaining keys are optional)
+\&
+\& # The names of any defines that were requested:
+\& mask_def => \*(AqOPpFOO_MASK\*(Aq,
+\& baseshift_def => \*(AqOPpFOO_SHIFT\*(Aq,
+\& bitcount_def => \*(AqOPpFOO_BITS\*(Aq,
+\&
+\& # If present, Concise etc will display the value with a \*(AqFOO=\*(Aq
+\& # prefix. If it equals \*(Aq\-\*(Aq, then Concise will treat the bit
+\& # field as raw bits and not try to interpret it.
+\& label => \*(AqFOO\*(Aq,
+\&
+\& # If present, specifies the names of some defines and the
+\& # display labels that are used to assign meaning to particu\-
+\& # lar integer values within the bit field; e.g. 3 is dis\-
+\& # played as \*(AqC\*(Aq.
+\& enum => [ qw(
+\& 1 OPpFOO_A A
+\& 2 OPpFOO_B B
+\& 3 OPpFOO_C C
+\& )],
+\&
+\& };
+.Ve
+.ie n .SS %defines
+.el .SS \f(CW%defines\fP
+.IX Subsection "%defines"
+This gives the value of every \f(CW\*(C`OPp\*(C'\fR define, e.g.
+.PP
+.Vb 1
+\& $B::Op_private::defines{OPpLVAL_INTRO} == 128;
+.Ve
+.ie n .SS %labels
+.el .SS \f(CW%labels\fP
+.IX Subsection "%labels"
+This gives the short display label for each define, as used by \f(CW\*(C`B::Concise\*(C'\fR
+and \f(CW\*(C`perl \-Dx\*(C'\fR, e.g.
+.PP
+.Vb 1
+\& $B::Op_private::labels{OPpLVAL_INTRO} eq \*(AqLVINTRO\*(Aq;
+.Ve
+.PP
+If the label equals '\-', then Concise will treat the bit as a raw bit and
+not try to display it symbolically.
+.ie n .SS %ops_using
+.el .SS \f(CW%ops_using\fP
+.IX Subsection "%ops_using"
+For each define, this gives a reference to an array of op names that use
+the flag.
+.PP
+.Vb 1
+\& @ops_using_lvintro = @{ $B::Op_private::ops_using{OPp_LVAL_INTRO} };
+.Ve