NV services: Difference between revisions

No edit summary
No edit summary
Line 5: Line 5:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Cmd || Name || Format
! Cmd || Name
|-
|-
| 0 || Open ||
| 0 || Open
|-
|-
| 1 || [[#Ioctl]] ||
| 1 || [[#Ioctl]]
|-
|-
| 2 || Close ||
| 2 || Close
|-
|-
| 3 || Initialize ||
| 3 || Initialize
|-
|-
| 4 || QueryEvent ||
| 4 || QueryEvent
|-
|-
| 5 || MapSharedMem ||
| 5 || MapSharedMem
|-
|-
| 6 || ? ||
| 6 ||
|-
|-
| 7 || ? ||
| 7 ||
|-
|-
| 8 || Audio render related init? ||
| 8 || Audio render related init?
|-
|-
| 9 || ? ||
| 9 || ?
 
|}
|}


Line 32: Line 31:
Just like any standard build of the NVIDIA graphics' drivers, the nvdrv:a service operates mainly by processing requests and sending them to the kernel (not verified) through IOCtl commands.
Just like any standard build of the NVIDIA graphics' drivers, the nvdrv:a service operates mainly by processing requests and sending them to the kernel (not verified) through IOCtl commands.
Note that these commands are generated with the following primitive (see Linux kernel):
Note that these commands are generated with the following primitive (see Linux kernel):
#define _IOC(inout, group, num, len) (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))


#define _IOC(inout, group, num, len) \
    (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))


The following table contains valid commands for group 0x00.
The following table contains valid commands for group 0x00.