1#ifndef __NVKM_PERFMON_H__ 2#define __NVKM_PERFMON_H__ 3 4#include <core/device.h> 5#include <core/engine.h> 6#include <core/engctx.h> 7 8struct nouveau_perfdom; 9struct nouveau_perfctr; 10struct nouveau_perfmon { 11 struct nouveau_engine base; 12 13 struct nouveau_perfctx *context; 14 void *profile_data; 15 16 struct list_head domains; 17 u32 sequence; 18 19 /*XXX: temp for daemon backend */ 20 u32 pwr[8]; 21 u32 last; 22}; 23 24static inline struct nouveau_perfmon * 25nouveau_perfmon(void *obj) 26{ 27 return (void *)nv_device(obj)->subdev[NVDEV_ENGINE_PERFMON]; 28} 29 30extern struct nouveau_oclass *nv40_perfmon_oclass; 31extern struct nouveau_oclass *nv50_perfmon_oclass; 32extern struct nouveau_oclass *nv84_perfmon_oclass; 33extern struct nouveau_oclass *nva3_perfmon_oclass; 34extern struct nouveau_oclass nvc0_perfmon_oclass; 35extern struct nouveau_oclass nve0_perfmon_oclass; 36extern struct nouveau_oclass nvf0_perfmon_oclass; 37 38#endif 39