xref: /freebsd/share/man/man3/Q_SIGNSHFT.3 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
1*5a38af1fSEdward Tomasz Napierala.\"
2*5a38af1fSEdward Tomasz Napierala.\" Copyright (c) 2018 Netflix, Inc.
3*5a38af1fSEdward Tomasz Napierala.\" All rights reserved.
4*5a38af1fSEdward Tomasz Napierala.\"
5*5a38af1fSEdward Tomasz Napierala.\" Redistribution and use in source and binary forms, with or without
6*5a38af1fSEdward Tomasz Napierala.\" modification, are permitted provided that the following conditions
7*5a38af1fSEdward Tomasz Napierala.\" are met:
8*5a38af1fSEdward Tomasz Napierala.\" 1. Redistributions of source code must retain the above copyright
9*5a38af1fSEdward Tomasz Napierala.\"    notice, this list of conditions, and the following disclaimer,
10*5a38af1fSEdward Tomasz Napierala.\"    without modification, immediately at the beginning of the file.
11*5a38af1fSEdward Tomasz Napierala.\" 2. The name of the author may not be used to endorse or promote products
12*5a38af1fSEdward Tomasz Napierala.\"    derived from this software without specific prior written permission.
13*5a38af1fSEdward Tomasz Napierala.\"
14*5a38af1fSEdward Tomasz Napierala.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*5a38af1fSEdward Tomasz Napierala.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*5a38af1fSEdward Tomasz Napierala.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*5a38af1fSEdward Tomasz Napierala.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
18*5a38af1fSEdward Tomasz Napierala.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*5a38af1fSEdward Tomasz Napierala.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*5a38af1fSEdward Tomasz Napierala.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*5a38af1fSEdward Tomasz Napierala.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*5a38af1fSEdward Tomasz Napierala.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*5a38af1fSEdward Tomasz Napierala.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*5a38af1fSEdward Tomasz Napierala.\" SUCH DAMAGE.
25*5a38af1fSEdward Tomasz Napierala.\"
26*5a38af1fSEdward Tomasz Napierala.Dd July 8, 2018
27*5a38af1fSEdward Tomasz Napierala.Dt Q_SIGNSHFT 3
28*5a38af1fSEdward Tomasz Napierala.Os
29*5a38af1fSEdward Tomasz Napierala.Sh NAME
30*5a38af1fSEdward Tomasz Napierala.Nm Q_SIGNSHFT ,
31*5a38af1fSEdward Tomasz Napierala.Nm Q_SSIGN ,
32*5a38af1fSEdward Tomasz Napierala.Nm Q_CRAWMASK ,
33*5a38af1fSEdward Tomasz Napierala.Nm Q_SRAWMASK ,
34*5a38af1fSEdward Tomasz Napierala.Nm Q_GCRAW ,
35*5a38af1fSEdward Tomasz Napierala.Nm Q_GCVAL ,
36*5a38af1fSEdward Tomasz Napierala.Nm Q_SCVAL
37*5a38af1fSEdward Tomasz Napierala.Nd fixed-point math functions which manipulate the control/sign data bits
38*5a38af1fSEdward Tomasz Napierala.Sh SYNOPSIS
39*5a38af1fSEdward Tomasz Napierala.In sys/qmath.h
40*5a38af1fSEdward Tomasz Napierala.Ft uint32_t
41*5a38af1fSEdward Tomasz Napierala.Fn Q_SIGNSHFT "QTYPE q"
42*5a38af1fSEdward Tomasz Napierala.Ft QTYPE
43*5a38af1fSEdward Tomasz Napierala.Fn Q_SSIGN "QTYPE q" "bool isneg"
44*5a38af1fSEdward Tomasz Napierala.Ft ITYPE
45*5a38af1fSEdward Tomasz Napierala.Fn Q_CRAWMASK "QTYPE q"
46*5a38af1fSEdward Tomasz Napierala.Ft ITYPE
47*5a38af1fSEdward Tomasz Napierala.Fn Q_SRAWMASK "QTYPE q"
48*5a38af1fSEdward Tomasz Napierala.Ft ITYPE
49*5a38af1fSEdward Tomasz Napierala.Fn Q_GCRAW "QTYPE q"
50*5a38af1fSEdward Tomasz Napierala.Ft ITYPE
51*5a38af1fSEdward Tomasz Napierala.Fn Q_GCVAL "QTYPE q"
52*5a38af1fSEdward Tomasz Napierala.Ft QTYPE
53*5a38af1fSEdward Tomasz Napierala.Fn Q_SCVAL "QTYPE q" "ITYPE cv"
54*5a38af1fSEdward Tomasz Napierala.Sh DESCRIPTION
55*5a38af1fSEdward Tomasz Napierala.Fn Q_SIGNSHFT
56*5a38af1fSEdward Tomasz Napieralagets the bit position of
57*5a38af1fSEdward Tomasz Napierala.Fa q Ap s
58*5a38af1fSEdward Tomasz Napieralasign bit relative to bit zero.
59*5a38af1fSEdward Tomasz Napierala.Pp
60*5a38af1fSEdward Tomasz Napierala.Fn Q_SSIGN
61*5a38af1fSEdward Tomasz Napieralasets the sign bit of
62*5a38af1fSEdward Tomasz Napierala.Fa q
63*5a38af1fSEdward Tomasz Napieralabased on the boolean
64*5a38af1fSEdward Tomasz Napierala.Fa isneg .
65*5a38af1fSEdward Tomasz Napierala.Pp
66*5a38af1fSEdward Tomasz Napierala.Fn Q_CRAWMASK
67*5a38af1fSEdward Tomasz Napieralaand
68*5a38af1fSEdward Tomasz Napierala.Fn Q_SRAWMASK
69*5a38af1fSEdward Tomasz Napieralareturn
70*5a38af1fSEdward Tomasz Napierala.Fa q Ns -specific
71*5a38af1fSEdward Tomasz Napieralabit masks for
72*5a38af1fSEdward Tomasz Napierala.Fa q Ap s
73*5a38af1fSEdward Tomasz Napieralacontrol bits and sign bit respectively.
74*5a38af1fSEdward Tomasz Napierala.Pp
75*5a38af1fSEdward Tomasz Napierala.Fn Q_GCRAW
76*5a38af1fSEdward Tomasz Napieralaand
77*5a38af1fSEdward Tomasz Napierala.Fn Q_GCVAL
78*5a38af1fSEdward Tomasz Napieralaget the raw masked control bits and value of
79*5a38af1fSEdward Tomasz Napierala.Fa q Ap s
80*5a38af1fSEdward Tomasz Napieralacontrol bits respectively.
81*5a38af1fSEdward Tomasz Napierala.Pp
82*5a38af1fSEdward Tomasz Napierala.Fn Q_SCVAL
83*5a38af1fSEdward Tomasz Napieralasets
84*5a38af1fSEdward Tomasz Napierala.Fa q Ap s
85*5a38af1fSEdward Tomasz Napieralacontrol bits to the value
86*5a38af1fSEdward Tomasz Napierala.Fa cv .
87*5a38af1fSEdward Tomasz Napierala.Pp
88*5a38af1fSEdward Tomasz NapieralaAll of those functions operate on
89*5a38af1fSEdward Tomasz Napieralathe following data types:
90*5a38af1fSEdward Tomasz Napierala.Vt s8q_t ,
91*5a38af1fSEdward Tomasz Napierala.Vt u8q_t ,
92*5a38af1fSEdward Tomasz Napierala.Vt s16q_t ,
93*5a38af1fSEdward Tomasz Napierala.Vt u16q_t ,
94*5a38af1fSEdward Tomasz Napierala.Vt s32q_t ,
95*5a38af1fSEdward Tomasz Napierala.Vt u32q_t ,
96*5a38af1fSEdward Tomasz Napierala.Vt s64q_t ,
97*5a38af1fSEdward Tomasz Napieralaand
98*5a38af1fSEdward Tomasz Napierala.Vt u64q_t ,
99*5a38af1fSEdward Tomasz Napieralawhich are referred to generically as
100*5a38af1fSEdward Tomasz Napierala.Fa QTYPE .
101*5a38af1fSEdward Tomasz NapieralaThe
102*5a38af1fSEdward Tomasz Napierala.Fa ITYPE
103*5a38af1fSEdward Tomasz Napieralarefers to the
104*5a38af1fSEdward Tomasz Napierala.Xr stdint 7
105*5a38af1fSEdward Tomasz Napieralainteger types.
106*5a38af1fSEdward Tomasz Napierala.Pp
107*5a38af1fSEdward Tomasz NapieralaFor more details, see
108*5a38af1fSEdward Tomasz Napierala.Xr qmath 3 .
109*5a38af1fSEdward Tomasz Napierala.Sh RETURN VALUES
110*5a38af1fSEdward Tomasz Napierala.Fn Q_SIGNSHFT
111*5a38af1fSEdward Tomasz Napieralareturns the sign bit's position as an integer.
112*5a38af1fSEdward Tomasz Napierala.Pp
113*5a38af1fSEdward Tomasz Napierala.Fn Q_SSIGN
114*5a38af1fSEdward Tomasz Napieralareturns the value of
115*5a38af1fSEdward Tomasz Napierala.Fa q
116*5a38af1fSEdward Tomasz Napieralapost change.
117*5a38af1fSEdward Tomasz Napierala.Pp
118*5a38af1fSEdward Tomasz Napierala.Fn Q_CRAWMASK ,
119*5a38af1fSEdward Tomasz Napierala.Fn Q_SRAWMASK ,
120*5a38af1fSEdward Tomasz Napierala.Fn Q_GCRAW
121*5a38af1fSEdward Tomasz Napieralaand
122*5a38af1fSEdward Tomasz Napierala.Fn Q_GCVAL
123*5a38af1fSEdward Tomasz Napieralareturn their respective values as integers of the same underlying ITYPE as
124*5a38af1fSEdward Tomasz Napierala.Fa q .
125*5a38af1fSEdward Tomasz Napierala.Pp
126*5a38af1fSEdward Tomasz Napierala.Fn Q_SCVAL
127*5a38af1fSEdward Tomasz Napieralareturns the value of
128*5a38af1fSEdward Tomasz Napierala.Fa q
129*5a38af1fSEdward Tomasz Napieralapost change.
130*5a38af1fSEdward Tomasz Napierala.Sh SEE ALSO
131*5a38af1fSEdward Tomasz Napierala.Xr errno 2 ,
132*5a38af1fSEdward Tomasz Napierala.Xr qmath 3 ,
133*5a38af1fSEdward Tomasz Napierala.Xr stdint 7
134*5a38af1fSEdward Tomasz Napierala.Sh HISTORY
135*5a38af1fSEdward Tomasz NapieralaThe
136*5a38af1fSEdward Tomasz Napierala.Xr qmath 3
137*5a38af1fSEdward Tomasz Napieralafunctions first appeared in
138*5a38af1fSEdward Tomasz Napierala.Fx 13.0 .
139*5a38af1fSEdward Tomasz Napierala.Sh AUTHORS
140*5a38af1fSEdward Tomasz Napierala.An -nosplit
141*5a38af1fSEdward Tomasz NapieralaThe
142*5a38af1fSEdward Tomasz Napierala.Xr qmath 3
143*5a38af1fSEdward Tomasz Napieralafunctions and this manual page were written by
144*5a38af1fSEdward Tomasz Napierala.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org
145*5a38af1fSEdward Tomasz Napieralaand sponsored by Netflix, Inc.
146