usr/src/cmd/fm/mcdecode/mcdecode.c
69
imc_t *imc;
usr/src/cmd/fm/mcdecode/mcdecode.c
71
imc = calloc(1, sizeof (*imc));
usr/src/cmd/fm/mcdecode/mcdecode.c
72
if (imc == NULL) {
usr/src/cmd/fm/mcdecode/mcdecode.c
76
if (!imc_restore_decoder(nvl, imc)) {
usr/src/cmd/fm/mcdecode/mcdecode.c
81
return (imc);
usr/src/cmd/fm/mcdecode/mcdecode.c
87
const imc_t *imc = arg;
usr/src/cmd/fm/mcdecode/mcdecode.c
91
if (!imc_decode_pa(imc, pa, &dec)) {
usr/src/cmd/isns/isnsd/cache.c
100
imc->clone = assoc_clone;
usr/src/cmd/isns/isnsd/cache.c
101
imc->ddd = update_ddd;
usr/src/cmd/isns/isnsd/cache.c
103
imc->dump = obj_dump;
usr/src/cmd/isns/isnsd/cache.c
139
ret = rw_wrlock(&imc->l);
usr/src/cmd/isns/isnsd/cache.c
147
ret = rw_rdlock(&imc->l);
usr/src/cmd/isns/isnsd/cache.c
155
ret = rw_tryrdlock(&imc->l);
usr/src/cmd/isns/isnsd/cache.c
203
(void) rw_unlock(&imc->l);
usr/src/cmd/isns/isnsd/cache.c
294
return (imc->t[type]);
usr/src/cmd/isns/isnsd/cache.c
318
x = imc->x[0];
usr/src/cmd/isns/isnsd/cache.c
321
x = imc->x[1];
usr/src/cmd/isns/isnsd/cache.c
347
return (htab_lookup(imc->t[lcp->type],
usr/src/cmd/isns/isnsd/cache.c
372
return (htab_lookup(imc->t[lcp->type],
usr/src/cmd/isns/isnsd/cache.c
398
return (htab_add(imc->t[obj->type], obj, flag, uid_p, update_p));
usr/src/cmd/isns/isnsd/cache.c
416
return (htab_remove(imc->t[lcp->type],
usr/src/cmd/isns/isnsd/cache.c
435
(void) htab_dump(imc->t[type]);
usr/src/cmd/isns/isnsd/cache.c
54
static cache_t *imc;
usr/src/cmd/isns/isnsd/cache.c
77
imc = (cache_t *)calloc(sizeof (cache_t), 1);
usr/src/cmd/isns/isnsd/cache.c
78
if (imc == NULL ||
usr/src/cmd/isns/isnsd/cache.c
79
obj_tab_init(imc) != 0 ||
usr/src/cmd/isns/isnsd/cache.c
80
dd_matrix_init(imc) != 0) {
usr/src/cmd/isns/isnsd/cache.c
88
(void) rwlock_init(&imc->l, USYNC_PROCESS, NULL);
usr/src/cmd/isns/isnsd/cache.c
93
imc->get_hval = obj_hval;
usr/src/cmd/isns/isnsd/cache.c
94
imc->get_uid = get_obj_uid;
usr/src/cmd/isns/isnsd/cache.c
95
imc->set_uid = set_obj_uid;
usr/src/cmd/isns/isnsd/cache.c
96
imc->timestamp = get_timestamp;
usr/src/cmd/isns/isnsd/cache.c
97
imc->add_hook = add_object;
usr/src/cmd/isns/isnsd/cache.c
98
imc->replace_hook = replace_object;
usr/src/cmd/isns/isnsd/cache.c
99
imc->cmp = obj_cmp;
usr/src/common/mc/imc/imc_decode.c
101
sad = &imc->imc_sockets[0].isock_sad;
usr/src/common/mc/imc/imc_decode.c
180
imc_decode_sad(const imc_t *imc, imc_decode_state_t *dec)
usr/src/common/mc/imc/imc_decode.c
186
const imc_socket_t *socket = &imc->imc_sockets[0];
usr/src/common/mc/imc/imc_decode.c
233
if (imc->imc_gen >= IMC_GEN_SKYLAKE &&
usr/src/common/mc/imc/imc_decode.c
247
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/common/mc/imc/imc_decode.c
248
if (imc->imc_sockets[i].isock_valid ==
usr/src/common/mc/imc/imc_decode.c
250
imc->imc_sockets[i].isock_nodeid == nodeid) {
usr/src/common/mc/imc/imc_decode.c
251
socket = &imc->imc_sockets[i];
usr/src/common/mc/imc/imc_decode.c
252
sad = &imc->imc_sockets[i].isock_sad;
usr/src/common/mc/imc/imc_decode.c
314
switch (imc->imc_gen) {
usr/src/common/mc/imc/imc_decode.c
370
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/common/mc/imc/imc_decode.c
371
if (imc->imc_sockets[i].isock_nodeid == nodeid) {
usr/src/common/mc/imc/imc_decode.c
372
dec->ids_socket = &imc->imc_sockets[i];
usr/src/common/mc/imc/imc_decode.c
423
imc_decode_tad_channel(const imc_t *imc, imc_decode_state_t *dec)
usr/src/common/mc/imc/imc_decode.c
485
imc_decode_tad(const imc_t *imc, imc_decode_state_t *dec)
usr/src/common/mc/imc/imc_decode.c
530
switch (imc->imc_gen) {
usr/src/common/mc/imc/imc_decode.c
535
if (!imc_decode_tad_channel(imc, dec)) {
usr/src/common/mc/imc/imc_decode.c
610
imc_decode_rir(const imc_t *imc, imc_decode_state_t *dec)
usr/src/common/mc/imc/imc_decode.c
716
imc_decode_pa(const imc_t *imc, uint64_t pa, imc_decode_state_t *dec)
usr/src/common/mc/imc/imc_decode.c
726
if (imc->imc_nsockets < 1 ||
usr/src/common/mc/imc/imc_decode.c
727
imc->imc_sockets[0].isock_valid != IMC_SOCKET_V_VALID) {
usr/src/common/mc/imc/imc_decode.c
739
if (imc_decode_addr_resvd(imc, dec)) {
usr/src/common/mc/imc/imc_decode.c
748
if (!imc_decode_sad(imc, dec)) {
usr/src/common/mc/imc/imc_decode.c
757
if (!imc_decode_tad(imc, dec)) {
usr/src/common/mc/imc/imc_decode.c
76
imc_decode_addr_resvd(const imc_t *imc, imc_decode_state_t *dec)
usr/src/common/mc/imc/imc_decode.c
765
if (!imc_decode_rir(imc, dec)) {
usr/src/common/mc/imc/imc_dump.c
253
imc_dump_decoder(imc_t *imc)
usr/src/common/mc/imc/imc_dump.c
264
fnvlist_add_uint32(invl, "imc_gen", imc->imc_gen);
usr/src/common/mc/imc/imc_dump.c
266
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/common/mc/imc/imc_dump.c
267
sockets[i] = imc_dump_socket(&imc->imc_sockets[i]);
usr/src/common/mc/imc/imc_dump.c
272
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/common/mc/imc/imc_dump.c
539
imc_restore_decoder(nvlist_t *nvl, imc_t *imc)
usr/src/common/mc/imc/imc_dump.c
546
bzero(imc, sizeof (imc_t));
usr/src/common/mc/imc/imc_dump.c
556
if (nvlist_lookup_uint32(invl, "imc_gen", &imc->imc_gen) != 0 ||
usr/src/common/mc/imc/imc_dump.c
558
&imc->imc_nsockets) != 0 ||
usr/src/common/mc/imc/imc_dump.c
559
imc->imc_nsockets > IMC_MAX_SOCKETS) {
usr/src/common/mc/imc/imc_dump.c
563
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/common/mc/imc/imc_dump.c
564
if (!imc_restore_socket(socks[i], &imc->imc_sockets[i]))
usr/src/uts/intel/io/imc/imc.c
1003
imc_decode_mtr(imc_t *imc, imc_mc_t *icn, imc_dimm_t *dimm, uint32_t mtr)
usr/src/uts/intel/io/imc/imc.c
1010
if (imc->imc_gen < IMC_GEN_SKYLAKE &&
usr/src/uts/intel/io/imc/imc.c
1014
} else if (imc->imc_gen >= IMC_GEN_SKYLAKE &&
usr/src/uts/intel/io/imc/imc.c
1036
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
1093
if (imc->imc_gen > IMC_GEN_SANDY) {
usr/src/uts/intel/io/imc/imc.c
1096
if (imc->imc_gen >= IMC_GEN_BROADWELL) {
usr/src/uts/intel/io/imc/imc.c
1121
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
1146
if (imc->imc_gen >= IMC_GEN_HASWELL) {
usr/src/uts/intel/io/imc/imc.c
1173
imc_fill_dimms(imc_t *imc, imc_mc_t *icn, imc_channel_t *chan)
usr/src/uts/intel/io/imc/imc.c
1181
chan->ich_ndimms = imc->imc_gen_data->igd_max_dimms;
usr/src/uts/intel/io/imc/imc.c
1182
for (i = 0; i < imc->imc_gen_data->igd_max_dimms; i++) {
usr/src/uts/intel/io/imc/imc.c
1188
imc->imc_gen_data->igd_mtr_offsets[i]);
usr/src/uts/intel/io/imc/imc.c
1199
imc_decode_mtr(imc, icn, dimm, mtr);
usr/src/uts/intel/io/imc/imc.c
1204
imc_fill_controller(imc_t *imc, imc_mc_t *icn)
usr/src/uts/intel/io/imc/imc.c
1209
imc->imc_gen_data->igd_mcmtr_offset);
usr/src/uts/intel/io/imc/imc.c
1216
if (imc->imc_gen < IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1228
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
1249
if (imc->imc_gen >= IMC_GEN_SKYLAKE && icn->icn_m2m != NULL) {
usr/src/uts/intel/io/imc/imc.c
1251
imc->imc_gen_data->igd_topo_offset);
usr/src/uts/intel/io/imc/imc.c
1262
imc_fill_data(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
1266
for (csock = 0; csock < imc->imc_nsockets; csock++) {
usr/src/uts/intel/io/imc/imc.c
1267
imc_socket_t *sock = &imc->imc_sockets[csock];
usr/src/uts/intel/io/imc/imc.c
1272
if (!imc_fill_controller(imc, icn))
usr/src/uts/intel/io/imc/imc.c
1276
imc_fill_dimms(imc, icn,
usr/src/uts/intel/io/imc/imc.c
1284
imc_nvl_create_dimm(imc_t *imc, imc_dimm_t *dimm)
usr/src/uts/intel/io/imc/imc.c
1301
if (imc->imc_gen > IMC_GEN_SANDY) {
usr/src/uts/intel/io/imc/imc.c
1314
if (imc->imc_gen >= IMC_GEN_HASWELL) {
usr/src/uts/intel/io/imc/imc.c
1329
imc_nvl_create_channel(imc_t *imc, imc_channel_t *chan)
usr/src/uts/intel/io/imc/imc.c
1337
imc->imc_gen_data->igd_max_dimms);
usr/src/uts/intel/io/imc/imc.c
1338
for (i = 0; i < imc->imc_gen_data->igd_max_dimms; i++) {
usr/src/uts/intel/io/imc/imc.c
1339
dimms[i] = imc_nvl_create_dimm(imc, &chan->ich_dimms[i]);
usr/src/uts/intel/io/imc/imc.c
1353
imc_nvl_create_mc(imc_t *imc, imc_mc_t *icn)
usr/src/uts/intel/io/imc/imc.c
1381
channels[i] = imc_nvl_create_channel(imc,
usr/src/uts/intel/io/imc/imc.c
1423
imc_decoder_pack(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
1428
if (imc->imc_decoder_buf != NULL)
usr/src/uts/intel/io/imc/imc.c
1431
if (imc->imc_decoder_dump == NULL) {
usr/src/uts/intel/io/imc/imc.c
1432
imc->imc_decoder_dump = imc_dump_decoder(imc);
usr/src/uts/intel/io/imc/imc.c
1435
if (nvlist_pack(imc->imc_decoder_dump, &buf, &len, NV_ENCODE_XDR,
usr/src/uts/intel/io/imc/imc.c
1440
imc->imc_decoder_buf = buf;
usr/src/uts/intel/io/imc/imc.c
1441
imc->imc_decoder_len = len;
usr/src/uts/intel/io/imc/imc.c
1445
imc_nvl_create(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
1448
for (csock = 0; csock < imc->imc_nsockets; csock++) {
usr/src/uts/intel/io/imc/imc.c
1452
imc_socket_t *sock = &imc->imc_sockets[csock];
usr/src/uts/intel/io/imc/imc.c
1461
mcs[i] = imc_nvl_create_mc(imc, &sock->isock_imcs[i]);
usr/src/uts/intel/io/imc/imc.c
1482
imc_sad_read_tohm(imc_t *imc, imc_sad_t *sad)
usr/src/uts/intel/io/imc/imc.c
1487
imc->imc_gen_data->igd_tolm_offset);
usr/src/uts/intel/io/imc/imc.c
1489
imc->imc_gen_data->igd_tohm_low_offset);
usr/src/uts/intel/io/imc/imc.c
1490
if (imc->imc_gen_data->igd_tohm_hi_offset != 0) {
usr/src/uts/intel/io/imc/imc.c
1492
imc->imc_gen_data->igd_tohm_hi_offset);
usr/src/uts/intel/io/imc/imc.c
1503
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
1525
dev_err(imc->imc_dip, CE_PANIC, "imc driver programmer error: "
usr/src/uts/intel/io/imc/imc.c
1526
"set to unknown generation: %u", imc->imc_gen);
usr/src/uts/intel/io/imc/imc.c
1532
imc_sad_fill_rule(imc_t *imc, imc_sad_t *sad, imc_sad_rule_t *rule,
usr/src/uts/intel/io/imc/imc.c
1541
if (imc->imc_gen < IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1567
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1581
if (imc->imc_gen < IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1595
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1606
if (imc->imc_gen == IMC_GEN_SANDY)
usr/src/uts/intel/io/imc/imc.c
1609
if (imc->imc_gen >= IMC_GEN_IVY && imc->imc_gen < IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1647
imc_sad_fill_rule_interleave(imc_t *imc, imc_sad_rule_t *rule, uint32_t raw)
usr/src/uts/intel/io/imc/imc.c
1664
if (imc->imc_gen > IMC_GEN_SANDY) {
usr/src/uts/intel/io/imc/imc.c
1687
imc_sad_read_dram_rules(imc_t *imc, imc_sad_t *sad)
usr/src/uts/intel/io/imc/imc.c
1692
sad->isad_nrules = imc->imc_gen_data->igd_sad_ndram_rules;
usr/src/uts/intel/io/imc/imc.c
1693
for (i = 0, off = imc->imc_gen_data->igd_sad_dram_offset;
usr/src/uts/intel/io/imc/imc.c
1707
imc_sad_fill_rule(imc, sad, rule, dram);
usr/src/uts/intel/io/imc/imc.c
1708
imc_sad_fill_rule_interleave(imc, rule, interleave);
usr/src/uts/intel/io/imc/imc.c
1713
imc_sad_decode_mcroute(imc_t *imc, imc_sad_t *sad)
usr/src/uts/intel/io/imc/imc.c
1718
if (imc->imc_gen < IMC_GEN_SKYLAKE)
usr/src/uts/intel/io/imc/imc.c
1748
imc_decoder_init_sad(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
1752
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
1753
imc_sad_read_tohm(imc, &imc->imc_sockets[i].isock_sad);
usr/src/uts/intel/io/imc/imc.c
1754
imc_sad_read_dram_rules(imc, &imc->imc_sockets[i].isock_sad);
usr/src/uts/intel/io/imc/imc.c
1755
imc_sad_decode_mcroute(imc, &imc->imc_sockets[i].isock_sad);
usr/src/uts/intel/io/imc/imc.c
1760
imc_tad_fill_rule(imc_t *imc, imc_tad_t *tad, imc_tad_rule_t *prev,
usr/src/uts/intel/io/imc/imc.c
1793
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1812
imc_tad_fill_skx(imc_t *imc, imc_tad_t *tad, imc_tad_rule_t *rule,
usr/src/uts/intel/io/imc/imc.c
1858
imc_tad_read_rules(imc_t *imc, imc_tad_t *tad)
usr/src/uts/intel/io/imc/imc.c
1864
tad->itad_nrules = imc->imc_gen_data->igd_tad_nrules;
usr/src/uts/intel/io/imc/imc.c
1865
for (i = 0, baseoff = imc->imc_gen_data->igd_tad_rule_offset,
usr/src/uts/intel/io/imc/imc.c
1876
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
1888
imc_tad_fill_rule(imc, tad, prev, rule, val);
usr/src/uts/intel/io/imc/imc.c
1890
if (imc->imc_gen < IMC_GEN_SKYLAKE)
usr/src/uts/intel/io/imc/imc.c
1899
imc_tad_fill_skx(imc, tad, rule, val);
usr/src/uts/intel/io/imc/imc.c
1907
imc_tad_read_features(imc_t *imc, imc_tad_t *tad, imc_mc_t *mc)
usr/src/uts/intel/io/imc/imc.c
1919
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
1925
imc->imc_gen_data->igd_tad_sysdef);
usr/src/uts/intel/io/imc/imc.c
1935
imc->imc_gen_data->igd_mc_mirror);
usr/src/uts/intel/io/imc/imc.c
1954
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
1959
imc->imc_gen_data->igd_tad_sysdef2);
usr/src/uts/intel/io/imc/imc.c
1980
imc_tad_read_interleave(imc_t *imc, imc_channel_t *chan)
usr/src/uts/intel/io/imc/imc.c
1985
chan->ich_ntad_offsets = imc->imc_gen_data->igd_tad_nrules;
usr/src/uts/intel/io/imc/imc.c
1986
for (i = 0, off = imc->imc_gen_data->igd_tad_chan_offset;
usr/src/uts/intel/io/imc/imc.c
1998
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
2010
imc_decoder_init_tad(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
2014
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
2017
for (j = 0; j < imc->imc_sockets[i].isock_ntad; j++) {
usr/src/uts/intel/io/imc/imc.c
2018
imc_tad_read_features(imc,
usr/src/uts/intel/io/imc/imc.c
2019
&imc->imc_sockets[i].isock_tad[j],
usr/src/uts/intel/io/imc/imc.c
2020
&imc->imc_sockets[i].isock_imcs[j]);
usr/src/uts/intel/io/imc/imc.c
2021
imc_tad_read_rules(imc,
usr/src/uts/intel/io/imc/imc.c
2022
&imc->imc_sockets[i].isock_tad[j]);
usr/src/uts/intel/io/imc/imc.c
2026
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
2028
imc_socket_t *sock = &imc->imc_sockets[i];
usr/src/uts/intel/io/imc/imc.c
2030
for (j = 0; j < imc->imc_sockets[i].isock_nimc; j++) {
usr/src/uts/intel/io/imc/imc.c
2036
imc_tad_read_interleave(imc, chan);
usr/src/uts/intel/io/imc/imc.c
2043
imc_rir_read_ileave_offsets(imc_t *imc, imc_channel_t *chan,
usr/src/uts/intel/io/imc/imc.c
2057
off = imc->imc_gen_data->igd_rir_ileave_offset +
usr/src/uts/intel/io/imc/imc.c
2058
(rirno * imc->imc_gen_data->igd_rir_nileaves *
usr/src/uts/intel/io/imc/imc.c
2062
off = imc->imc_gen_data->igd_rir_ileave_offset +
usr/src/uts/intel/io/imc/imc.c
2064
incr = imc->imc_gen_data->igd_rir_nileaves * sizeof (uint32_t);
usr/src/uts/intel/io/imc/imc.c
2077
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
2085
if (imc->imc_gen >= IMC_GEN_HASWELL) {
usr/src/uts/intel/io/imc/imc.c
2095
imc_rir_read_wayness(imc_t *imc, imc_channel_t *chan)
usr/src/uts/intel/io/imc/imc.c
2100
chan->ich_nrankileaves = imc->imc_gen_data->igd_rir_nways;
usr/src/uts/intel/io/imc/imc.c
2101
for (i = 0, off = imc->imc_gen_data->igd_rir_way_offset;
usr/src/uts/intel/io/imc/imc.c
2117
if (imc->imc_gen >= IMC_GEN_HASWELL) {
usr/src/uts/intel/io/imc/imc.c
2126
ent->irle_nentries = imc->imc_gen_data->igd_rir_nileaves;
usr/src/uts/intel/io/imc/imc.c
2127
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
2128
imc_rir_read_ileave_offsets(imc, chan, ent, i, B_FALSE);
usr/src/uts/intel/io/imc/imc.c
2130
imc_rir_read_ileave_offsets(imc, chan, ent, i, B_TRUE);
usr/src/uts/intel/io/imc/imc.c
2136
imc_decoder_init_rir(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
2140
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
2142
imc_socket_t *sock = &imc->imc_sockets[i];
usr/src/uts/intel/io/imc/imc.c
2144
for (j = 0; j < imc->imc_sockets[i].isock_nimc; j++) {
usr/src/uts/intel/io/imc/imc.c
2150
imc_rir_read_wayness(imc, chan);
usr/src/uts/intel/io/imc/imc.c
2160
imc_t *imc = arg;
usr/src/uts/intel/io/imc/imc.c
2165
if (!imc_decode_pa(imc, pa, &dec)) {
usr/src/uts/intel/io/imc/imc.c
2180
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
2181
if (imc->imc_spointers[i] == dec.ids_socket)
usr/src/uts/intel/io/imc/imc.c
2184
if (i == imc->imc_nsockets) {
usr/src/uts/intel/io/imc/imc.c
2219
imc_t *imc = arg;
usr/src/uts/intel/io/imc/imc.c
2222
imc_set_gen_data(imc);
usr/src/uts/intel/io/imc/imc.c
2228
if (!imc_map_stubs(imc)) {
usr/src/uts/intel/io/imc/imc.c
2232
if (!imc_validate_stubs(imc)) {
usr/src/uts/intel/io/imc/imc.c
2233
imc->imc_flags |= IMC_F_VALIDATE_FAILED;
usr/src/uts/intel/io/imc/imc.c
2237
imc_fixup_stubs(imc);
usr/src/uts/intel/io/imc/imc.c
2238
imc_map_sockets(imc);
usr/src/uts/intel/io/imc/imc.c
2240
if (!imc_create_minors(imc)) {
usr/src/uts/intel/io/imc/imc.c
2244
imc_fill_data(imc);
usr/src/uts/intel/io/imc/imc.c
2245
imc_nvl_create(imc);
usr/src/uts/intel/io/imc/imc.c
2251
imc_decoder_init_sad(imc);
usr/src/uts/intel/io/imc/imc.c
2252
imc_decoder_init_tad(imc);
usr/src/uts/intel/io/imc/imc.c
2253
imc_decoder_init_rir(imc);
usr/src/uts/intel/io/imc/imc.c
2260
if ((err = cmi_mc_register_global(&imc_mc_ops, imc)) != CMI_SUCCESS) {
usr/src/uts/intel/io/imc/imc.c
2261
imc->imc_flags |= IMC_F_MCREG_FAILED;
usr/src/uts/intel/io/imc/imc.c
2262
dev_err(imc->imc_dip, CE_WARN, "failed to register memory "
usr/src/uts/intel/io/imc/imc.c
2267
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2268
imc->imc_flags &= IMC_F_ATTACH_DISPATCHED;
usr/src/uts/intel/io/imc/imc.c
2269
imc->imc_flags |= IMC_F_ATTACH_COMPLETE;
usr/src/uts/intel/io/imc/imc.c
2270
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2297
imc_t *imc = arg;
usr/src/uts/intel/io/imc/imc.c
2359
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2360
imc->imc_nscanned++;
usr/src/uts/intel/io/imc/imc.c
2361
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2372
imc_t *imc = arg;
usr/src/uts/intel/io/imc/imc.c
2378
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2379
imc->imc_nscanned = 0;
usr/src/uts/intel/io/imc/imc.c
2380
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2382
ddi_walk_devs(ddi_root_node(), imc_stub_scan_cb, imc);
usr/src/uts/intel/io/imc/imc.c
2384
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2385
imc->imc_flags |= IMC_F_SCAN_COMPLETE;
usr/src/uts/intel/io/imc/imc.c
2386
imc->imc_flags &= ~IMC_F_SCAN_DISPATCHED;
usr/src/uts/intel/io/imc/imc.c
2393
if (imc->imc_nscanned == 0) {
usr/src/uts/intel/io/imc/imc.c
2394
imc->imc_flags |= IMC_F_UNSUP_PLATFORM;
usr/src/uts/intel/io/imc/imc.c
2395
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2399
if (avl_numnodes(&imc->imc_stubs) == imc->imc_nscanned) {
usr/src/uts/intel/io/imc/imc.c
2400
imc->imc_flags |= IMC_F_ATTACH_DISPATCHED;
usr/src/uts/intel/io/imc/imc.c
2404
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2407
(void) ddi_taskq_dispatch(imc->imc_taskq, imc_attach_complete,
usr/src/uts/intel/io/imc/imc.c
2408
imc, DDI_SLEEP);
usr/src/uts/intel/io/imc/imc.c
2419
imc_t *imc = imc_data;
usr/src/uts/intel/io/imc/imc.c
2421
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2429
if ((imc->imc_flags & IMC_F_UNSUP_PLATFORM) == 0 &&
usr/src/uts/intel/io/imc/imc.c
2431
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2435
for (stub = avl_first(&imc->imc_stubs); stub != NULL;
usr/src/uts/intel/io/imc/imc.c
2436
stub = AVL_NEXT(&imc->imc_stubs, stub)) {
usr/src/uts/intel/io/imc/imc.c
2447
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2452
avl_remove(&imc->imc_stubs, stub);
usr/src/uts/intel/io/imc/imc.c
2454
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2468
imc_t *imc = imc_data;
usr/src/uts/intel/io/imc/imc.c
2536
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2537
if (imc->imc_gen != IMC_GEN_UNKNOWN && imc->imc_gen !=
usr/src/uts/intel/io/imc/imc.c
2539
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2543
"generation (%u)", vid, did, table->imcs_gen, imc->imc_gen);
usr/src/uts/intel/io/imc/imc.c
2546
imc->imc_gen = table->imcs_gen;
usr/src/uts/intel/io/imc/imc.c
2548
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2568
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2569
if ((lookup = avl_find(&imc->imc_stubs, stub, &idx)) != NULL) {
usr/src/uts/intel/io/imc/imc.c
2572
ddi_node_name(imc->imc_dip), vid, did,
usr/src/uts/intel/io/imc/imc.c
2576
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2582
avl_insert(&imc->imc_stubs, stub, idx);
usr/src/uts/intel/io/imc/imc.c
2584
if ((imc->imc_flags & IMC_F_ALL_FLAGS) == IMC_F_SCAN_COMPLETE &&
usr/src/uts/intel/io/imc/imc.c
2585
avl_numnodes(&imc->imc_stubs) == imc->imc_nscanned) {
usr/src/uts/intel/io/imc/imc.c
2586
imc->imc_flags |= IMC_F_ATTACH_DISPATCHED;
usr/src/uts/intel/io/imc/imc.c
2589
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2592
(void) ddi_taskq_dispatch(imc->imc_taskq, imc_attach_complete,
usr/src/uts/intel/io/imc/imc.c
2593
imc, DDI_SLEEP);
usr/src/uts/intel/io/imc/imc.c
2602
imc_t *imc = imc_data;
usr/src/uts/intel/io/imc/imc.c
2610
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2612
if ((imc->imc_flags & IMC_F_UNSUP_PLATFORM) != 0) {
usr/src/uts/intel/io/imc/imc.c
2613
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2621
if ((imc->imc_flags & IMC_F_ATTACH_COMPLETE) == 0) {
usr/src/uts/intel/io/imc/imc.c
2622
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2630
if (getminor(*devp) >= imc->imc_nsockets) {
usr/src/uts/intel/io/imc/imc.c
2631
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2638
if (imc->imc_spointers[getminor(*devp)] == NULL) {
usr/src/uts/intel/io/imc/imc.c
2639
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2643
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2649
imc_ioctl_decode(imc_t *imc, mc_encode_ioc_t *encode)
usr/src/uts/intel/io/imc/imc.c
2655
if (!imc_decode_pa(imc, encode->mcei_pa, &dec)) {
usr/src/uts/intel/io/imc/imc.c
2664
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
2665
if (imc->imc_spointers[i] == dec.ids_socket)
usr/src/uts/intel/io/imc/imc.c
2695
imc_t *imc = imc_data;
usr/src/uts/intel/io/imc/imc.c
2698
mutex_enter(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
2700
if (m >= imc->imc_nsockets) {
usr/src/uts/intel/io/imc/imc.c
2704
sock = imc->imc_spointers[m];
usr/src/uts/intel/io/imc/imc.c
2749
imc_decoder_pack(imc);
usr/src/uts/intel/io/imc/imc.c
2750
if (imc->imc_decoder_buf == NULL) {
usr/src/uts/intel/io/imc/imc.c
2755
info.mcs_size = imc->imc_decoder_len;
usr/src/uts/intel/io/imc/imc.c
2756
info.mcs_gen = imc->imc_spointers[0]->isock_gen;
usr/src/uts/intel/io/imc/imc.c
2766
imc_decoder_pack(imc);
usr/src/uts/intel/io/imc/imc.c
2767
if (imc->imc_decoder_buf == NULL) {
usr/src/uts/intel/io/imc/imc.c
2772
if (ddi_copyout(imc->imc_decoder_buf, (void *)arg,
usr/src/uts/intel/io/imc/imc.c
2773
imc->imc_decoder_len, mode) != 0) {
usr/src/uts/intel/io/imc/imc.c
2793
imc_ioctl_decode(imc, &encode);
usr/src/uts/intel/io/imc/imc.c
2808
mutex_exit(&imc->imc_lock);
usr/src/uts/intel/io/imc/imc.c
582
imc_set_gen_data(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
584
switch (imc->imc_gen) {
usr/src/uts/intel/io/imc/imc.c
586
imc->imc_gen_data = &imc_gen_data_snb;
usr/src/uts/intel/io/imc/imc.c
589
imc->imc_gen_data = &imc_gen_data_ivb;
usr/src/uts/intel/io/imc/imc.c
593
imc->imc_gen_data = &imc_gen_data_has_brd;
usr/src/uts/intel/io/imc/imc.c
596
imc->imc_gen_data = &imc_gen_data_skx;
usr/src/uts/intel/io/imc/imc.c
599
dev_err(imc->imc_dip, CE_PANIC, "imc driver programmer error: "
usr/src/uts/intel/io/imc/imc.c
600
"set to unknown generation: %u", imc->imc_gen);
usr/src/uts/intel/io/imc/imc.c
613
imc_create_minors(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
617
ddi_set_name_addr(imc->imc_dip, "1");
usr/src/uts/intel/io/imc/imc.c
618
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
626
if (ddi_create_minor_node(imc->imc_dip, buf, S_IFCHR, i,
usr/src/uts/intel/io/imc/imc.c
628
dev_err(imc->imc_dip, CE_WARN, "failed to create "
usr/src/uts/intel/io/imc/imc.c
636
ddi_remove_minor_node(imc->imc_dip, NULL);
usr/src/uts/intel/io/imc/imc.c
647
imc_mcroute_check(imc_t *imc, imc_sad_t *sad, imc_stub_t *stub)
usr/src/uts/intel/io/imc/imc.c
669
dev_err(imc->imc_dip, CE_WARN, "SAD MC_ROUTE_TABLE mismatch "
usr/src/uts/intel/io/imc/imc.c
685
imc_map_buses(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
695
for (nsock = 0, stub = avl_first(&imc->imc_stubs); stub != NULL;
usr/src/uts/intel/io/imc/imc.c
696
stub = AVL_NEXT(&imc->imc_stubs, stub)) {
usr/src/uts/intel/io/imc/imc.c
704
imc->imc_gen_data->igd_ubox_cpubusno_offset);
usr/src/uts/intel/io/imc/imc.c
706
dev_err(imc->imc_dip, CE_WARN, "failed to read "
usr/src/uts/intel/io/imc/imc.c
711
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
712
imc->imc_sockets[nsock].isock_nbus = 3;
usr/src/uts/intel/io/imc/imc.c
713
imc->imc_sockets[nsock].isock_bus[0] =
usr/src/uts/intel/io/imc/imc.c
715
imc->imc_sockets[nsock].isock_bus[1] =
usr/src/uts/intel/io/imc/imc.c
717
imc->imc_sockets[nsock].isock_bus[2] =
usr/src/uts/intel/io/imc/imc.c
720
imc->imc_sockets[nsock].isock_bus[0] =
usr/src/uts/intel/io/imc/imc.c
722
imc->imc_sockets[nsock].isock_bus[1] =
usr/src/uts/intel/io/imc/imc.c
724
imc->imc_sockets[nsock].isock_nbus = 2;
usr/src/uts/intel/io/imc/imc.c
728
imc->imc_nsockets = nsock;
usr/src/uts/intel/io/imc/imc.c
738
imc_map_find_socket(imc_t *imc, imc_stub_t *stub)
usr/src/uts/intel/io/imc/imc.c
742
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
745
for (bus = 0; bus < imc->imc_sockets[i].isock_nbus; bus++) {
usr/src/uts/intel/io/imc/imc.c
746
if (imc->imc_sockets[i].isock_bus[bus] ==
usr/src/uts/intel/io/imc/imc.c
748
return (&imc->imc_sockets[i]);
usr/src/uts/intel/io/imc/imc.c
757
imc_map_stubs(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
761
if (!imc_map_buses(imc)) {
usr/src/uts/intel/io/imc/imc.c
765
stub = avl_first(&imc->imc_stubs);
usr/src/uts/intel/io/imc/imc.c
766
for (stub = avl_first(&imc->imc_stubs); stub != NULL;
usr/src/uts/intel/io/imc/imc.c
767
stub = AVL_NEXT(&imc->imc_stubs, stub)) {
usr/src/uts/intel/io/imc/imc.c
768
imc_socket_t *sock = imc_map_find_socket(imc, stub);
usr/src/uts/intel/io/imc/imc.c
771
dev_err(imc->imc_dip, CE_WARN, "found stub type %u "
usr/src/uts/intel/io/imc/imc.c
776
stub->istub_func, imc->imc_nsockets);
usr/src/uts/intel/io/imc/imc.c
799
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
818
if (imc->imc_gen >= IMC_GEN_SKYLAKE) {
usr/src/uts/intel/io/imc/imc.c
876
if (imc->imc_gvtd_misc == NULL) {
usr/src/uts/intel/io/imc/imc.c
877
imc->imc_gvtd_misc = stub;
usr/src/uts/intel/io/imc/imc.c
881
ASSERT3U(imc->imc_gen, >=, IMC_GEN_SKYLAKE);
usr/src/uts/intel/io/imc/imc.c
882
imc_mcroute_check(imc, &sock->isock_sad, stub);
usr/src/uts/intel/io/imc/imc.c
902
dev_err(imc->imc_dip, CE_WARN, "Encountered unknown "
usr/src/uts/intel/io/imc/imc.c
921
imc_fixup_stubs(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
923
if (imc->imc_gen >= IMC_GEN_HASWELL) {
usr/src/uts/intel/io/imc/imc.c
926
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
927
ASSERT3P(imc->imc_sockets[i].isock_sad.isad_tolh,
usr/src/uts/intel/io/imc/imc.c
929
imc->imc_sockets[i].isock_sad.isad_tolh =
usr/src/uts/intel/io/imc/imc.c
930
imc->imc_gvtd_misc;
usr/src/uts/intel/io/imc/imc.c
945
imc_validate_stubs(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
947
for (uint_t sock = 0; sock < imc->imc_nsockets; sock++) {
usr/src/uts/intel/io/imc/imc.c
948
imc_socket_t *socket = &imc->imc_sockets[sock];
usr/src/uts/intel/io/imc/imc.c
956
dev_err(imc->imc_dip, CE_WARN,
usr/src/uts/intel/io/imc/imc.c
977
imc_map_sockets(imc_t *imc)
usr/src/uts/intel/io/imc/imc.c
981
for (i = 0; i < imc->imc_nsockets; i++) {
usr/src/uts/intel/io/imc/imc.c
985
h = imc->imc_sockets[i].isock_ubox->istub_cfgspace;
usr/src/uts/intel/io/imc/imc.c
987
imc->imc_gen_data->igd_sad_nodeid_offset);
usr/src/uts/intel/io/imc/imc.c
989
imc->imc_sockets[i].isock_valid |=
usr/src/uts/intel/io/imc/imc.c
994
imc->imc_sockets[i].isock_nodeid = IMC_NODEID_UBOX_MASK(nodeid);
usr/src/uts/intel/io/imc/imc.c
995
imc->imc_spointers[nodeid] = &imc->imc_sockets[i];