iPXE
serial.h File Reference

Serial console. More...

#include <ipxe/api.h>
#include <ipxe/uart.h>
#include <config/serial.h>

Go to the source code of this file.

Macros

#define SERIAL_PREFIX_null   __null_
#define SERIAL_INLINE(_subsys, _api_func)
 Calculate static inline serial API function name.
#define PROVIDE_SERIAL(_subsys, _api_func, _func)
 Provide a serial API implementation.
#define PROVIDE_SERIAL_INLINE(_subsys, _api_func)
 Provide a static inline serial API implementation.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
static __always_inline struct uartSERIAL_INLINE (null, default_serial_console)(void)
 Get null serial console UART.
struct uartdefault_serial_console (void)
 Get serial console UART.
struct uartfixed_serial_console (void)
 Get fixed serial console UART.

Variables

struct uartserial_console
 Active serial console UART.

Detailed Description

Serial console.

Definition in file serial.h.

Macro Definition Documentation

◆ SERIAL_PREFIX_null

#define SERIAL_PREFIX_null   __null_

Definition at line 19 of file serial.h.

◆ SERIAL_INLINE

#define SERIAL_INLINE ( _subsys,
_api_func )
Value:
SINGLE_API_INLINE ( SERIAL_PREFIX_ ## _subsys, _api_func )
#define SINGLE_API_INLINE(_prefix, _api_func)
Calculate static inline function name.
Definition api.h:45

Calculate static inline serial API function name.

Parameters
_prefixSubsystem prefix
_api_funcAPI function
Return values
_subsys_funcSubsystem API function

Definition at line 29 of file serial.h.

29#define SERIAL_INLINE( _subsys, _api_func ) \
30 SINGLE_API_INLINE ( SERIAL_PREFIX_ ## _subsys, _api_func )

◆ PROVIDE_SERIAL

#define PROVIDE_SERIAL ( _subsys,
_api_func,
_func )
Value:
PROVIDE_SINGLE_API ( SERIAL_PREFIX_ ## _subsys, _api_func, _func )
#define PROVIDE_SINGLE_API(_prefix, _api_func, _func)
Provide an API implementation.
Definition api.h:55

Provide a serial API implementation.

Parameters
_prefixSubsystem prefix
_api_funcAPI function
_funcImplementing function

Definition at line 39 of file serial.h.

39#define PROVIDE_SERIAL( _subsys, _api_func, _func ) \
40 PROVIDE_SINGLE_API ( SERIAL_PREFIX_ ## _subsys, _api_func, _func )

◆ PROVIDE_SERIAL_INLINE

#define PROVIDE_SERIAL_INLINE ( _subsys,
_api_func )
Value:
PROVIDE_SINGLE_API_INLINE ( SERIAL_PREFIX_ ## _subsys, _api_func )
#define PROVIDE_SINGLE_API_INLINE(_prefix, _api_func)
Provide a static inline API implementation.
Definition api.h:74

Provide a static inline serial API implementation.

Parameters
_prefixSubsystem prefix
_api_funcAPI function

Definition at line 48 of file serial.h.

48#define PROVIDE_SERIAL_INLINE( _subsys, _api_func ) \
49 PROVIDE_SINGLE_API_INLINE ( SERIAL_PREFIX_ ## _subsys, _api_func )

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ SERIAL_INLINE()

__always_inline struct uart * SERIAL_INLINE ( null ,
default_serial_console  )
inlinestatic

Get null serial console UART.

Return values
uartSerial console UART, or NULL

Definition at line 57 of file serial.h.

57 {
58 return NULL;
59}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322

References default_serial_console(), and NULL.

◆ default_serial_console()

struct uart * default_serial_console ( void )

Get serial console UART.

Return values
uartSerial console UART, or NULL

References serial_console.

Referenced by PROVIDE_SERIAL(), PROVIDE_SERIAL(), PROVIDE_SERIAL(), PROVIDE_SERIAL_INLINE(), serial_init(), and SERIAL_INLINE().

◆ fixed_serial_console()

struct uart * fixed_serial_console ( void )
extern

Get fixed serial console UART.

Return values
uartSerial console UART, or NULL

Definition at line 76 of file serial.c.

76 {
77 struct uart *uart = COMCONSOLE;
78 unsigned int baud = COMSPEED;
79
80 /* Set default baud rate, if applicable */
81 if ( uart && baud )
82 uart->baud = baud;
83
84 return uart;
85}
#define COMCONSOLE
Definition serial.h:18
#define COMSPEED
Definition serial.h:26
A generic UART.
Definition uart.h:17
unsigned int baud
Baud rate (if specified)
Definition uart.h:26

References uart::baud, COMCONSOLE, and COMSPEED.

Referenced by PROVIDE_SERIAL(), and spcr_console().

Variable Documentation

◆ serial_console

struct uart* serial_console
extern

Active serial console UART.

Explicitly initialised to NULL since this variable may be accessed before .bss has been zeroed.

Definition at line 69 of file serial.c.

Referenced by default_serial_console(), int21(), int22(), serial_getchar(), serial_init(), serial_iskey(), serial_putchar(), and serial_shutdown().