1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */
275445a4dSBen Skeggs #ifndef __NVIF_IF0003_H__
375445a4dSBen Skeggs #define __NVIF_IF0003_H__
475445a4dSBen Skeggs 
575445a4dSBen Skeggs struct nvif_perfdom_v0 {
675445a4dSBen Skeggs 	__u8  version;
775445a4dSBen Skeggs 	__u8  domain;
875445a4dSBen Skeggs 	__u8  mode;
975445a4dSBen Skeggs 	__u8  pad03[1];
1075445a4dSBen Skeggs 	struct {
1175445a4dSBen Skeggs 		__u8  signal[4];
1275445a4dSBen Skeggs 		__u64 source[4][8];
1375445a4dSBen Skeggs 		__u16 logic_op;
1475445a4dSBen Skeggs 	} ctr[4];
1575445a4dSBen Skeggs };
1675445a4dSBen Skeggs 
1775445a4dSBen Skeggs #define NVIF_PERFDOM_V0_INIT                                               0x00
1875445a4dSBen Skeggs #define NVIF_PERFDOM_V0_SAMPLE                                             0x01
1975445a4dSBen Skeggs #define NVIF_PERFDOM_V0_READ                                               0x02
2075445a4dSBen Skeggs 
2175445a4dSBen Skeggs struct nvif_perfdom_init {
2275445a4dSBen Skeggs };
2375445a4dSBen Skeggs 
2475445a4dSBen Skeggs struct nvif_perfdom_sample {
2575445a4dSBen Skeggs };
2675445a4dSBen Skeggs 
2775445a4dSBen Skeggs struct nvif_perfdom_read_v0 {
2875445a4dSBen Skeggs 	__u8  version;
2975445a4dSBen Skeggs 	__u8  pad01[7];
3075445a4dSBen Skeggs 	__u32 ctr[4];
3175445a4dSBen Skeggs 	__u32 clk;
3275445a4dSBen Skeggs 	__u8  pad04[4];
3375445a4dSBen Skeggs };
3475445a4dSBen Skeggs #endif
35