sync code with last improvements from OpenBSD
This commit is contained in:
commit
88965415ff
26235 changed files with 29195616 additions and 0 deletions
83
proto/xorgproto/include/X11/extensions/xtrapbits.h
Normal file
83
proto/xorgproto/include/X11/extensions/xtrapbits.h
Normal file
|
@ -0,0 +1,83 @@
|
|||
/* $XFree86$ */
|
||||
/*
|
||||
* This include file is designed to be a portable way for systems to define
|
||||
* bit field manipulation of arrays of bits.
|
||||
*/
|
||||
#ifndef __XTRAPBITS__
|
||||
#define __XTRAPBITS__ "@(#)xtrapbits.h 1.6 - 90/09/18 "
|
||||
|
||||
/*****************************************************************************
|
||||
Copyright 1987, 1988, 1989, 1990, 1994 by Digital Equipment Corporation,
|
||||
Maynard, MA
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose and without fee is hereby granted,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation, and that the name of Digital not be
|
||||
used in advertising or publicity pertaining to distribution of the
|
||||
software without specific, written prior permission.
|
||||
|
||||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
*****************************************************************************/
|
||||
/*
|
||||
*
|
||||
* CONTRIBUTORS:
|
||||
*
|
||||
* Dick Annicchiarico
|
||||
* Robert Chesler
|
||||
* Dan Coutu
|
||||
* Gene Durso
|
||||
* Marc Evans
|
||||
* Alan Jamison
|
||||
* Mark Henry
|
||||
* Ken Miller
|
||||
*
|
||||
*/
|
||||
typedef unsigned char *UByteP; /* Pointer to an unsigned byte array */
|
||||
#define BitsInByte 8L /* The number of bits in a byte */
|
||||
|
||||
#define BitInByte(bit) /* Returns the bit mask of a byte */ \
|
||||
(1L << (((bit) % BitsInByte)))
|
||||
|
||||
#define BitInWord(bit) /* Returns the bit mask of a word */ \
|
||||
(1L << (((bit) % (BitsInByte * 2L))))
|
||||
|
||||
#define BitInLong(bit) /* Returns the bit mask of a long */ \
|
||||
(1L << (((bit) % (BitsInByte * 4L))))
|
||||
|
||||
#define ByteInArray(array,bit) /* Returns the byte offset to get to a bit */ \
|
||||
(((UByteP)(array))[(bit) / BitsInByte])
|
||||
|
||||
#define BitIsTrue(array,bit) /* Test to see if a specific bit is True */ \
|
||||
(ByteInArray(array,bit) & BitInByte(bit))
|
||||
|
||||
#define BitIsFalse(array,bit) /* Test to see if a specific bit is False */ \
|
||||
(!(BitIsTrue(array,bit)))
|
||||
|
||||
#define BitTrue(array,bit) /* Set a specific bit to be True */ \
|
||||
(ByteInArray(array,bit) |= BitInByte(bit))
|
||||
|
||||
#define BitFalse(array,bit) /* Set a specific bit to be False */ \
|
||||
(ByteInArray(array,bit) &= ~BitInByte(bit))
|
||||
|
||||
#define BitToggle(array,bit) /* Toggle a specific bit */ \
|
||||
(ByteInArray(array,bit) ^= BitInByte(bit))
|
||||
|
||||
#define BitCopy(dest,src,bit) /* Copy a specific bit */ \
|
||||
BitIsTrue((src),(bit)) ? BitTrue((dest),(bit)) : BitFalse((dest),(bit))
|
||||
|
||||
#define BitValue(array,bit) /* Return True or False depending on bit */ \
|
||||
(BitIsTrue((array),(bit)) ? True : False)
|
||||
|
||||
#define BitSet(array,bit,value) /* Set bit to given value in array */ \
|
||||
(value) ? BitTrue((array),(bit)) : BitFalse((array),(bit))
|
||||
|
||||
#endif /* __XTRAPBITS__ */
|
Loading…
Add table
Add a link
Reference in a new issue