Home | History | Annotate | Line # | Download | only in nvif
      1  1.6  riastrad /*	$NetBSD: ioctl.h,v 1.6 2021/12/19 10:51:56 riastradh Exp $	*/
      2  1.1  riastrad 
      3  1.5  riastrad /* SPDX-License-Identifier: MIT */
      4  1.1  riastrad #ifndef __NVIF_IOCTL_H__
      5  1.1  riastrad #define __NVIF_IOCTL_H__
      6  1.1  riastrad 
      7  1.5  riastrad #define NVIF_VERSION_LATEST                               0x0000000000000100ULL
      8  1.1  riastrad 
      9  1.1  riastrad struct nvif_ioctl_v0 {
     10  1.1  riastrad 	__u8  version;
     11  1.1  riastrad #define NVIF_IOCTL_V0_NOP                                                  0x00
     12  1.1  riastrad #define NVIF_IOCTL_V0_SCLASS                                               0x01
     13  1.1  riastrad #define NVIF_IOCTL_V0_NEW                                                  0x02
     14  1.1  riastrad #define NVIF_IOCTL_V0_DEL                                                  0x03
     15  1.1  riastrad #define NVIF_IOCTL_V0_MTHD                                                 0x04
     16  1.1  riastrad #define NVIF_IOCTL_V0_RD                                                   0x05
     17  1.1  riastrad #define NVIF_IOCTL_V0_WR                                                   0x06
     18  1.1  riastrad #define NVIF_IOCTL_V0_MAP                                                  0x07
     19  1.1  riastrad #define NVIF_IOCTL_V0_UNMAP                                                0x08
     20  1.1  riastrad #define NVIF_IOCTL_V0_NTFY_NEW                                             0x09
     21  1.1  riastrad #define NVIF_IOCTL_V0_NTFY_DEL                                             0x0a
     22  1.1  riastrad #define NVIF_IOCTL_V0_NTFY_GET                                             0x0b
     23  1.1  riastrad #define NVIF_IOCTL_V0_NTFY_PUT                                             0x0c
     24  1.4  riastrad #ifdef __NetBSD__
     25  1.4  riastrad /* XXX Kludge for NetBSD kernel-only use.  */
     26  1.4  riastrad #define NVIF_IOCTL_V0_MAP_NETBSD                                           0x0d
     27  1.4  riastrad #endif
     28  1.1  riastrad 	__u8  type;
     29  1.1  riastrad 	__u8  pad02[4];
     30  1.1  riastrad #define NVIF_IOCTL_V0_OWNER_NVIF                                           0x00
     31  1.1  riastrad #define NVIF_IOCTL_V0_OWNER_ANY                                            0xff
     32  1.1  riastrad 	__u8  owner;
     33  1.1  riastrad #define NVIF_IOCTL_V0_ROUTE_NVIF                                           0x00
     34  1.1  riastrad #define NVIF_IOCTL_V0_ROUTE_HIDDEN                                         0xff
     35  1.1  riastrad 	__u8  route;
     36  1.1  riastrad 	__u64 token;
     37  1.1  riastrad 	__u64 object;
     38  1.1  riastrad 	__u8  data[];		/* ioctl data (below) */
     39  1.1  riastrad };
     40  1.1  riastrad 
     41  1.1  riastrad struct nvif_ioctl_nop_v0 {
     42  1.1  riastrad 	__u64 version;
     43  1.1  riastrad };
     44  1.1  riastrad 
     45  1.1  riastrad struct nvif_ioctl_sclass_v0 {
     46  1.1  riastrad 	/* nvif_ioctl ... */
     47  1.1  riastrad 	__u8  version;
     48  1.1  riastrad 	__u8  count;
     49  1.1  riastrad 	__u8  pad02[6];
     50  1.1  riastrad 	struct nvif_ioctl_sclass_oclass_v0 {
     51  1.1  riastrad 		__s32 oclass;
     52  1.1  riastrad 		__s16 minver;
     53  1.1  riastrad 		__s16 maxver;
     54  1.1  riastrad 	} oclass[];
     55  1.1  riastrad };
     56  1.1  riastrad 
     57  1.1  riastrad struct nvif_ioctl_new_v0 {
     58  1.1  riastrad 	/* nvif_ioctl ... */
     59  1.1  riastrad 	__u8  version;
     60  1.1  riastrad 	__u8  pad01[6];
     61  1.1  riastrad 	__u8  route;
     62  1.1  riastrad 	__u64 token;
     63  1.1  riastrad 	__u64 object;
     64  1.1  riastrad 	__u32 handle;
     65  1.1  riastrad 	__s32 oclass;
     66  1.1  riastrad 	__u8  data[];		/* class data (class.h) */
     67  1.1  riastrad };
     68  1.1  riastrad 
     69  1.1  riastrad struct nvif_ioctl_del {
     70  1.1  riastrad };
     71  1.1  riastrad 
     72  1.1  riastrad struct nvif_ioctl_rd_v0 {
     73  1.1  riastrad 	/* nvif_ioctl ... */
     74  1.1  riastrad 	__u8  version;
     75  1.1  riastrad 	__u8  size;
     76  1.1  riastrad 	__u8  pad02[2];
     77  1.1  riastrad 	__u32 data;
     78  1.1  riastrad 	__u64 addr;
     79  1.1  riastrad };
     80  1.1  riastrad 
     81  1.1  riastrad struct nvif_ioctl_wr_v0 {
     82  1.1  riastrad 	/* nvif_ioctl ... */
     83  1.1  riastrad 	__u8  version;
     84  1.1  riastrad 	__u8  size;
     85  1.1  riastrad 	__u8  pad02[2];
     86  1.1  riastrad 	__u32 data;
     87  1.1  riastrad 	__u64 addr;
     88  1.1  riastrad };
     89  1.1  riastrad 
     90  1.1  riastrad struct nvif_ioctl_map_v0 {
     91  1.1  riastrad 	/* nvif_ioctl ... */
     92  1.1  riastrad 	__u8  version;
     93  1.5  riastrad #define NVIF_IOCTL_MAP_V0_IO                                               0x00
     94  1.5  riastrad #define NVIF_IOCTL_MAP_V0_VA                                               0x01
     95  1.5  riastrad 	__u8  type;
     96  1.5  riastrad 	__u8  pad02[6];
     97  1.1  riastrad 	__u64 handle;
     98  1.5  riastrad 	__u64 length;
     99  1.5  riastrad 	__u8  data[];
    100  1.1  riastrad };
    101  1.1  riastrad 
    102  1.3  riastrad #ifdef __NetBSD__
    103  1.3  riastrad /* XXX Kludge for NetBSD kernel-only use.  */
    104  1.3  riastrad #include <sys/bus.h>
    105  1.3  riastrad struct nvif_ioctl_map_netbsd_v0 {
    106  1.3  riastrad 	/* nvif_ioctl ... */
    107  1.3  riastrad 	__u8  version;
    108  1.6  riastrad #define NVIF_IOCTL_MAP_V0_IO                                               0x00
    109  1.6  riastrad #define NVIF_IOCTL_MAP_V0_VA                                               0x01
    110  1.6  riastrad 	__u8  type;
    111  1.6  riastrad 	__u8  pad02[6];
    112  1.3  riastrad 	bus_space_tag_t tag;
    113  1.3  riastrad 	__u64 handle;
    114  1.6  riastrad 	__u64 length;
    115  1.6  riastrad 	__u8  data[];
    116  1.3  riastrad };
    117  1.3  riastrad #endif
    118  1.3  riastrad 
    119  1.1  riastrad struct nvif_ioctl_unmap {
    120  1.1  riastrad };
    121  1.1  riastrad 
    122  1.1  riastrad struct nvif_ioctl_ntfy_new_v0 {
    123  1.1  riastrad 	/* nvif_ioctl ... */
    124  1.1  riastrad 	__u8  version;
    125  1.1  riastrad 	__u8  event;
    126  1.1  riastrad 	__u8  index;
    127  1.1  riastrad 	__u8  pad03[5];
    128  1.1  riastrad 	__u8  data[];		/* event request data (event.h) */
    129  1.1  riastrad };
    130  1.1  riastrad 
    131  1.1  riastrad struct nvif_ioctl_ntfy_del_v0 {
    132  1.1  riastrad 	/* nvif_ioctl ... */
    133  1.1  riastrad 	__u8  version;
    134  1.1  riastrad 	__u8  index;
    135  1.1  riastrad 	__u8  pad02[6];
    136  1.1  riastrad };
    137  1.1  riastrad 
    138  1.1  riastrad struct nvif_ioctl_ntfy_get_v0 {
    139  1.1  riastrad 	/* nvif_ioctl ... */
    140  1.1  riastrad 	__u8  version;
    141  1.1  riastrad 	__u8  index;
    142  1.1  riastrad 	__u8  pad02[6];
    143  1.1  riastrad };
    144  1.1  riastrad 
    145  1.1  riastrad struct nvif_ioctl_ntfy_put_v0 {
    146  1.1  riastrad 	/* nvif_ioctl ... */
    147  1.1  riastrad 	__u8  version;
    148  1.1  riastrad 	__u8  index;
    149  1.1  riastrad 	__u8  pad02[6];
    150  1.1  riastrad };
    151  1.1  riastrad 
    152  1.1  riastrad struct nvif_ioctl_mthd_v0 {
    153  1.1  riastrad 	/* nvif_ioctl ... */
    154  1.1  riastrad 	__u8  version;
    155  1.1  riastrad 	__u8  method;
    156  1.1  riastrad 	__u8  pad02[6];
    157  1.1  riastrad 	__u8  data[];		/* method data (class.h) */
    158  1.1  riastrad };
    159  1.1  riastrad 
    160  1.1  riastrad #endif
    161