Lines Matching refs:prop
637 struct drm_mode_get_property prop;
640 memclear(prop);
641 prop.prop_id = property_id;
643 if (drmIoctl(fd, DRM_IOCTL_MODE_GETPROPERTY, &prop))
646 if (prop.count_values)
647 prop.values_ptr = VOID2U64(drmMalloc(prop.count_values * sizeof(uint64_t)));
649 if (prop.count_enum_blobs && (prop.flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)))
650 prop.enum_blob_ptr = VOID2U64(drmMalloc(prop.count_enum_blobs * sizeof(struct drm_mode_property_enum)));
652 if (prop.count_enum_blobs && (prop.flags & DRM_MODE_PROP_BLOB)) {
653 prop.values_ptr = VOID2U64(drmMalloc(prop.count_enum_blobs * sizeof(uint32_t)));
654 prop.enum_blob_ptr = VOID2U64(drmMalloc(prop.count_enum_blobs * sizeof(uint32_t)));
657 if (drmIoctl(fd, DRM_IOCTL_MODE_GETPROPERTY, &prop)) {
665 r->prop_id = prop.prop_id;
666 r->count_values = prop.count_values;
668 r->flags = prop.flags;
669 if (prop.count_values)
670 r->values = drmAllocCpy(U642VOID(prop.values_ptr), prop.count_values, sizeof(uint64_t));
671 if (prop.flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)) {
672 r->count_enums = prop.count_enum_blobs;
673 r->enums = drmAllocCpy(U642VOID(prop.enum_blob_ptr), prop.count_enum_blobs, sizeof(struct drm_mode_property_enum));
674 } else if (prop.flags & DRM_MODE_PROP_BLOB) {
675 r->values = drmAllocCpy(U642VOID(prop.values_ptr), prop.count_enum_blobs, sizeof(uint32_t));
676 r->blob_ids = drmAllocCpy(U642VOID(prop.enum_blob_ptr), prop.count_enum_blobs, sizeof(uint32_t));
677 r->count_blobs = prop.count_enum_blobs;
679 strncpy(r->name, prop.name, DRM_PROP_NAME_LEN);
683 drmFree(U642VOID(prop.values_ptr));
684 drmFree(U642VOID(prop.enum_blob_ptr));
1310 struct drm_mode_obj_set_property prop;
1312 memclear(prop);
1313 prop.value = value;
1314 prop.prop_id = property_id;
1315 prop.obj_id = object_id;
1316 prop.obj_type = object_type;
1318 return DRM_IOCTL(fd, DRM_IOCTL_MODE_OBJ_SETPROPERTY, &prop);