/* * Print misc stuff for the monitor dump routines * Each routine returns the number of characters it output. * * TODO: * * $Id$ */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #include void rtems_monitor_separator(void) { fprintf(stdout,"------------------------------------------------------------------------------\n"); } uint32_t rtems_monitor_pad( uint32_t destination_column, uint32_t current_column ) { int pad_length; if (destination_column <= current_column) pad_length = 1; else pad_length = destination_column - current_column; return fprintf(stdout,"%*s", pad_length, ""); } int rtems_monitor_dump_char(char ch) { if (isprint(ch)) return fprintf(stdout,"%c", ch); else return fprintf(stdout,"%02x", ch); } int rtems_monitor_dump_decimal(uint32_t num) { return fprintf(stdout,"%4d", num); } int rtems_monitor_dump_hex(uint32_t num) { return fprintf(stdout,"0x%x", num); } int rtems_monitor_dump_assoc_bitfield( rtems_assoc_t *ap, char *separator, uint32_t value ) { uint32_t b; uint32_t length = 0; const char *name; for (b = 1; b; b <<= 1) if (b & value) { if (length) length += fprintf(stdout,"%s", separator); name = rtems_assoc_name_by_local(ap, b); if (name) length += fprintf(stdout,"%s", name); else length += fprintf(stdout,"0x%x", b); } return length; } int rtems_monitor_dump_id(rtems_id id) { return fprintf(stdout,"%08x", id); } int rtems_monitor_dump_name(rtems_name name) { uint32_t i; int length = 0; union { uint32_t ui; char c[4]; } u; u.ui = (uint32_t ) name; #if (CPU_BIG_ENDIAN == TRUE) for (i=0; i