Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Q_SIGNSHFT(3)	       FreeBSD Library Functions Manual		 Q_SIGNSHFT(3)

NAME
     Q_SIGNSHFT, Q_SSIGN, Q_CRAWMASK, Q_SRAWMASK, Q_GCRAW, Q_GCVAL, Q_SCVAL --
     fixed-point math functions	which manipulate the control/sign data bits

SYNOPSIS
     #include <sys/qmath.h>

     uint32_t
     Q_SIGNSHFT(QTYPE q);

     QTYPE
     Q_SSIGN(QTYPE q, bool isneg);

     ITYPE
     Q_CRAWMASK(QTYPE q);

     ITYPE
     Q_SRAWMASK(QTYPE q);

     ITYPE
     Q_GCRAW(QTYPE q);

     ITYPE
     Q_GCVAL(QTYPE q);

     QTYPE
     Q_SCVAL(QTYPE q, ITYPE cv);

DESCRIPTION
     Q_SIGNSHFT() gets the bit position	of q's sign bit	relative to bit	zero.

     Q_SSIGN() sets the	sign bit of q based on the boolean isneg.

     Q_CRAWMASK() and Q_SRAWMASK() return q-specific bit masks for q's control
     bits and sign bit respectively.

     Q_GCRAW() and Q_GCVAL() get the raw masked	control	bits and value of q's
     control bits respectively.

     Q_SCVAL() sets q's	control	bits to	the value cv.

     All of those functions operate on the following data types: s8q_t,	u8q_t,
     s16q_t, u16q_t, s32q_t, u32q_t, s64q_t, and u64q_t, which are referred to
     generically as QTYPE.  The	ITYPE refers to	the stdint(7) integer types.

     For more details, see qmath(3).

RETURN VALUES
     Q_SIGNSHFT() returns the sign bit's position as an	integer.

     Q_SSIGN() returns the value of q post change.

     Q_CRAWMASK(), Q_SRAWMASK(), Q_GCRAW() and Q_GCVAL() return	their respec-
     tive values as integers of	the same underlying ITYPE as q.

     Q_SCVAL() returns the value of q post change.

SEE ALSO
     errno(2), qmath(3), stdint(7)

HISTORY
     The qmath(3) functions first appeared in FreeBSD 13.0.

AUTHORS
     The qmath(3) functions and	this manual page were written by Lawrence
     Stewart <lstewart@FreeBSD.org> and	sponsored by Netflix, Inc.

FreeBSD	13.0			 July 8, 2018			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Q_SIGNSHFT&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help