diff options
Diffstat (limited to 'xf86drmMode.c')
-rw-r--r-- | xf86drmMode.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/xf86drmMode.c b/xf86drmMode.c index a75eca33..73c86958 100644 --- a/xf86drmMode.c +++ b/xf86drmMode.c | |||
@@ -1387,3 +1387,37 @@ out: | |||
1387 | 1387 | ||
1388 | return ret; | 1388 | return ret; |
1389 | } | 1389 | } |
1390 | |||
1391 | int | ||
1392 | drmModeCreatePropertyBlob(int fd, const void *data, size_t length, uint32_t *id) | ||
1393 | { | ||
1394 | struct drm_mode_create_blob create; | ||
1395 | int ret; | ||
1396 | |||
1397 | if (length >= 0xffffffff) | ||
1398 | return -ERANGE; | ||
1399 | |||
1400 | memclear(create); | ||
1401 | |||
1402 | create.length = length; | ||
1403 | create.data = (uintptr_t) data; | ||
1404 | create.blob_id = 0; | ||
1405 | *id = 0; | ||
1406 | |||
1407 | ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_CREATEPROPBLOB, &create); | ||
1408 | if (ret != 0) | ||
1409 | return ret; | ||
1410 | |||
1411 | *id = create.blob_id; | ||
1412 | return 0; | ||
1413 | } | ||
1414 | |||
1415 | int | ||
1416 | drmModeDestroyPropertyBlob(int fd, uint32_t id) | ||
1417 | { | ||
1418 | struct drm_mode_destroy_blob destroy; | ||
1419 | |||
1420 | memclear(destroy); | ||
1421 | destroy.blob_id = id; | ||
1422 | return DRM_IOCTL(fd, DRM_IOCTL_MODE_DESTROYPROPBLOB, &destroy); | ||
1423 | } | ||