21.2. Directives#

This section details the directives of the Kernel Character I/O Support. A subsection is dedicated to each of this manager’s directives and lists the calling sequence, parameters, description, return values, and notes of the directive.

21.2.1. rtems_putc()#

Outputs the character to the kernel character output device.

CALLING SEQUENCE:

void rtems_putc( char c );

PARAMETERS:

c

This parameter is the character to output.

DESCRIPTION:

The directive outputs the character specified by c to the kernel character output device using the polled character output implementation provided by BSP_output_char. The directive performs a character translation from NL to CR followed by NR.

If the kernel character output device is concurrently accessed, then interleaved output may occur.

CONSTRAINTS:

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.

  • The directive will not cause the calling task to be preempted.

21.2.2. rtems_put_char()#

Puts the character using rtems_putc()

CALLING SEQUENCE:

void rtems_put_char( int c, void *unused );

PARAMETERS:

c

This parameter is the character to output.

unused

This parameter is an unused argument.

NOTES:

The directive is provided to support the RTEMS Testing Framework.

CONSTRAINTS:

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.

  • The directive will not cause the calling task to be preempted.

21.2.3. putk()#

Outputs the characters of the string and a newline character to the kernel character output device.

CALLING SEQUENCE:

int putk( const char *s );

PARAMETERS:

s

This parameter is the string to output.

RETURN VALUES:

Returns the number of characters output to the kernel character output device.

NOTES:

The directive may be used to print debug and test information. It uses rtems_putc() to output the characters. This directive performs a character translation from NL to CR followed by NR.

If the kernel character output device is concurrently accessed, then interleaved output may occur.

CONSTRAINTS:

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.

  • The directive will not cause the calling task to be preempted.

21.2.4. printk()#

Outputs the characters defined by the format string and the arguments to the kernel character output device.

CALLING SEQUENCE:

int printk( const char *fmt, ... );

PARAMETERS:

fmt

This parameter is a printf()-style format string.

...

This parameter is a list of optional parameters required by the format string.

RETURN VALUES:

Returns the number of characters output to the kernel character output device.

NOTES:

The directive may be used to print debug and test information. It uses rtems_putc() to output the characters. This directive performs a character translation from NL to CR followed by NR.

If the kernel character output device is concurrently accessed, then interleaved output may occur.

CONSTRAINTS:

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.

  • The directive will not cause the calling task to be preempted.

  • Formatting of floating point numbers is not supported.

21.2.5. vprintk()#

Outputs the characters defined by the format string and the variable argument list to the kernel character output device.

CALLING SEQUENCE:

int vprintk( const char *fmt, va_list ap );

PARAMETERS:

fmt

This parameter is a printf()-style format string.

ap

This parameter is the variable argument list required by the format string.

RETURN VALUES:

Returns the number of characters output to the kernel character output device.

NOTES:

The directive may be used to print debug and test information. It uses rtems_putc() to output the characters. This directive performs a character translation from NL to CR followed by NR.

If the kernel character output device is concurrently accessed, then interleaved output may occur.

CONSTRAINTS:

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.

  • The directive will not cause the calling task to be preempted.

  • Formatting of floating point numbers is not supported.

21.2.6. rtems_printk_printer()#

Outputs the characters defined by the format string and the variable argument list to the kernel character output device.

CALLING SEQUENCE:

int rtems_printk_printer( void *unused, const char *fmt, va_list ap );

PARAMETERS:

unused

This parameter is an unused argument.

fmt

This parameter is a printf()-style format string.

ap

This parameter is the variable argument list required by the format string.

RETURN VALUES:

Returns the number of characters output to the kernel character output device.

NOTES:

The directive may be used to print debug and test information. It uses rtems_putc() to output the characters. This directive performs a character translation from NL to CR followed by NR.

If the kernel character output device is concurrently accessed, then interleaved output may occur.

CONSTRAINTS:

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.

  • The directive will not cause the calling task to be preempted.

  • Formatting of floating point numbers is not supported.

21.2.7. getchark()#

Tries to dequeue a character from the kernel character input device.

CALLING SEQUENCE:

int getchark( void );

DESCRIPTION:

The directive tries to dequeue a character from the kernel character input device using the polled character input implementation referenced by BSP_poll_char if it is available.

RETURN VALUES:

-1

The BSP_poll_char pointer was equal to NULL.

-1

There was no character enqueued on the kernel character input device.

Returns the character least recently enqueued on the kernel character input device as an unsigned character value.

CONSTRAINTS:

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.

  • The directive will not cause the calling task to be preempted.