[PATCHv2] evdev: rename EvdevCacheCompare() to EvdevCache()
Peter Hutterer
peter.hutterer at who-t.net
Sun Dec 12 16:53:36 PST 2010
On Fri, Dec 10, 2010 at 04:16:59PM +0100, Peter Korsgaard wrote:
> Since 59056e656c64 (Remove the reopen timer logic) from last year,
> EvdevCacheCompare() is only used for caching ioctl values and not for
> comparing, so remove the unused compare logic and rename the function
> to EvdevCache().
>
> Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>
> ---
> - Fix stupid typo, thanks Benjamin.
>
> src/evdev.c | 66 +++++++---------------------------------------------------
> 1 files changed, 8 insertions(+), 58 deletions(-)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index 71882ce..45a6cfe 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -107,7 +107,7 @@ static int proximity_bits[] = {
> };
>
> static int EvdevOn(DeviceIntPtr);
> -static int EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare);
> +static int EvdevCache(InputInfoPtr pInfo);
> static void EvdevKbdCtrl(DeviceIntPtr device, KeybdCtrl *ctrl);
> static int EvdevSwitchMode(ClientPtr client, DeviceIntPtr device, int mode);
> static BOOL EvdevGrabDevice(InputInfoPtr pInfo, int grab, int ungrab);
> @@ -1744,14 +1744,11 @@ EvdevProc(DeviceIntPtr device, int what)
>
> /**
> * Get as much information as we can from the fd and cache it.
> - * If compare is True, then the information retrieved will be compared to the
> - * one already cached. If the information does not match, then this function
> - * returns an error.
> *
> * @return Success if the information was cached, or !Success otherwise.
> */
> static int
> -EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
> +EvdevCache(InputInfoPtr pInfo)
> {
> EvdevPtr pEvdev = pInfo->private;
> int i, len;
> @@ -1768,13 +1765,7 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
> goto error;
> }
>
> - if (!compare) {
> - strcpy(pEvdev->name, name);
> - } else if (strcmp(pEvdev->name, name)) {
> - xf86Msg(X_ERROR, "%s: device name changed: %s != %s\n",
> - pInfo->name, pEvdev->name, name);
> - goto error;
> - }
> + strcpy(pEvdev->name, name);
>
> len = ioctl(pInfo->fd, EVIOCGBIT(0, sizeof(bitmask)), bitmask);
> if (len < 0) {
> @@ -1783,12 +1774,7 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
> goto error;
> }
>
> - if (!compare) {
> - memcpy(pEvdev->bitmask, bitmask, len);
> - } else if (memcmp(pEvdev->bitmask, bitmask, len)) {
> - xf86Msg(X_ERROR, "%s: device bitmask has changed\n", pInfo->name);
> - goto error;
> - }
> + memcpy(pEvdev->bitmask, bitmask, len);
>
> len = ioctl(pInfo->fd, EVIOCGBIT(EV_REL, sizeof(rel_bitmask)), rel_bitmask);
> if (len < 0) {
> @@ -1797,12 +1783,7 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
> goto error;
> }
>
> - if (!compare) {
> - memcpy(pEvdev->rel_bitmask, rel_bitmask, len);
> - } else if (memcmp(pEvdev->rel_bitmask, rel_bitmask, len)) {
> - xf86Msg(X_ERROR, "%s: device rel_bitmask has changed\n", pInfo->name);
> - goto error;
> - }
> + memcpy(pEvdev->rel_bitmask, rel_bitmask, len);
>
> len = ioctl(pInfo->fd, EVIOCGBIT(EV_ABS, sizeof(abs_bitmask)), abs_bitmask);
> if (len < 0) {
> @@ -1811,12 +1792,7 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
> goto error;
> }
>
> - if (!compare) {
> - memcpy(pEvdev->abs_bitmask, abs_bitmask, len);
> - } else if (memcmp(pEvdev->abs_bitmask, abs_bitmask, len)) {
> - xf86Msg(X_ERROR, "%s: device abs_bitmask has changed\n", pInfo->name);
> - goto error;
> - }
> + memcpy(pEvdev->abs_bitmask, abs_bitmask, len);
>
> len = ioctl(pInfo->fd, EVIOCGBIT(EV_LED, sizeof(led_bitmask)), led_bitmask);
> if (len < 0) {
> @@ -1825,12 +1801,7 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
> goto error;
> }
>
> - if (!compare) {
> - memcpy(pEvdev->led_bitmask, led_bitmask, len);
> - } else if (memcmp(pEvdev->led_bitmask, led_bitmask, len)) {
> - xf86Msg(X_ERROR, "%s: device led_bitmask has changed\n", pInfo->name);
> - goto error;
> - }
> + memcpy(pEvdev->led_bitmask, led_bitmask, len);
>
> /*
> * Do not try to validate absinfo data since it is not expected
> @@ -1854,27 +1825,6 @@ EvdevCacheCompare(InputInfoPtr pInfo, BOOL compare)
> goto error;
> }
>
> - if (compare) {
> - /*
> - * Keys are special as user can adjust keymap at any time (on
> - * devices that support EVIOCSKEYCODE. However we do not expect
> - * buttons reserved for mice/tablets/digitizers and so on to
> - * appear/disappear so we will check only those in
> - * [BTN_MISC, KEY_OK) range.
> - */
> - size_t start_word = BTN_MISC / LONG_BITS;
> - size_t start_byte = start_word * sizeof(unsigned long);
> - size_t end_word = KEY_OK / LONG_BITS;
> - size_t end_byte = end_word * sizeof(unsigned long);
> -
> - if (len >= start_byte &&
> - memcmp(&pEvdev->key_bitmask[start_word], &key_bitmask[start_word],
> - min(len, end_byte) - start_byte + 1)) {
> - xf86Msg(X_ERROR, "%s: device key_bitmask has changed\n", pInfo->name);
> - goto error;
> - }
> - }
> -
> /* Copy the data so we have reasonably up-to-date info */
> memcpy(pEvdev->key_bitmask, key_bitmask, len);
>
> @@ -2273,7 +2223,7 @@ EvdevPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
>
> EvdevInitButtonMapping(pInfo);
>
> - if (EvdevCacheCompare(pInfo, FALSE) ||
> + if (EvdevCache(pInfo) ||
> EvdevProbe(pInfo)) {
> rc = BadMatch;
> goto error;
> --
> 1.7.1
merged, thanks.
Cheers,
Peter
More information about the xorg-devel
mailing list