blob: f30b73f4cecb80039db2459c94b6e99a409a6579 [file] [log] [blame]
Elyes HAOUASfbf3a472020-05-09 13:22:30 +02001-- SPDX-License-Identifier: GPL-2.0-only
Nico Huberc83239e2016-10-05 17:46:49 +02002
3with Interfaces.C;
4
5use type Interfaces.C.int;
6
7package body HW.Debug_Sink is
8
Nico Huber4a00ccc2018-06-04 15:10:54 +02009 function console_log_level
10 (msg_level : Interfaces.C.int)
11 return Interfaces.C.int;
12 pragma Import (C, console_log_level, "console_log_level");
13
14 Msg_Level_BIOS_DEBUG : constant := 7;
Nico Huberc83239e2016-10-05 17:46:49 +020015
16 procedure console_tx_byte (chr : Interfaces.C.char);
17 pragma Import (C, console_tx_byte, "console_tx_byte");
18
19 procedure Put (Item : String) is
20 begin
Nico Huber4a00ccc2018-06-04 15:10:54 +020021 if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then
Nico Huberc83239e2016-10-05 17:46:49 +020022 for Idx in Item'Range loop
23 console_tx_byte (Interfaces.C.To_C (Item (Idx)));
24 end loop;
25 end if;
26 end Put;
27
28 procedure Put_Char (Item : Character) is
29 begin
Nico Huber4a00ccc2018-06-04 15:10:54 +020030 if console_log_level (Msg_Level_BIOS_DEBUG) /= 0 then
Nico Huberc83239e2016-10-05 17:46:49 +020031 console_tx_byte (Interfaces.C.To_C (Item));
32 end if;
33 end Put_Char;
34
35 procedure New_Line is
36 begin
37 Put_Char (Character'Val (16#0a#));
38 end New_Line;
39
Nico Huberc83239e2016-10-05 17:46:49 +020040end HW.Debug_Sink;