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