Only in libdrm-2.4.97-x/: debugfiles.list Only in libdrm-2.4.97-x/: debuglinks.list Only in libdrm-2.4.97-x/: debugsourcefiles.list Only in libdrm-2.4.97-x/: debugsources.list Only in libdrm-2.4.97-x/: elfbins.list Only in libdrm-2.4.97-x/: tags Only in libdrm-2.4.97-x/: x86_64-redhat-linux-gnu diff -dup -rup libdrm-2.4.97/xf86drmMode.c libdrm-2.4.97-x/xf86drmMode.c --- libdrm-2.4.97/xf86drmMode.c 2019-01-22 17:32:41.000000000 +0100 +++ libdrm-2.4.97-x/xf86drmMode.c 2019-02-18 22:09:22.531041325 +0100 @@ -1364,6 +1364,10 @@ static int sort_req_list(const void *mis return second->property_id - first->property_id; } +static void dump(FILE *f,const uint8_t *data,size_t len) { + while (len--) + fprintf(f,"%02x%c",*data++,(len?' ':'\n')); +} drm_public int drmModeAtomicCommit(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data) { @@ -1457,7 +1461,23 @@ drm_public int drmModeAtomicCommit(int f atomic.prop_values_ptr = VOID2U64(prop_values_ptr); atomic.user_data = VOID2U64(user_data); +{ +static int drmidx=0; +char *fn; +FILE *f; +if (asprintf(&fn,"/tmp/libdrm%03d.dump",drmidx++)) {} +f=fopen(fn,"w"); +fprintf(f,"atomic=%p ",&atomic); dump(f,(const void *)&atomic,sizeof(atomic)); +fprintf(f,"objs_ptr=%p ",objs_ptr); dump(f,(const void *)objs_ptr,atomic.count_objs * sizeof objs_ptr[0]); +fprintf(f,"count_props_ptr=%p ",objs_ptr); dump(f,(const void *)count_props_ptr,atomic.count_objs * sizeof count_props_ptr[0]); +fprintf(f,"props_ptr=%p ",props_ptr); dump(f,(const void *)props_ptr,sorted->cursor * sizeof props_ptr[0]); +fprintf(f,"prop_values_ptr=%p ",prop_values_ptr); dump(f,(const void *)prop_values_ptr,sorted->cursor * sizeof prop_values_ptr[0]); +fprintf(f,"user_data=%p\n",user_data); +fprintf(f,"errno=%d\n",errno); ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ATOMIC, &atomic); +fprintf(f,"ret=%d,errno=%d\n",ret,errno); ret=0; +fclose(f); +} out: drmFree(objs_ptr);