NV services: Difference between revisions

No edit summary
Line 105: Line 105:
Webkit applet creates the shared memory with perm = 0 and size 0x300000.
Webkit applet creates the shared memory with perm = 0 and size 0x300000.


== Ioctls ==
= Ioctls =
The ioctl number is generated with the following primitive (see Linux kernel):
The ioctl number is generated with the following primitive (see Linux kernel):


Line 113: Line 113:
The following table contains known ioctls.
The following table contains known ioctls.


== /dev/nvhost-ctrl ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Device || Value || Description || Notes
! Value || Description || Notes
|-
|-
| /dev/nvhost-* || 0xC0??0001 || NVHOST_IOCTL_CHANNEL_SUBMIT || ?? == size is variable
| 0xC0080014 || NVHOST_IOCTL_CTRL_SYNCPT_READ ||
|-
|-
| /dev/nvhost-* || 0xC0080002 || NVHOST_IOCTL_CHANNEL_GET_SYNCPOINT ||
| 0x40040015 || NVHOST_IOCTL_CTRL_SYNCPT_INCR ||
|-
|-
| /dev/nvhost-* || 0xC0080003 || NVHOST_IOCTL_CHANNEL_GET_WAITBASE ||
| 0xC00C0016 || NVHOST_IOCTL_CTRL_SYNCPT_WAIT ||
|-
|-
| /dev/nvhost-* || 0xC0080004 || NVHOST_IOCTL_CHANNEL_SET_TIMEOUT_EX ||
| 0x40080017 || NVHOST_IOCTL_CTRL_MODULE_MUTEX ||
|-
|-
| /dev/nvhost-* || 0x40040007 || ||
| 0xC0180018 || NVHOST32_IOCTL_CTRL_MODULE_REGRDWR ||
|-
|-
| /dev/nvhost-* || 0xC0??0009 || NVHOST_IOCTL_CHANNEL_MAP_BUFFER || ?? == size is variable
| 0xC0100019 || NVHOST_IOCTL_CTRL_SYNCPT_WAITEX ||
|-
|-
| /dev/nvhost-* || 0xC0??000A || NVHOST_IOCTL_CHANNEL_UNMAP_BUFFER || ?? == size is variable
| 0xC008001A || NVHOST_IOCTL_CTRL_SYNCPT_READ_MAX ||
|-
|-
| /dev/nvhost-* || 0x00000013 || ||
| 0xC004001C || ||
|-
|-
| /dev/nvhost-ctrl || 0xC0080014 || NVHOST_IOCTL_CTRL_SYNCPT_READ ||
| 0xC010001D || || NvRmSyncWaitEvent (wait on event?)
|-
|-
| /dev/nvhost-ctrl || 0x40040015 || NVHOST_IOCTL_CTRL_SYNCPT_INCR ||
| 0xC010001E || || NvRmSyncWaitEvent (wait on event?)
|-
|-
| /dev/nvhost-ctrl || 0xC00C0016 || NVHOST_IOCTL_CTRL_SYNCPT_WAIT ||
| 0xC004001F || || NvRmSyncWaitEvent (signal event?)
|-
|-
| /dev/nvhost-ctrl || 0x40080017 || NVHOST_IOCTL_CTRL_MODULE_MUTEX ||
| 0xC0040020 || || NvRmSyncWaitEvent (signal event?)
|-
|-
| /dev/nvhost-ctrl || 0xC0180018 || NVHOST32_IOCTL_CTRL_MODULE_REGRDWR ||
| 0x40080021 || cancel_wait_event || Cancels all events
|}
 
== /dev/nvmap ==
{| class="wikitable" border="1"
! Value || Description || Notes
|-
|-
| /dev/nvhost-ctrl || 0xC0100019 || NVHOST_IOCTL_CTRL_SYNCPT_WAITEX ||
| 0xC0080101 || NVMAP_IOC_CREATE ||
|-
|-
| /dev/nvhost-ctrl || 0xC008001A || NVHOST_IOCTL_CTRL_SYNCPT_READ_MAX ||
| 0x00000102 || NVMAP_IOC_CLAIM || Returns NotSupported
|-
|-
| /dev/nvhost-ctrl || 0xC004001C || ||
| 0xC0080103 || NVMAP_IOC_FROM_ID ||
|-
|-
| /dev/nvhost-ctrl || 0xC010001D || || NvRmSyncWaitEvent (wait on event?)
| 0xC0200104 || NVMAP_IOC_ALLOC ||
|-
|-
| /dev/nvhost-ctrl || 0xC010001E || || NvRmSyncWaitEvent (wait on event?)
| 0xC0180105 || NVMAP_IOC_FREE ||
|-
|-
| /dev/nvhost-ctrl || 0xC004001F || || NvRmSyncWaitEvent (signal event?)
| 0xC0280106 || NVMAP_IOC_MMAP || Returns NotSupported
|-
|-
| /dev/nvhost-ctrl || 0xC0040020 || || NvRmSyncWaitEvent (signal event?)
| 0xC0280107 || NVMAP_IOC_WRITE || Returns NotSupported
|-
|-
| /dev/nvhost-ctrl || 0x40080021 || cancel_wait_event || Cancels all events
| 0xC0280108 || NVMAP_IOC_READ || Returns NotSupported
|-
|-
| /dev/nvmap || 0xC0080101 || NVMAP_IOC_CREATE ||
| 0xC00C0109 || NVMAP_IOC_PARAM ||
|-
|-
| /dev/nvmap || 0x00000102 || || Returns NVERROR 0x02 (not supported)
| 0xC010010A || NVMAP_IOC_PIN_MULT || Returns NotSupported
|-
|-
| /dev/nvmap || 0xC0080103 || NVMAP_IOC_FROM_ID ||
| 0xC010010B || NVMAP_IOC_UNPIN_MULT || Returns NotSupported
|-
|-
| /dev/nvmap || 0xC0200104 || NVMAP_IOC_ALLOC ||
| 0xC008010C || NVMAP_IOC_CACHE || Returns NotSupported
|-
|-
| /dev/nvmap || 0xC0180105 || NVMAP_IOC_FREE ||
| 0xC004010D || || Returns NotSupported
|-
|-
| /dev/nvmap || 0xC0280106 || NVMAP_IOC_MMAP? || Returns NVERROR 0x02 (not supported)
| 0xC008010E || NVMAP_IOC_GET_ID ||
|-
|-
| /dev/nvmap || 0xC0280107 || NVMAP_IOC_WRITE? || Returns NVERROR 0x02 (not supported)
| 0xC004010F || || Returns NotSupported
|-
|-
| /dev/nvmap || 0xC0280108 || NVMAP_IOC_READ? || Returns NVERROR 0x02 (not supported)
| 0x40040110 || || Returns NotSupported
|-
|-
| /dev/nvmap || 0xC00C0109 || NVMAP_IOC_PARAM ||
| 0x00000111 || || Returns NotSupported
|}
 
== Rest ==
{| class="wikitable" border="1"
! Device || Value || Description || Notes
|-
|-
| /dev/nvmap || 0xC010010A || NVMAP_IOC_PIN_MULT? || Returns NVERROR 0x02 (not supported)
| /dev/nvhost-* || 0xC0??0001 || NVHOST_IOCTL_CHANNEL_SUBMIT || ?? == size is variable
|-
|-
| /dev/nvmap || 0xC010010B || NVMAP_IOC_UNPIN_MULT? || Returns NVERROR 0x02 (not supported)
| /dev/nvhost-* || 0xC0080002 || NVHOST_IOCTL_CHANNEL_GET_SYNCPOINT ||
|-
|-
| /dev/nvmap || 0xC008010C || NVMAP_IOC_CACHE? || Returns NVERROR 0x02 (not supported)
| /dev/nvhost-* || 0xC0080003 || NVHOST_IOCTL_CHANNEL_GET_WAITBASE ||
|-
|-
| /dev/nvmap || 0xC004010D || || Returns NVERROR 0x02 (not supported)
| /dev/nvhost-* || 0xC0080004 || NVHOST_IOCTL_CHANNEL_SET_TIMEOUT_EX ||
|-
|-
| /dev/nvmap || 0xC008010E || NVMAP_IOC_GET_ID ||
| /dev/nvhost-* || 0x40040007 || ||
|-
|-
| /dev/nvmap || 0xC004010F || || Returns NVERROR 0x02 (not supported)
| /dev/nvhost-* || 0xC0??0009 || NVHOST_IOCTL_CHANNEL_MAP_BUFFER || ?? == size is variable
|-
|-
| /dev/nvmap || 0x40040110 || || Returns NVERROR 0x02 (not supported)
| /dev/nvhost-* || 0xC0??000A || NVHOST_IOCTL_CHANNEL_UNMAP_BUFFER || ?? == size is variable
|-
|-
| /dev/nvmap || 0x00000111 || || Returns NVERROR 0x02 (not supported)
| /dev/nvhost-* || 0x00000013 || ||
|-
|-
| /dev/nvhost-as-gpu || 0x40044101 || NVGPU_AS_IOCTL_BIND_CHANNEL ||
| /dev/nvhost-as-gpu || 0x40044101 || NVGPU_AS_IOCTL_BIND_CHANNEL ||