linux/drivers/gpu/drm/nouveau/include/nvif/ioctl.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef __NVIF_IOCTL_H__
   3#define __NVIF_IOCTL_H__
   4
   5#define NVIF_VERSION_LATEST                               0x0000000000000100ULL
   6
   7struct nvif_ioctl_v0 {
   8        __u8  version;
   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  pad02[4];
  24#define NVIF_IOCTL_V0_OWNER_NVIF                                           0x00
  25#define NVIF_IOCTL_V0_OWNER_ANY                                            0xff
  26        __u8  owner;
  27#define NVIF_IOCTL_V0_ROUTE_NVIF                                           0x00
  28#define NVIF_IOCTL_V0_ROUTE_HIDDEN                                         0xff
  29        __u8  route;
  30        __u64 token;
  31        __u64 object;
  32        __u8  data[];           /* ioctl data (below) */
  33};
  34
  35struct nvif_ioctl_nop_v0 {
  36        __u64 version;
  37};
  38
  39struct nvif_ioctl_sclass_v0 {
  40        /* nvif_ioctl ... */
  41        __u8  version;
  42        __u8  count;
  43        __u8  pad02[6];
  44        struct nvif_ioctl_sclass_oclass_v0 {
  45                __s32 oclass;
  46                __s16 minver;
  47                __s16 maxver;
  48        } oclass[];
  49};
  50
  51struct nvif_ioctl_new_v0 {
  52        /* nvif_ioctl ... */
  53        __u8  version;
  54        __u8  pad01[6];
  55        __u8  route;
  56        __u64 token;
  57        __u64 object;
  58        __u32 handle;
  59        __s32 oclass;
  60        __u8  data[];           /* class data (class.h) */
  61};
  62
  63struct nvif_ioctl_del {
  64};
  65
  66struct nvif_ioctl_rd_v0 {
  67        /* nvif_ioctl ... */
  68        __u8  version;
  69        __u8  size;
  70        __u8  pad02[2];
  71        __u32 data;
  72        __u64 addr;
  73};
  74
  75struct nvif_ioctl_wr_v0 {
  76        /* nvif_ioctl ... */
  77        __u8  version;
  78        __u8  size;
  79        __u8  pad02[2];
  80        __u32 data;
  81        __u64 addr;
  82};
  83
  84struct nvif_ioctl_map_v0 {
  85        /* nvif_ioctl ... */
  86        __u8  version;
  87#define NVIF_IOCTL_MAP_V0_IO                                               0x00
  88#define NVIF_IOCTL_MAP_V0_VA                                               0x01
  89        __u8  type;
  90        __u8  pad02[6];
  91        __u64 handle;
  92        __u64 length;
  93        __u8  data[];
  94};
  95
  96struct nvif_ioctl_unmap {
  97};
  98
  99struct nvif_ioctl_ntfy_new_v0 {
 100        /* nvif_ioctl ... */
 101        __u8  version;
 102        __u8  event;
 103        __u8  index;
 104        __u8  pad03[5];
 105        __u8  data[];           /* event request data (event.h) */
 106};
 107
 108struct nvif_ioctl_ntfy_del_v0 {
 109        /* nvif_ioctl ... */
 110        __u8  version;
 111        __u8  index;
 112        __u8  pad02[6];
 113};
 114
 115struct nvif_ioctl_ntfy_get_v0 {
 116        /* nvif_ioctl ... */
 117        __u8  version;
 118        __u8  index;
 119        __u8  pad02[6];
 120};
 121
 122struct nvif_ioctl_ntfy_put_v0 {
 123        /* nvif_ioctl ... */
 124        __u8  version;
 125        __u8  index;
 126        __u8  pad02[6];
 127};
 128
 129struct nvif_ioctl_mthd_v0 {
 130        /* nvif_ioctl ... */
 131        __u8  version;
 132        __u8  method;
 133        __u8  pad02[6];
 134        __u8  data[];           /* method data (class.h) */
 135};
 136
 137#endif
 138