NVIDIA DRIVE 5.0 Linux SDK API Reference

5.0.10.3 Release

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
drm-nvdc-docs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016-2018 NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA CORPORATION and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
9  */
10 
11 
39 int drmOpen(const char* name, const char* busid);
40 
41 
48 int drmClose(int fd);
49 
50 
73 int drmGetCap(int fd, uint64_t capability, uint64_t *value);
74 
75 
87 int drmSetClientCap(int fd, uint64_t capability, uint64_t value);
88 
89 
103 int drmSetMaster(int fd);
104 
105 
114 int drmDropMaster(int fd);
115 
116 
126 int drmGetMagic( int fd, drm_magic_t * magic);
127 
128 
138 int drmAuthMagic(int fd, drm_magic_t magic);
139 
140 
162 drmVersionPtr drmGetVersion(int fd);
163 
164 
172 void drmFreeVersion(drmVersionPtr version);
173 
174 
188 int drmHandleEvent(int fd, drmEventContextPtr evctx);
189 
190 
230 int drmIoctl(int fd, unsigned long request, void *arg);
231 
232 
255 int drmWaitVBlank(int fd, drmVBlankPtr vbl);
256 
257 
281 int drmModeAddFB(int fd,
282  uint32_t width,
283  uint32_t height,
284  uint8_t depth,
285  uint8_t bpp,
286  uint32_t pitch,
287  uint32_t bo_handle,
288  uint32_t *buf_id);
289 
290 
322 int drmModeAddFB2(int fd,
323  uint32_t width,
324  uint32_t height,
325  uint32_t pixel_format,
326  const uint32_t bo_handles[4],
327  const uint32_t pitches[4],
328  const uint32_t offsets[4],
329  uint32_t *buf_id,
330  uint32_t flags);
331 
332 
344 int drmModeRmFB(int fd, uint32_t fb_id);
345 
346 
366 drmModeConnectorPtr drmModeGetConnector(int fd, uint32_t connector_id);
367 
368 
376 void drmModeFreeConnector(drmModeConnectorPtr ptr);
377 
378 
390 int drmModeConnectorSetProperty(int fd,
391  uint32_t connector_id,
392  uint32_t property_id,
393  uint64_t value);
394 
395 
411 drmModeCrtcPtr drmModeGetCrtc(int fd, uint32_t crtc_id);
412 
413 
421 void drmModeFreeCrtc(drmModeCrtcPtr ptr);
422 
423 
462 int drmModeSetCrtc(int fd,
463  uint32_t crtc_id,
464  uint32_t fb_id,
465  uint32_t x,
466  uint32_t y,
467  uint32_t *connectors,
468  int count,
469  drmModeModeInfoPtr drm_mode);
470 
471 
489 int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
490  uint16_t *red, uint16_t *green, uint16_t *blue);
491 
492 
508 int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
509  uint16_t *red, uint16_t *green, uint16_t *blue);
510 
511 
537 int drmModePageFlip(int fd,
538  uint32_t crtc_id,
539  uint32_t fb_id,
540  uint32_t flags,
541  void *user_data);
542 
543 
565 int drmModeSetCursor(int fd,
566  uint32_t crtc_id,
567  uint32_t bo_handle,
568  uint32_t width,
569  uint32_t height);
570 
571 
583 int drmModeMoveCursor(int fd, uint32_t crtc_id, int x, int y);
584 
585 
604 drmModeEncoderPtr drmModeGetEncoder(int fd, uint32_t encoder_id);
605 
606 
614 void drmModeFreeEncoder(drmModeEncoderPtr ptr);
615 
616 
637 drmModePlanePtr drmModeGetPlane(int fd, uint32_t plane_id);
638 
639 
647 void drmModeFreePlane(drmModePlanePtr ptr);
648 
649 
684 int drmModeSetPlane(int fd,
685  uint32_t plane_id,
686  uint32_t crtc_id,
687  uint32_t fb_id,
688  uint32_t flags,
689  int32_t crtc_x,
690  int32_t crtc_y,
691  uint32_t crtc_w,
692  uint32_t crtc_h,
693  uint32_t src_x,
694  uint32_t src_y,
695  uint32_t src_w,
696  uint32_t src_h);
697 
698 
738  drmModeObjectPropertiesPtr drmModeObjectGetProperties(int fd,
739  uint32_t object_id,
740  uint32_t object_type);
741 
742 
751 void drmModeFreeObjectProperties(drmModeObjectPropertiesPtr ptr);
752 
753 
803  * /* Print the property name, which will be "Primary", "Overlay", or "Cursor". */
804  * printf("\tcon_value : %s\n", name);
805  * } else {
806  * /* The specified plane property value does not appear in the DRM properties. */
807  * /* Print the property value for which we were looking. */
808  * printf("\tcon_value : %" PRIu64 "\n", value);
809  * }
810  * @endcode
811  *
812  * @note The zpos value for a plane is initialized with an offset of 10 relative to
813  * the next plane. This is to allow for flexible configuration of heads. For example:
814  * - "Primary" type Plane zpos = 10
815  * - First "Overlay" Plane zpos = 20
816  * - Next "Overlay" Plane zpos = 30
817  * - Etc.
818  *
819  * @note The allowed range for zpos is [0, 255]. Planes with numerically greater values for
820  * zpos occlude planes with numerically lesser values.
821  *
822  * @note The alpha value for a plane causes a plane-wide transparency to be
823  * applied as well as the per-pixel alpha contained in the buffer object. The
824  * allowed range for alpha is [0, 255], where 0 is fully transparent and 255 indicates
825  * that only per-pixel alpha has an effect. For non-alpha pixel formats,
826  * there is no per-pixel alpha, so 255 indicates fully opaque.
827  *
828  * @post If the call is successful, the application must free the property
829  * information structure by calling ::drmModeFreeProperty.
830  *
831  * @param fd The file descriptor of an open DRM device.
832  * @param propertyId Property ID of the property object to be fetched.
833  * @return A @c drmModePropertyPtr if successful, or NULL otherwise.
834  */
835 drmModePropertyPtr drmModeGetProperty(int fd, uint32_t propertyId);
836 
851 int drmModeObjectSetProperty(int fd, uint32_t object_id, uint32_t object_type,
852  uint32_t property_id, uint64_t value);
853 
861 void drmModeFreeProperty(drmModePropertyPtr ptr);
862 
863 
881 drmModeResPtr drmModeGetResources(int fd);
882 
883 
891 void drmModeFreeResources(drmModeResPtr ptr);
892 
893 
915 drmModePlaneResPtr drmModeGetPlaneResources(int fd);
916 
917 
926 void drmModeFreePlaneResources(drmModePlaneResPtr ptr);
927 
928 
939 int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle);
940 
952 int drmPrimeHandleToFD(int fd, uint32_t handle, uint32_t flags, int *prime_fd)
953 
954 
968 drmModeAtomicReqPtr drmModeAtomicAlloc(void);
969 
970 
984 int drmModeAtomicAddProperty(drmModeAtomicReqPtr req,
985  uint32_t object_id,
986  uint32_t property_id,
987  uint64_t value);
988 
989 
1015 int drmModeAtomicCommit(int fd,
1016  drmModeAtomicReqPtr req,
1017  uint32_t flags,
1018  void *user_data);
1019 
1020 
1029 void drmModeAtomicFree(drmModeAtomicReqPtr req);
1030 
1031 
1047 int drmSetInterfaceVersion(int fd, drmSetVersion *version);
1048 
1049 
1065 char *drmGetBusid(int fd);
1066 
1067 
1076 void drmFreeBusid(const char *busid);
1077 
1078 
1105 int drmModeCreatePropertyBlob(int fd,
1106  const void *data, size_t size,
1107  uint32_t *id);
1108 
1109 
1120 int drmModeDestroyPropertyBlob(int fd, uint32_t id);
1121 
1122 
1133 drmModePropertyBlobPtr drmModeGetPropertyBlob(int fd, uint32_t blob_id);
1134 
1135 
1144 void drmModeFreePropertyBlob(drmModePropertyBlobPtr ptr);
1145 
1146 
1162 char *drmGetDeviceNameFromFd(int fd);
1163 
1164 
1172 void drmFree(void *p);
1173 
1189 int drmCommandWriteRead(int fd,
1190  unsigned long drmCommandIndex,
1191  void *data,
1192  unsigned long size);
1193 
1201 drmHashEntry *drmGetEntry(int fd);
1202 
1203 
1211 int drmRmMap(int fd, drm_handle_t handle);
1212 
1220 int drmAvailable(void);
1221 
1229 int drmDestroyDrawable(int fd, drm_drawable_t handle);
1230 
1238 int drmDestroyContext(int fd, drm_context_t handle);
1239 
1247 int drmSetContextFlags(int fd, drm_context_t context, drm_context_tFlags flags);
1248 
1256 int drmMap(int fd, drm_handle_t handle, drmSize size, drmAddressPtr address);
1257 
1265 int drmUnlock(int fd, drm_context_t context);
1266 
1272 void drmFreeReservedContextList(drm_context_t *pt);
1273 
1279 void drmSetServerInfo(drmServerInfoPtr info);
1280 
1288 int drmAddContextTag(int fd, drm_context_t context, void *tag);
1289 
1297 int drmAddMap(int fd, drm_handle_t offset, drmSize size,
1298  drmMapType type, drmMapFlags flags,
1299  drm_handle_t *handle);
1300 
1308 int drmCreateContext(int fd, drm_context_t *handle);
1309 
1317 int drmUpdateDrawableInfo(int fd, drm_drawable_t handle,
1318  drm_drawable_info_type_t type,
1319  unsigned int num,
1320  void *data);
1321 
1329 int drmCreateDrawable(int fd, drm_drawable_t *handle);
1330 
1338 void *drmGetHashTable(void);
1339 
1347 int drmDelContextTag(int fd, drm_context_t context);
1348 
1356 int drmUnmap(drmAddress address, drmSize size);
1357 
1365 int drmSetBusid(int fd, const char *busid);
1366 
1374 int drmGetLock(int fd, drm_context_t context, drmLockFlags flags);
1375 
1383 void *drmGetContextTag(int fd, drm_context_t context);
1384 
1392 drm_context_t *drmGetReservedContextList(int fd, int *count);
1393 
1401 int drmHashNext(void *t, unsigned long *key, void **value);
1402 
1410 int drmHashFirst(void *t, unsigned long *key, void **value);
1411 
1419 int drmModeSetCursor2(int fd, uint32_t crtcId, uint32_t bo_handle,
1420  uint32_t width, uint32_t height, int32_t hot_x,
1421  int32_t hot_y)
1422 
1423 
1430 int drmModeAddFB2WithModifiers(int fd, uint32_t width,
1431  uint32_t height, uint32_t pixel_format,
1432  const uint32_t bo_handles[4],
1433  const uint32_t pitches[4],
1434  const uint32_t offsets[4],
1435  const uint64_t modifier[4],
1436  uint32_t *buf_id, uint32_t flags);
1437 
drmModeEncoderPtr drmModeGetEncoder(int fd, uint32_t encoder_id)
Gets information for an encoder.
int drmSetContextFlags(int fd, drm_context_t context, drm_context_tFlags flags)
Function stub.
void drmModeFreePlaneResources(drmModePlaneResPtr ptr)
Frees a plane resource information structure.
int drmHashFirst(void *t, unsigned long *key, void **value)
Function stub.
int drmCreateDrawable(int fd, drm_drawable_t *handle)
Function stub.
int uint32_t uint32_t uint32_t const uint32_t const uint32_t const uint32_t const uint64_t modifier[4]
void drmModeFreeObjectProperties(drmModeObjectPropertiesPtr ptr)
Frees an object properties structure.
int uint32_t width
int drmUnmap(drmAddress address, drmSize size)
Function stub.
drmModeObjectPropertiesPtr drmModeObjectGetProperties(int fd, uint32_t object_id, uint32_t object_type)
Gets all properties of a DRM object.
int drmModePageFlip(int fd, uint32_t crtc_id, uint32_t fb_id, uint32_t flags, void *user_data)
Requests a page flip (framebuffer change) on the specified CRTC.
drmModePropertyBlobPtr drmModeGetPropertyBlob(int fd, uint32_t blob_id)
Allocates and retrieves a userspace property blob pointer.
int drmSetClientCap(int fd, uint64_t capability, uint64_t value)
Enables or disables DRM features (capabilities).
int drmDelContextTag(int fd, drm_context_t context)
Function stub.
int uint32_t uint32_t uint32_t const uint32_t const uint32_t const uint32_t offsets[4]
int drmWaitVBlank(int fd, drmVBlankPtr vbl)
Waits for a vertical blanking interval (vblank).
int drmDestroyContext(int fd, drm_context_t handle)
Function stub.
int drmModeDestroyPropertyBlob(int fd, uint32_t id)
Destroys a property blob.
int drmMap(int fd, drm_handle_t handle, drmSize size, drmAddressPtr address)
Function stub.
int drmModeObjectSetProperty(int fd, uint32_t object_id, uint32_t object_type, uint32_t property_id, uint64_t value)
Set the current value of an object's property.
int drmCommandWriteRead(int fd, unsigned long drmCommandIndex, void *data, unsigned long size)
Send a device-specific read-write command.
drmModeCrtcPtr drmModeGetCrtc(int fd, uint32_t crtc_id)
Gets information for a CRTC.
int drmModeAddFB2(int fd, uint32_t width, uint32_t height, uint32_t pixel_format, const uint32_t bo_handles[4], const uint32_t pitches[4], const uint32_t offsets[4], uint32_t *buf_id, uint32_t flags)
Creates a framebuffer, specifying format and planes.
int drmGetCap(int fd, uint64_t capability, uint64_t *value)
Gets capabilities of the DRM driver.
int drmDropMaster(int fd)
Releases master controls for a DRM device.
int drmModeSetCursor(int fd, uint32_t crtc_id, uint32_t bo_handle, uint32_t width, uint32_t height)
Sets a cursor image.
int drmModeConnectorSetProperty(int fd, uint32_t connector_id, uint32_t property_id, uint64_t value)
Sets a connector property.
int drmModeAtomicCommit(int fd, drmModeAtomicReqPtr req, uint32_t flags, void *user_data)
Commits an atomic property change request to hardware.
void drmModeFreeConnector(drmModeConnectorPtr ptr)
Frees a connector.
char * drmGetBusid(int fd)
Gets the bus ID of a device.
void drmSetServerInfo(drmServerInfoPtr info)
Function stub.
int drmCreateContext(int fd, drm_context_t *handle)
Function stub.
void drmModeFreeProperty(drmModePropertyPtr ptr)
Frees a property structure.
void drmModeFreePlane(drmModePlanePtr ptr)
Frees a plane.
int drmModeSetCrtc(int fd, uint32_t crtc_id, uint32_t fb_id, uint32_t x, uint32_t y, uint32_t *connectors, int count, drmModeModeInfoPtr drm_mode)
Sets a CRTC configuration.
int drmModeCreatePropertyBlob(int fd, const void *data, size_t size, uint32_t *id)
Creates a property blob.
int uint32_t uint32_t uint32_t const uint32_t bo_handles[4]
int drmHashNext(void *t, unsigned long *key, void **value)
Function stub.
int drmAddMap(int fd, drm_handle_t offset, drmSize size, drmMapType type, drmMapFlags flags, drm_handle_t *handle)
Function stub.
void drmFreeBusid(const char *busid)
Frees bus ID information.
int uint32_t uint32_t uint32_t const uint32_t const uint32_t const uint32_t const uint64_t uint32_t uint32_t flags
int uint32_t uint32_t height
void drmModeAtomicFree(drmModeAtomicReqPtr req)
Frees an atomic request.
void drmModeFreePropertyBlob(drmModePropertyBlobPtr ptr)
Frees a userspace property blob pointer.
drmModeConnectorPtr drmModeGetConnector(int fd, uint32_t connector_id)
Gets information for a connector.
int drmModeAtomicAddProperty(drmModeAtomicReqPtr req, uint32_t object_id, uint32_t property_id, uint64_t value)
Adds a property to an atomic request.
int uint32_t uint32_t uint32_t const uint32_t const uint32_t pitches[4]
int drmIoctl(int fd, unsigned long request, void *arg)
Issues a DRM input/output control (IOCTL).
drmModePlanePtr drmModeGetPlane(int fd, uint32_t plane_id)
Gets information about a plane.
int drmAuthMagic(int fd, drm_magic_t magic)
Authenticates a magic cookie.
int drmDestroyDrawable(int fd, drm_drawable_t handle)
Function stub.
int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle)
Imports a dma-buf.
int drmAddContextTag(int fd, drm_context_t context, void *tag)
Function stub.
drmModeResPtr drmModeGetResources(int fd)
Gets information about a DRM device's CRTCs, encoders, and connectors.
int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size, uint16_t *red, uint16_t *green, uint16_t *blue)
Gets the current display gamma ramp.
int drmGetMagic(int fd, drm_magic_t *magic)
Retrieves a magic cookie.
drmVersionPtr drmGetVersion(int fd)
Retrieves version information for the DRM driver.
void drmModeFreeCrtc(drmModeCrtcPtr ptr)
Frees a CRTC.
int drmHandleEvent(int fd, drmEventContextPtr evctx)
Polls for an event, specifying a callback function.
int drmSetInterfaceVersion(int fd, drmSetVersion *version)
Sets the interface version.
int drmAvailable(void)
Function stub.
drmModePropertyPtr drmModeGetProperty(int fd, uint32_t propertyId)
Gets a property structure that describes a property of a DRM object.
drm_context_t * drmGetReservedContextList(int fd, int *count)
Function stub.
int drmUpdateDrawableInfo(int fd, drm_drawable_t handle, drm_drawable_info_type_t type, unsigned int num, void *data)
Function stub.
int drmModeMoveCursor(int fd, uint32_t crtc_id, int x, int y)
Moves a cursor.
drmHashEntry * drmGetEntry(int fd)
Function stub.
int drmModeAddFB(int fd, uint32_t width, uint32_t height, uint8_t depth, uint8_t bpp, uint32_t pitch, uint32_t bo_handle, uint32_t *buf_id)
Creates a framebuffer.
int drmClose(int fd)
Closes a DRM device.
int drmSetBusid(int fd, const char *busid)
Function stub.
int drmGetLock(int fd, drm_context_t context, drmLockFlags flags)
Function stub.
void * drmGetHashTable(void)
Function stub.
drmModePlaneResPtr drmModeGetPlaneResources(int fd)
Gets information about planes.
int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size, uint16_t *red, uint16_t *green, uint16_t *blue)
Sets the display gamma.
void * drmGetContextTag(int fd, drm_context_t context)
Function stub.
int uint32_t uint32_t uint32_t pixel_format
int drmModeSetPlane(int fd, uint32_t plane_id, uint32_t crtc_id, uint32_t fb_id, uint32_t flags, int32_t crtc_x, int32_t crtc_y, uint32_t crtc_w, uint32_t crtc_h, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h)
Changes a plane's framebuffer and position.
int uint32_t uint32_t uint32_t const uint32_t const uint32_t const uint32_t const uint64_t uint32_t * buf_id
char * drmGetDeviceNameFromFd(int fd)
Gets a DRM device's name string.
void drmModeFreeEncoder(drmModeEncoderPtr ptr)
Frees an encoder.
int drmUnlock(int fd, drm_context_t context)
Function stub.
int drmSetMaster(int fd)
Requests master controls for a DRM device.
int drmPrimeHandleToFD(int fd, uint32_t handle, uint32_t flags, int *prime_fd) drmModeAtomicReqPtr drmModeAtomicAlloc(void)
Exports a dma-buf.
void drmFreeReservedContextList(drm_context_t *pt)
Function stub.
void drmFreeVersion(drmVersionPtr version)
Frees a version information structure.
int drmOpen(const char *name, const char *busid)
Opens a DRM device and creates a file descriptor handle.
int drmModeSetCursor2(int fd, uint32_t crtcId, uint32_t bo_handle, uint32_t width, uint32_t height, int32_t hot_x, int32_t hot_y) int drmModeAddFB2WithModifiers(int fd
Function stub.
void drmModeFreeResources(drmModeResPtr ptr)
Frees a resource information structure.
int drmRmMap(int fd, drm_handle_t handle)
Function stub.
int drmModeRmFB(int fd, uint32_t fb_id)
Destroys a framebuffer.
void drmFree(void *p)
Frees a block of memory.