// SPDX-License-Identifier: GPL-2.0-only OR MIT /* * Apple RTKit IPC library * Copyright (C) The Asahi Linux Contributors
*/ #include"rtkit-internal.h"
if (size < sizeof(*regs)) {
dev_warn(rtk->dev, "RTKit: Regs section too small: 0x%zx", size); return;
}
regs = (struct apple_rtkit_crashlog_regs *)bfr;
switch (regs->psr & PSR_MODE_MASK) { case PSR_MODE_EL0t:
el = "EL0t"; break; case PSR_MODE_EL1t:
el = "EL1t"; break; case PSR_MODE_EL1h:
el = "EL1h"; break; case PSR_MODE_EL2t:
el = "EL2t"; break; case PSR_MODE_EL2h:
el = "EL2h"; break; default:
el = "unknown"; break;
}
dev_warn(rtk->dev, "RTKit: Exception dump:");
dev_warn(rtk->dev, " == Exception taken from %s ==", el);
dev_warn(rtk->dev, " PSR = 0x%llx", regs->psr);
dev_warn(rtk->dev, " PC = 0x%llx\n", regs->pc);
dev_warn(rtk->dev, " ESR = 0x%llx\n", regs->esr);
dev_warn(rtk->dev, " FAR = 0x%llx\n", regs->far);
dev_warn(rtk->dev, " SP = 0x%llx\n", regs->sp);
dev_warn(rtk->dev, "\n");
for (i = 0; i < 31; i += 4) { if (i < 28)
dev_warn(rtk->dev, " x%02d-x%02d = %016llx %016llx %016llx %016llx\n",
i, i + 3,
regs->regs[i], regs->regs[i + 1],
regs->regs[i + 2], regs->regs[i + 3]); else
dev_warn(rtk->dev, " x%02d-x%02d = %016llx %016llx %016llx\n", i, i + 3,
regs->regs[i], regs->regs[i + 1], regs->regs[i + 2]);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.