Commit | Line | Data |
---|---|---|
aa4d7a4d BS |
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> | |
aa4d7a4d BS |
7 | |
8 | struct nouveau_perfdom; | |
9 | struct nouveau_perfctr; | |
10 | struct 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 | ||
24 | static inline struct nouveau_perfmon * | |
25 | nouveau_perfmon(void *obj) | |
26 | { | |
2f4a58e8 | 27 | return (void *)nouveau_engine(obj, NVDEV_ENGINE_PERFMON); |
aa4d7a4d BS |
28 | } |
29 | ||
30 | extern struct nouveau_oclass *nv40_perfmon_oclass; | |
31 | extern struct nouveau_oclass *nv50_perfmon_oclass; | |
32 | extern struct nouveau_oclass *nv84_perfmon_oclass; | |
33 | extern struct nouveau_oclass *nva3_perfmon_oclass; | |
34 | extern struct nouveau_oclass nvc0_perfmon_oclass; | |
35 | extern struct nouveau_oclass nve0_perfmon_oclass; | |
36 | extern struct nouveau_oclass nvf0_perfmon_oclass; | |
37 | ||
38 | #endif |