/*! * Dump chain of links to the log. * * @brief Dump chain of links * * @param prefix Text to put in front of dumped data * @param link Kernel virtual address of start of chain of links * * @return void */ static void km_Dump_Link(const char *prefix, const sah_Link * link) { while (link != NULL) { km_Dump_Words(prefix, (unsigned *)link, 3 /* # words in h/w link */ ); if (link->flags & SAH_STORED_KEY_INFO) { #ifdef CAN_DUMP_SCC_DATA uint32_t len; #endif #ifdef CAN_DUMP_SCC_DATA { char buf[50]; scc_get_slot_info(link->ownerid, link->slot, (uint32_t *) & link->data, /* RED key address */ &len); /* key length */ sprintf(buf, " SCC slot %d: ", link->slot); km_Dump_Words(buf, (void *)IO_ADDRESS((uint32_t) link->data), link->len / 4); } #else sprintf(Diag_msg, " SCC slot %d", link->slot); LOG_KDIAG(Diag_msg); #endif } else if (link->data != NULL) { km_Dump_Region(" Data", link->data, link->len); } link = link->next; } }
/* Return the size of the key slot, in octets */ uint32_t shw_slot_get_slot_size(void *user_data, uint32_t slot) { uint64_t owner_id = *((uint64_t *) user_data); uint32_t address; uint32_t value_size_bytes; uint32_t slot_size_bytes; scc_return_t scc_ret; scc_ret = scc_get_slot_info(owner_id, slot, &address, &value_size_bytes, &slot_size_bytes); if (scc_ret == SCC_RET_OK) return slot_size_bytes; return 0; }