iPXE
debugcon.c File Reference

Debug port console. More...

#include <stdint.h>
#include <ipxe/io.h>
#include <ipxe/console.h>
#include <ipxe/init.h>
#include <config/console.h>

Go to the source code of this file.

Macros

#define DEBUG_PORT   0xe9
 Debug port.
#define DEBUG_PORT_CHECK   0xe9
 Debug port installation check magic value.
#define CONSOLE_DEBUGCON   ( CONSOLE_USAGE_ALL & ~CONSOLE_USAGE_TUI )

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
static void debugcon_putchar (int character)
 Print a character to debug port console.
static void debugcon_init (void)
 Initialise debug port console.
struct init_fn debugcon_init_fn __init_fn (INIT_EARLY)
 Debug port console initialisation function.

Variables

struct console_driver debugcon_console __console_driver
 Debug port console driver.

Detailed Description

Debug port console.

The debug port is supported by bochs (via the "port_e9_hack" configuration file directive) and by qemu (via the "-debugcon" command-line option).

Definition in file debugcon.c.

Macro Definition Documentation

◆ DEBUG_PORT

#define DEBUG_PORT   0xe9

Debug port.

Definition at line 42 of file debugcon.c.

Referenced by debugcon_init(), and debugcon_putchar().

◆ DEBUG_PORT_CHECK

#define DEBUG_PORT_CHECK   0xe9

Debug port installation check magic value.

Definition at line 45 of file debugcon.c.

Referenced by debugcon_init().

◆ CONSOLE_DEBUGCON

#define CONSOLE_DEBUGCON   ( CONSOLE_USAGE_ALL & ~CONSOLE_USAGE_TUI )

Definition at line 50 of file debugcon.c.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ debugcon_putchar()

void debugcon_putchar ( int character)
static

Print a character to debug port console.

Parameters
characterCharacter to be printed

Definition at line 58 of file debugcon.c.

58 {
59
60 /* Write character to debug port */
61 outb ( character, DEBUG_PORT );
62}
#define DEBUG_PORT
Debug port.
Definition debugcon.c:42
#define outb(data, io_addr)
Definition io.h:310

References DEBUG_PORT, and outb.

◆ debugcon_init()

void debugcon_init ( void )
static

Initialise debug port console.

Definition at line 74 of file debugcon.c.

74 {
75 uint8_t check;
76
77 /* Check if console is present */
78 check = inb ( DEBUG_PORT );
79 if ( check != DEBUG_PORT_CHECK ) {
80 DBG ( "Debug port not present; disabling console\n" );
81 debugcon_console.disabled = CONSOLE_DISABLED;
82 }
83}
unsigned char uint8_t
Definition stdint.h:10
#define DEBUG_PORT_CHECK
Debug port installation check magic value.
Definition debugcon.c:45
#define DBG(...)
Print a debugging message.
Definition compiler.h:498
#define CONSOLE_DISABLED
Console is disabled for all uses.
Definition console.h:112
#define inb(io_addr)
Definition io.h:283

References CONSOLE_DISABLED, DBG, DEBUG_PORT, DEBUG_PORT_CHECK, and inb.

Referenced by __init_fn().

◆ __init_fn()

struct init_fn debugcon_init_fn __init_fn ( INIT_EARLY )

Debug port console initialisation function.

References __init_fn, debugcon_init(), and INIT_EARLY.

Variable Documentation

◆ __console_driver

struct console_driver debugcon_console __console_driver
Initial value:
= {
.putchar = debugcon_putchar,
.usage = CONSOLE_DEBUGCON,
}
static void debugcon_putchar(int character)
Print a character to debug port console.
Definition debugcon.c:58
#define CONSOLE_DEBUGCON
Definition debugcon.c:50

Debug port console driver.

Definition at line 65 of file debugcon.c.

65 {
66 .putchar = debugcon_putchar,
67 .usage = CONSOLE_DEBUGCON,
68};