// SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2026 0xKSor #include #include #include #include #include Address ExceptionsHandler(ExceptionsContext* frame, ExceptionsType type) { if (type == ExceptionsIRQEl1h || type == ExceptionsIRQEl064) return GICDispatch(frame, type); if (type == ExceptionsSyncEl1h || type == ExceptionsSyncEl064) { UInt32 esr = frame->esr_el1; UInt32 class = (esr >> 26) & 0x3F; UInt32 syndrome = esr & 0x1FFFFFF; if (class == 0x15) { if (syndrome == kOSSchedulerExceptionNumber) return SchedulerNext((Address)frame); if (syndrome == 0) return SyscallDispatch(frame); } } OSPanicException(frame); }