aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/exception_handling/panic.cpp
blob: 56edfd5d256d733e53996085e005a70a50f81eb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "arch/exception_handling/panic.hpp"

#include "arch/kernel/halt.hpp"
#include "arch/video/vga/text.hpp"

namespace teachos::arch::exception_handling
{

  extern "C" char const message_prefix_panic[];

  auto panic(char const * reason) -> void { panic(message_prefix_panic, reason); }

  auto panic(char const * prefix, char const * reason) -> void
  {
    using video::vga::text::common_attributes::white_on_red;

    video::vga::text::newline();
    video::vga::text::write(prefix, white_on_red);
    video::vga::text::write(reason, white_on_red);

    kernel::halt();
  };
}  // namespace teachos::arch::exception_handling