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