linux/drivers/gpu/drm/nouveau/include/nvif/ioctl.h
<<
>>
Prefs
   1#ifndef __NVIF_IOCTL_H__
   2#define __NVIF_IOCTL_H__
   3
   4struct nvif_ioctl_v0 {
   5        __u8  version;
   6#define NVIF_IOCTL_V0_OWNER_NVIF                                           0x00
   7#define NVIF_IOCTL_V0_OWNER_ANY                                            0xff
   8        __u8  owner;
   9#define NVIF_IOCTL_V0_NOP                                                  0x00
  10#define NVIF_IOCTL_V0_SCLASS                                               0x01
  11#define NVIF_IOCTL_V0_NEW                                                  0x02
  12#define NVIF_IOCTL_V0_DEL                                                  0x03
  13#define NVIF_IOCTL_V0_MTHD                                                 0x04
  14#define NVIF_IOCTL_V0_RD                                                   0x05
  15#define NVIF_IOCTL_V0_WR                                                   0x06
  16#define NVIF_IOCTL_V0_MAP                                                  0x07
  17#define NVIF_IOCTL_V0_UNMAP                                                0x08
  18#define NVIF_IOCTL_V0_NTFY_NEW                                             0x09
  19#define NVIF_IOCTL_V0_NTFY_DEL                                             0x0a
  20#define NVIF_IOCTL_V0_NTFY_GET                                             0x0b
  21#define NVIF_IOCTL_V0_NTFY_PUT                                             0x0c
  22        __u8  type;
  23        __u8  path_nr;
  24#define NVIF_IOCTL_V0_ROUTE_NVIF                                           0x00
  25#define NVIF_IOCTL_V0_ROUTE_HIDDEN                                         0xff
  26        __u8  pad04[3];
  27        __u8  route;
  28        __u64 token;
  29        __u32 path[8];          /* in reverse */
  30        __u8  data[];           /* ioctl data (below) */
  31};
  32
  33struct nvif_ioctl_nop {
  34};
  35
  36struct nvif_ioctl_sclass_v0 {
  37        /* nvif_ioctl ... */
  38        __u8  version;
  39        __u8  count;
  40        __u8  pad02[6];
  41        __u32 oclass[];
  42};
  43
  44struct nvif_ioctl_new_v0 {
  45        /* nvif_ioctl ... */
  46        __u8  version;
  47        __u8  pad01[6];
  48        __u8  route;
  49        __u64 token;
  50        __u32 handle;
  51/* these class numbers are made up by us, and not nvidia-assigned */
  52#define NVIF_IOCTL_NEW_V0_PERFCTR                                    0x0000ffff
  53#define NVIF_IOCTL_NEW_V0_CONTROL                                    0x0000fffe
  54        __u32 oclass;
  55        __u8  data[];           /* class data (class.h) */
  56};
  57
  58struct nvif_ioctl_del {
  59};
  60
  61struct nvif_ioctl_rd_v0 {
  62        /* nvif_ioctl ... */
  63        __u8  version;
  64        __u8  size;
  65        __u8  pad02[2];
  66        __u32 data;
  67        __u64 addr;
  68};
  69
  70struct nvif_ioctl_wr_v0 {
  71        /* nvif_ioctl ... */
  72        __u8  version;
  73        __u8  size;
  74        __u8  pad02[2];
  75        __u32 data;
  76        __u64 addr;
  77};
  78
  79struct nvif_ioctl_map_v0 {
  80        /* nvif_ioctl ... */
  81        __u8  version;
  82        __u8  pad01[3];
  83        __u32 length;
  84        __u64 handle;
  85};
  86
  87struct nvif_ioctl_unmap {
  88};
  89
  90struct nvif_ioctl_ntfy_new_v0 {
  91        /* nvif_ioctl ... */
  92        __u8  version;
  93        __u8  event;
  94        __u8  index;
  95        __u8  pad03[5];
  96        __u8  data[];           /* event request data (event.h) */
  97};
  98
  99struct nvif_ioctl_ntfy_del_v0 {
 100        /* nvif_ioctl ... */
 101        __u8  version;
 102        __u8  index;
 103        __u8  pad02[6];
 104};
 105
 106struct nvif_ioctl_ntfy_get_v0 {
 107        /* nvif_ioctl ... */
 108        __u8  version;
 109        __u8  index;
 110        __u8  pad02[6];
 111};
 112
 113struct nvif_ioctl_ntfy_put_v0 {
 114        /* nvif_ioctl ... */
 115        __u8  version;
 116        __u8  index;
 117        __u8  pad02[6];
 118};
 119
 120struct nvif_ioctl_mthd_v0 {
 121        /* nvif_ioctl ... */
 122        __u8  version;
 123        __u8  method;
 124        __u8  pad02[6];
 125        __u8  data[];           /* method data (class.h) */
 126};
 127
 128#endif
 129