NV services: Difference between revisions
No edit summary  | 
				No edit summary  | 
				||
| Line 7: | Line 7: | ||
Each service is used by:  | Each service is used by:  | ||
* "nvdrv":   | * "nvdrv": Applications.  | ||
* "nvdrv:a":   | ** [[#Permissions|Permission]] mask is [3.0.0+] 0xA82B ([1.0.0-2.3.0] 0x2B).  | ||
* "nvdrv:s":   | * "nvdrv:a": Applets.  | ||
* "nvdrv:t":   | ** [[#Permissions|Permission]] mask is [3.0.0+] 0x10A9 ([1.0.0-2.3.0] 0xA9).  | ||
* "nvdrv:s": Sysmodules.  | |||
** [[#Permissions|Permission]] mask is [3.0.0+] 0x439E ([1.0.0-2.3.0] 0x39E).  | |||
* "nvdrv:t": Factory.  | |||
** [[#Permissions|Permission]] mask is 0xFFFFFFFF.  | |||
{| class="wikitable" border="1"  | {| class="wikitable" border="1"  | ||
| Line 109: | Line 113: | ||
Official user-processes starting with 3.0.0 now use this at the end of nvdrv service init with value 0x1.  | Official user-processes starting with 3.0.0 now use this at the end of nvdrv service init with value 0x1.  | ||
= Permissions =  | |||
Each nvdrv service is initialized with a bitfield that controls access to nodes and other operations.  | |||
{| class="wikitable" border="1"  | |||
!  Bits  | |||
!  Description  | |||
|-  | |||
| 0  | |||
| Can access [[#/dev/nvhost-gpu|/dev/nvhost-gpu]], [[#/dev/nvhost-ctrl-gpu|/dev/nvhost-ctrl-gpu]] and [[#/dev/nvhost-as-gpu|/dev/nvhost-as-gpu]].  | |||
|-  | |||
| 1  | |||
| Can access [[#/dev/nvhost-dbg-gpu|/dev/nvhost-dbg-gpu]] and [[#/dev/nvhost-prof-gpu|/dev/nvhost-prof-gpu]].  | |||
|-  | |||
| 2  | |||
| Can access [[#/dev/nvsched-ctrl|/dev/nvsched-ctrl]].  | |||
|-  | |||
| 3  | |||
| Can access [[#Channels|/dev/nvhost-vic]].  | |||
|-  | |||
| 4  | |||
| Can access [[#Channels|/dev/nvhost-msenc]].  | |||
|-  | |||
| 5  | |||
| Can access [[#Channels|/dev/nvhost-nvdec]].  | |||
|-  | |||
| 6  | |||
|   | |||
|-  | |||
| 7  | |||
| Can access [[#Channels|/dev/nvhost-nvjpg]].  | |||
|-  | |||
| 8  | |||
| Can access [[#Channels|/dev/nvhost-display]], [[#/dev/nvcec-ctrl|/dev/nvcec-ctrl]], [[#/dev/nvhdcp_up-ctrl|/dev/nvhdcp_up-ctrl]], [[#/dev/nvdisp-ctrl|/dev/nvdisp-ctrl]], [[#/dev/nvdisp-disp0, /dev/nvdisp-disp1|/dev/nvdisp-disp0]], [[#/dev/nvdisp-disp0, /dev/nvdisp-disp1|/dev/nvdisp-disp1]], [[#/dev/nvdcutil-disp0, /dev/nvdcutil-disp1|/dev/nvdcutil-disp0]] and [[#/dev/nvdcutil-disp0, /dev/nvdcutil-disp1|/dev/nvdcutil-disp1]].  | |||
|-  | |||
| 9  | |||
|   | |||
|-  | |||
| 10  | |||
|   | |||
|-  | |||
| 11  | |||
| Can use [[#FinishInitialize|FinishInitialize]].   | |||
|-  | |||
| 12  | |||
|   | |||
|-  | |||
| 13  | |||
|   | |||
|-  | |||
| 14  | |||
|   | |||
|-  | |||
| 15  | |||
|   | |||
|-  | |||
| 16-31  | |||
| Unused.  | |||
|}  | |||
Nodes [[#/dev/nvmap|/dev/nvmap]], [[#/dev/nvhost-ctrl|/dev/nvhost-ctrl]] and [[#/dev/nverpt-ctrl|/dev/nverpt-ctrl]] are always accessible.  | |||
= Ioctls =  | = Ioctls =  | ||