[RFC/PATCH v1 1/3] fix decoder of ioctl EVIOCGBIT

Zhibin Li haoyouab at gmail.com
Tue Aug 14 14:50:16 UTC 2018


About the xlat style stuff. Should I change EV_SYN to 0 in xlat/evdev_ev.in
instead?

On Tue, Aug 14, 2018 at 8:20 PM Zhibin Li <haoyouab at gmail.com> wrote:

>
>
> On Tue, Aug 14, 2018 at 8:08 AM Eugene Syromiatnikov <esyr at redhat.com>
> wrote:
>
>> On Fri, Aug 10, 2018 at 07:12:42PM +0800, Zhibin Li wrote:
>> > EV_SYN in EVIOCGBIT should be decoded to get other event types EV_*, not
>> > the precise event codes SYN_*.
>>
>> It's not EV_SYN, it's just EVIOCGBIT(0, ...) that returns bitmask with
>> supported event types, it has nothing with synchronous events.
>>
> Yes you're right.
>
>>
>> > @@ -259,8 +259,8 @@ bit_ioctl(struct tcb *const tcp, const unsigned int
>> ev_nr,
>> >  {
>> >       switch (ev_nr) {
>>
>> >               case EV_SYN:
>> That probably shoud be changed to "case 0".
>>
> I missed this one.
>
>>
>> > -                     return decode_bitset(tcp, arg, evdev_sync,
>> > -                                          SYN_MAX, "SYN_???",
>> XT_INDEXED);
>> > +                     return decode_bitset(tcp, arg, evdev_ev,
>> > +                                          EV_MAX, "EV_???", XT_NORMAL);
>> Why not XT_SORTED?
>>
> Oh I don't know the detailed usage of these three flags. I should look
> into xlat code.
>
>>
>> >               case EV_KEY:
>> >                       return decode_bitset(tcp, arg, evdev_keycode,
>> >                                            KEY_MAX, "KEY_???",
>> XT_INDEXED);
>> > diff --git a/ioctl.c b/ioctl.c
>> > index 93fb5263..d56bf69e 100644
>> > --- a/ioctl.c
>> > +++ b/ioctl.c
>> > @@ -99,7 +99,11 @@ evdev_decode_number(const unsigned int code)
>> >
>> >       if (nr >= 0x20 && nr <= 0x20 + 0x1f) {
>> >               tprints("EVIOCGBIT(");
>> > -             printxval(evdev_ev, nr - 0x20, "EV_???");
>> > +             /* There is no EV_SYN in EVIOCGBIT */
>> > +             if (nr == 0x20)
>> > +                     tprintf("0");
>> > +             else
>> > +                     printxval(evdev_ev, nr - 0x20, "EV_???");
>> That doesn't go well with the concept of xlat styles; however, as it is,
>> it doesn't break anything, at least.
>
> Any documentation or  references regarding this concept?  I'm looking into
> xlat.c and those related commits now.
>
>>
>
> --
>> Strace-devel mailing list
>> Strace-devel at lists.strace.io
>> https://lists.strace.io/mailman/listinfo/strace-devel
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20180814/57b5d6de/attachment.html>


More information about the Strace-devel mailing list