NV services: Difference between revisions

minor stuff
Line 494: Line 494:


=== NVGPU_IOCTL_CHANNEL_SUBMIT_GPFIFO ===
=== NVGPU_IOCTL_CHANNEL_SUBMIT_GPFIFO ===
Submits a gpfifo object. Modified to take inline fence objects instead of a pointer.
Submits a gpfifo object. Modified to take inline entry objects instead of a pointer.


   struct fence {
   struct fence {
Line 587: Line 587:
Submits a gpfifo object (async version). Exclusive to the Switch.
Submits a gpfifo object (async version). Exclusive to the Switch.


  struct fence {
    u32 __id;
    u32 __value;
  };
   struct {
   struct {
     u64 __gpfifo;             // in (pointer to gpfifo fence structs; ignored)
     u64 __gpfifo;                     // in (pointer to gpfifo fence structs; ignored)
     u32 __num_entries;         // in (number of fence objects being submitted)
     u32 __num_entries;               // in (number of fence objects being submitted)
     u32 __flags;               // in
     u32 __flags;                     // in
     struct fence __fence_out;  // out (returned new fence object for others to wait on)
     struct fence       __fence_out;  // out (returned new fence object for others to wait on)
     struct fence __fence;     // in (fence objects; depends on __num_entries)
     struct gpfifo_entry __entries[]; // in (depends on __num_entries)
    ...
   };
   };


=== NVGPU_IOCTL_CHANNEL_ALLOC_GPFIFO_EX2 ===
=== NVGPU_IOCTL_CHANNEL_ALLOC_GPFIFO_EX2 ===
Allocates gpfifo entries with additional parameters and returns a fence. Exclusive to the Switch.
Allocates gpfifo entries with additional parameters and returns a fence. Exclusive to the Switch.
  struct fence {
    u32 __id;
    u32 __value;
  };
   
   
   struct {
   struct {