diff --git a/dix/input_priv.h b/dix/input_priv.h index 65766dc52..ae08e8367 100644 --- a/dix/input_priv.h +++ b/dix/input_priv.h @@ -364,4 +364,13 @@ int InputThreadRegisterDev(int fd, int InputThreadUnregisterDev(int fd); +/* + * @brief count the bits set in the given bitmask + * + * @param mask pointer to bitmask + * @param len size of bitmask in bits (may span multiple bytes) + * @return number of bits set in the given bitmask + */ +int CountBits(const uint8_t * mask, int len); + #endif /* _XSERVER_INPUT_PRIV_H */ diff --git a/include/inputstr.h b/include/inputstr.h index 6ed2d928d..7639b7e2b 100644 --- a/include/inputstr.h +++ b/include/inputstr.h @@ -63,7 +63,6 @@ extern _X_EXPORT void AssignTypeAndName(DeviceIntPtr dev, #define BitIsOn(ptr, bit) (!!(((const BYTE *) (ptr))[(bit)>>3] & (1 << ((bit) & 7)))) #define SetBit(ptr, bit) (((BYTE *) (ptr))[(bit)>>3] |= (1 << ((bit) & 7))) #define ClearBit(ptr, bit) (((BYTE *)(ptr))[(bit)>>3] &= ~(1 << ((bit) & 7))) -extern _X_EXPORT int CountBits(const uint8_t * mask, int len); #define SameClient(obj,client) \ (CLIENT_BITS((obj)->resource) == (client)->clientAsMask)