/* * int __hibernate_cpu_resume(void) * Switch back to the hibernated image's page table prior to restoring the CPU * context. * * Always returns 0
*/
SYM_FUNC_START(__hibernate_cpu_resume) /* switch to hibernated image's page table. */
csrw CSR_SATP, s0
sfence.vma
/* * The below code will be executed from a 'safe' page. * It first switches to the temporary page table, then starts to copy the pages * back to the original memory location. Finally, it jumps to __hibernate_cpu_resume() * to restore the CPU context.
*/
SYM_FUNC_START(hibernate_core_restore_code) /* switch to temp page table. */
csrw satp, s1
sfence.vma
.Lcopy: /* The below code will restore the hibernated image. */
REG_L a1, HIBERN_PBE_ADDR(s4)
REG_L a0, HIBERN_PBE_ORIG(s4)
copy_page a0, a1
REG_L s4, HIBERN_PBE_NEXT(s4)
bnez s4, .Lcopy
jr s2
SYM_FUNC_END(hibernate_core_restore_code)
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-04-29)
¤
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.