iPXE
Macros | Functions | Variables
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. More...
 
#define DEBUG_PORT_CHECK   0xe9
 Debug port installation check magic value. More...
 
#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. More...
 
static void debugcon_init (void)
 Initialise debug port console. More...
 
struct init_fn debugcon_init_fn __init_fn (INIT_EARLY)
 Debug port console initialisation function. More...
 

Variables

struct console_driver debugcon_console __console_driver
 Debug port console driver. More...
 

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.

◆ DEBUG_PORT_CHECK

#define DEBUG_PORT_CHECK   0xe9

Debug port installation check magic value.

Definition at line 45 of file debugcon.c.

◆ 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()

static 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:309

References DEBUG_PORT, and outb.

◆ debugcon_init()

static 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 }
#define DEBUG_PORT_CHECK
Debug port installation check magic value.
Definition: debugcon.c:45
#define CONSOLE_DISABLED
Console is disabled for all uses.
Definition: console.h:111
#define DEBUG_PORT
Debug port.
Definition: debugcon.c:42
unsigned char uint8_t
Definition: stdint.h:10
uint8_t inb(volatile uint8_t *io_addr)
Read byte from I/O-mapped device.
#define DBG(...)
Print a debugging message.
Definition: compiler.h:498

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

◆ __init_fn()

struct init_fn debugcon_init_fn __init_fn ( INIT_EARLY  )

Debug port console initialisation function.

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.