aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/pre/src/exception_handling/panic.cpp
blob: 9511a9af5ea2f7554bedebfe27e61c4301e29e12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#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