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.