<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 14, 2018 at 1:59 AM Dmitry V. Levin <<a href="mailto:ldv@altlinux.org">ldv@altlinux.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, Aug 10, 2018 at 07:12:42PM +0800, Zhibin Li wrote:<br>
> EV_SYN in EVIOCGBIT should be decoded to get other event types EV_*, not<br>
> the precise event codes SYN_*.<br>
<br>
Sorry but I don't follow.  Could you elaborate, please?<br></blockquote><div>Actually I refer to linux source code and there's a comment in</div><div>drivers/input/evdev.c which says:</div><div><br></div><div>/* EV_SYN==0 is EV_CNT, _not_ SYN_CNT, see EVIOCGBIT */</div><div><br></div><div>so when using the decoder of EVIOCGBIT to decode all those set bits,</div><div>EVIOCGBIT(EV_SYN, n) should get something like [EV_ABS, EV_MSC] instead of</div><div>[SYN_REPORT, SYN_MT_REPORT]. This is not like others, for example:</div><div>* EVIOCGBIT(EV_LED, n) should get something like [LED_NUML, LED_CAPSL]. In</div><div>other words, EV_LED should get LED_*, EV_KEY should get KEY_* but EV_SYN</div><div>should get EV_* (EV_SYN is 0 and it's a special case).</div><div><br></div><div>As for the terms "event types" and "event codes", I got these from [0] </div><div>and briefly speaking "event types" are EV_* while "event codes" are SYN_*,</div><div>LED_* and KEY_*, etc.</div><div><br></div><div>[0] <a href="https://www.kernel.org/doc/html/v4.17/input/event-codes.html">https://www.kernel.org/doc/html/v4.17/input/event-codes.html</a></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> * evdev.c: Include "xlat/evdev_ev.h" and remove "xlat/evdev_sync.h".<br>
<br>
This removes the last user of evdev_sync.  Should xlat/<a href="http://evdev_sync.in" rel="noreferrer" target="_blank">evdev_sync.in</a> be<br>
removed, too?<br></blockquote><div>It seems so for now but I'm not sure whether there will be any further use </div><div>of SYN_* flags. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> (decode_bitset_): Fix the incorrect comparison between tcp->u_rval and<br>
> max_nr.<br>
<br>
Could you explain, please, why the comparison is incorrect?<br></blockquote><div>It seems the return value of ioctl here is counted in bytes but max_nr here </div><div>(possible values are EV_MAX, LED_MAX and ABS_MAX, etc) is counted in bits if</div><div>I'm not misunderstanding. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
-- <br>
ldv<br>
</blockquote></div></div>