From 8c59608de24a7f2be535e2185d807d6fae862d60 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Sun, 10 Aug 2014 04:10:24 +1000 Subject: pm: audit and version NVIF_PERFMON class and methods The full object interfaces are about to be exposed to userspace, so we need to check for any security-related issues and version the structs to make it easier to handle any changes we may need in the future. Signed-off-by: Ben Skeggs --- nvif/class.h | 34 ++++++++++++++++++++++++++++++++++ nvif/ioctl.h | 2 ++ 2 files changed, 36 insertions(+) (limited to 'nvif') diff --git a/nvif/class.h b/nvif/class.h index 5279d0dd4..decca22ea 100644 --- a/nvif/class.h +++ b/nvif/class.h @@ -151,4 +151,38 @@ struct gf110_dma_v0 { __u8 pad03[5]; }; + +/******************************************************************************* + * perfmon + ******************************************************************************/ + +struct nvif_perfctr_v0 { + __u8 version; + __u8 pad01[1]; + __u16 logic_op; + __u8 pad04[4]; + char name[4][64]; +}; + +#define NVIF_PERFCTR_V0_QUERY 0x00 +#define NVIF_PERFCTR_V0_SAMPLE 0x01 +#define NVIF_PERFCTR_V0_READ 0x02 + +struct nvif_perfctr_query_v0 { + __u8 version; + __u8 pad01[3]; + __u32 iter; + char name[64]; +}; + +struct nvif_perfctr_sample { +}; + +struct nvif_perfctr_read_v0 { + __u8 version; + __u8 pad01[7]; + __u32 ctr; + __u32 clk; +}; + #endif diff --git a/nvif/ioctl.h b/nvif/ioctl.h index 38f24d1e9..67a56711b 100644 --- a/nvif/ioctl.h +++ b/nvif/ioctl.h @@ -48,6 +48,8 @@ struct nvif_ioctl_new_v0 { __u8 route; __u64 token; __u32 handle; +/* these class numbers are made up by us, and not nvidia-assigned */ +#define NVIF_IOCTL_NEW_V0_PERFCTR 0x0000ffff __u32 oclass; __u8 data[]; /* class data (class.h) */ }; -- cgit v1.2.1