<div dir="ltr">Hi all,<br><br>Last week I was working on generl DRM ioctl decoding according to the <br>review comments from esyr.<br><br>Accomplishments:<br>- Used print_array to print all those pointers which point to arrays and<br>I added a print_uint16_array_member() function because some fields seem<br>to be uint16. BTW those count_* fields come along with *_ptr fields are<br>now decoded correctly (considering I didn't notice they are R/W before).<br>- Used PRINT_FIELD_{FLAGS, XVAL, FD, UID} instead of printing them all<br>as signed or unsigned values. I'm thinking about adding a short comments<br>or description about them.<br>- Some other minor issues fixing, e.g. some fields should be printed in<br>hexadecimal format, all the xlat #includes now go to the beginning, etc.<br>- This one is a big change in my patch (at least to me, it is). I tried<br>what esyr suggested, providing fallback definitions of DRM_IOCTL related<br>structures and all those constants in strace/linux/linux/drm.h. There is<br>a drm_mode.h, too. I'm not sure if this is compliant with strace's<br>tradition (probably not) so I hope I can get feedbacks :).<br>For now, the changes are in [1]. I simply bundle the latest kernel headers<br>(ioc32 compat definitions are included) up in strace to see if it works.<br><br>[1] <a href="https://github.com/haoyouab/strace/commit/6db1c500cebfc8ec2e600f5f6ea182cd3e237f82">https://github.com/haoyouab/strace/commit/6db1c500cebfc8ec2e600f5f6ea182cd3e237f82</a><br><br>Priorities:<br>- Some refactoring work is not yet finished. I'm going to continue that.<br>- Those no-oped ioctls may worth decoding because they were valid on some<br>old kernels which strace still supports. I think I should make a list.<br>- With above changes, some tests are broken so I have to fix that, too.<br><br>Thanks,<br>Zhibin Li<br></div>