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