Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / gallium / drivers / nouveau / nvc0 / qmd.h
1 #ifndef __NVHW_QMD_H__
2 #define __NVHW_QMD_H__
3 #include <stdio.h>
4 #include <stdint.h>
5 #include "util/u_debug.h"
6 #include "drf.h"
7
8 #define NVQMD_ENUM_1(X,drf,v0) \
9 [drf##_##v0] = #v0
10 #define NVQMD_ENUM_2(X,drf,v0,v1) \
11 [drf##_##v0] = #v0, \
12 [drf##_##v1] = #v1
13 #define NVQMD_ENUM_3(X,drf,v0,v1,v2) \
14 [drf##_##v0] = #v0, \
15 [drf##_##v1] = #v1, \
16 [drf##_##v2] = #v2
17 #define NVQMD_ENUM_8(X,drf,v0,v1,v2,v3,v4,v5,v6,v7) \
18 [drf##_##v0] = #v0, \
19 [drf##_##v1] = #v1, \
20 [drf##_##v2] = #v2, \
21 [drf##_##v3] = #v3, \
22 [drf##_##v4] = #v4, \
23 [drf##_##v5] = #v5, \
24 [drf##_##v6] = #v6, \
25 [drf##_##v7] = #v7
26
27 #define NVQMD_ENUM_(X,_1,_2,_3,_4,_5,_6,_7,_8,_9,IMPL,...) IMPL
28 #define NVQMD_ENUM(A...) NVQMD_ENUM_(X, ##A, NVQMD_ENUM_8, NVQMD_ENUM_7, \
29 NVQMD_ENUM_6, NVQMD_ENUM_5, \
30 NVQMD_ENUM_4, NVQMD_ENUM_3, \
31 NVQMD_ENUM_2, NVQMD_ENUM_1)(X, ##A)
32
33 #define NVQMD_VAL_N(X,d,r,p,f,o) do { \
34 uint32_t val = NVVAL_MW_GET_X((p), d##_##r##_##f); \
35 debug_printf(" %-36s: "o"\n", #f, val); \
36 } while(0)
37 #define NVQMD_VAL_I(X,d,r,p,f,i,o) do { \
38 uint32_t val = NVVAL_MW_GET_X((p), d##_##r##_##f(i)); \
39 char name[80]; \
40 snprintf(name, sizeof(name), "%s(%d)", #f, i); \
41 debug_printf(" %-36s: "o"\n", name, val); \
42 } while(0)
43 #define NVQMD_VAL_(X,_1,_2,_3,_4,_5,_6,IMPL,...) IMPL
44 #define NVQMD_VAL(A...) NVQMD_VAL_(X, ##A, NVQMD_VAL_I, NVQMD_VAL_N)(X, ##A)
45
46 #define NVQMD_DEF(d,r,p,f,e...) do { \
47 static const char *ev[] = { NVQMD_ENUM(d##_##r##_##f,##e) }; \
48 uint32_t val = NVVAL_MW_GET((p), d, r, f); \
49 if (val < ARRAY_SIZE(ev) && ev[val]) \
50 debug_printf(" %-36s: %s\n", #f, ev[val]); \
51 else \
52 debug_printf(" %-36s: UNKNOWN 0x%x\n", #f, val); \
53 } while(0)
54 #define NVQMD_IDX(d,r,p,f,i,e...) do { \
55 static const char *ev[] = { NVQMD_ENUM(d##_##r##_##f,##e) }; \
56 char name[80]; \
57 snprintf(name, sizeof(name), "%s(%d)", #f, i); \
58 uint32_t val = NVVAL_MW_GET((p), d, r, f, i); \
59 if (val < ARRAY_SIZE(ev) && ev[val]) \
60 debug_printf(" %-36s: %s\n", name, ev[val]); \
61 else \
62 debug_printf(" %-36s: UNKNOWN 0x%x\n", name, val); \
63 } while(0)
64
65 void NVA0C0QmdDump_V00_06(uint32_t *);
66 void NVC0C0QmdDump_V02_01(uint32_t *);
67 void NVC3C0QmdDump_V02_02(uint32_t *);
68 #endif