aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include/x86_64/vga/io.hpp
blob: 4d99788f601fa2b4185d27ce0f8d73c5bc146be5 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef TEACHOS_X86_64_VGA_IO_HPP
#define TEACHOS_X86_64_VGA_IO_HPP

#include "x86_64/io/port_io.hpp"

#include <cstddef>

namespace teachos::x86_64::vga::io
{
  namespace crtc
  {
    /**
     * @brief The address port of the CRT Controller.
     */
    using address_port = x86_64::io::port<0x3d4, 1>;

    /**
     * @brief The data port of the CRT Controller.
     */
    using data_port = x86_64::io::port<0x3d5, 1>;

    namespace registers
    {
      /**
       * @brief The address of the Cursor Start register of the CRTC.
       */
      [[maybe_unused]] auto constexpr cursor_start = std::byte{0x0a};

      /**
       * @brief The address of the Cursor End register of the CRTC.
       */
      [[maybe_unused]] auto constexpr cursor_end = std::byte{0x0b};
    }  // namespace registers

  };  // namespace crtc

}  // namespace teachos::x86_64::vga::io

#endif