Lines Matching defs:rnn

39 finddom(struct rnn *rnn, uint32_t regbase)
41 if (rnndec_checkaddr(rnn->vc, rnn->dom[0], regbase, 0))
42 return rnn->dom[0];
43 return rnn->dom[1];
47 _rnn_init(struct rnn *rnn, int nocolor)
51 rnn->db = rnn_newdb();
52 rnn->vc_nocolor = rnndec_newcontext(rnn->db);
53 rnn->vc_nocolor->colors = &envy_null_colors;
55 rnn->vc = rnn->vc_nocolor;
57 rnn->vc = rnndec_newcontext(rnn->db);
58 rnn->vc->colors = &envy_def_colors;
62 struct rnn *
65 struct rnn *rnn = calloc(sizeof(*rnn), 1);
67 if (!rnn)
70 _rnn_init(rnn, nocolor);
72 return rnn;
76 init(struct rnn *rnn, char *file, char *domain)
78 /* prepare rnn stuff for lookup */
79 rnn_parsefile(rnn->db, file);
80 rnn_prepdb(rnn->db);
81 rnn->dom[0] = rnn_finddomain(rnn->db, domain);
83 rnn->dom[1] = rnn_finddomain(rnn->db, "AXXX");
85 rnn->dom[1] = rnn->dom[0];
87 if (!rnn->dom[0] && rnn->dom[1]) {
90 rnn->variant = domain;
92 rnndec_varadd(rnn->vc, "chip", domain);
93 if (rnn->vc != rnn->vc_nocolor)
94 rnndec_varadd(rnn->vc_nocolor, "chip", domain);
95 if (rnn->db->estatus)
96 errx(rnn->db->estatus, "failed to parse register database");
100 rnn_load_file(struct rnn *rnn, char *file, char *domain)
102 init(rnn, file, domain);
106 rnn_load(struct rnn *rnn, const char *gpuname)
109 init(rnn, "adreno/a2xx.xml", "A2XX");
111 init(rnn, "adreno/a3xx.xml", "A3XX");
113 init(rnn, "adreno/a4xx.xml", "A4XX");
115 init(rnn, "adreno/a5xx.xml", "A5XX");
117 init(rnn, "adreno/a6xx.xml", "A6XX");
122 rnn_regbase(struct rnn *rnn, const char *name)
124 uint32_t regbase = rnndec_decodereg(rnn->vc_nocolor, rnn->dom[0], name);
126 regbase = rnndec_decodereg(rnn->vc_nocolor, rnn->dom[1], name);
131 rnn_regname(struct rnn *rnn, uint32_t regbase, int color)
136 info = rnndec_decodeaddr(color ? rnn->vc : rnn->vc_nocolor,
137 finddom(rnn, regbase), regbase, 0);
148 rnn_reginfo(struct rnn *rnn, uint32_t regbase)
150 return rnndec_decodeaddr(rnn->vc, finddom(rnn, regbase), regbase, 0);
154 rnn_enumname(struct rnn *rnn, const char *name, uint32_t val)
156 return rnndec_decode_enum(rnn->vc, name, val);
173 rnn_regelem(struct rnn *rnn, const char *name)
175 struct rnndelem *elem = regelem(rnn->dom[0], name);
178 return regelem(rnn->dom[1], name);
195 rnn_regoff(struct rnn *rnn, uint32_t offset)
197 struct rnndelem *elem = regoff(rnn->dom[0], offset);
200 return regoff(rnn->dom[1], offset);
204 rnn_decodelem(struct rnn *rnn, struct rnntypeinfo *info, uint64_t regval,