MCPcopy Create free account
hub / github.com/coreboot/coreboot / print_bitval

Function print_bitval

util/msrtool/msrutils.c:26–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24}
25
26static void print_bitval(FILE *f, const struct msrbits *mb, const struct msr val) {
27 uint8_t i;
28 struct msr tmp, mask = MSR1(1);
29 const struct msrbitvalues *mbv = mb->bitval;
30 while (mbv->text && !msr_eq(mbv->value, val))
31 mbv++;
32 switch (mb->present) {
33 case PRESENT_BIN:
34 mask = msr_shl(mask, mb->size - 1);
35 for (i = 0; i < mb->size; i++) {
36 memcpy(&tmp, &val, sizeof(val));
37 msr_and(&tmp, mask);
38 fprintf(f, "%d", (tmp.hi || tmp.lo) ? 1 : 0);
39 mask = msr_shr(mask, 1);
40 }
41 break;
42 case PRESENT_DEC:
43 fprintf(f, "%d", val.lo);
44 break;
45 case PRESENT_OCT:
46 fprintf(f, "0%o", val.lo);
47 break;
48 case PRESENT_HEX:
49 hexprint(f, val, mb->size);
50 break;
51 case PRESENT_HEXDEC:
52 hexprint(f, val, mb->size);
53 fprintf(f, " %d", val.lo);
54 break;
55 case PRESENT_STR:
56 strprint(f, val, mb->size);
57 break;
58 }
59 if (mbv->text)
60 fprintf(f, ": %s", mbv->text);
61 fprintf(f, "\n");
62}
63
64void hexprint(FILE *f, const struct msr val, const uint8_t bits) {
65 if (bits <= 4)

Callers 2

decodemsrFunction · 0.85
diff_msrFunction · 0.85

Calls 8

msr_eqFunction · 0.85
msr_shlFunction · 0.85
msr_andFunction · 0.85
fprintfFunction · 0.85
msr_shrFunction · 0.85
hexprintFunction · 0.85
strprintFunction · 0.85
memcpyFunction · 0.50

Tested by

no test coverage detected