From 24d0ee57a4d95f99be6e7e60bd162a30daf0638d Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Fri, 20 May 2016 18:39:50 +1000 Subject: cpukit, testsuite: Add rtems_printf and rtems_printer support. This change adds rtems_printf and related functions and wraps the RTEMS print plugin support into a user API. All references to the plugin are removed and replaced with the rtems_printer interface. Printk and related functions are made to return a valid number of characters formatted and output. The function attribute to check printf functions has been added to rtems_printf and printk. No changes to remove warrnings are part of this patch set. The testsuite has been moved over to the rtems_printer. The testsuite has a mix of rtems_printer access and direct print control via the tmacros.h header file. The support for begink/endk has been removed as it served no purpose and only confused the code base. The testsuite has not been refactored to use rtems_printf. This is future work. --- cpukit/libblock/include/rtems/blkdev.h | 7 +++---- cpukit/libblock/src/blkdev-blkstats.c | 17 ++++++++--------- cpukit/libblock/src/blkdev-print-stats.c | 7 +++---- 3 files changed, 14 insertions(+), 17 deletions(-) (limited to 'cpukit/libblock') diff --git a/cpukit/libblock/include/rtems/blkdev.h b/cpukit/libblock/include/rtems/blkdev.h index 81e2dfa0da..99f857379b 100644 --- a/cpukit/libblock/include/rtems/blkdev.h +++ b/cpukit/libblock/include/rtems/blkdev.h @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include @@ -348,15 +348,14 @@ void rtems_blkdev_print_stats( uint32_t media_block_size, uint32_t media_block_count, uint32_t block_size, - rtems_printk_plugin_t print, - void *print_arg + const rtems_printer* printer ); /** * @brief Block device statistics command. */ void rtems_blkstats( - FILE *output, + const rtems_printer *printer, const char *device, bool reset ); diff --git a/cpukit/libblock/src/blkdev-blkstats.c b/cpukit/libblock/src/blkdev-blkstats.c index 1e773cf8c2..ca1e0e4b9c 100644 --- a/cpukit/libblock/src/blkdev-blkstats.c +++ b/cpukit/libblock/src/blkdev-blkstats.c @@ -31,7 +31,7 @@ #include #include -void rtems_blkstats(FILE *output, const char *device, bool reset) +void rtems_blkstats(const rtems_printer* printer, const char *device, bool reset) { int fd = open(device, O_RDONLY); @@ -45,7 +45,7 @@ void rtems_blkstats(FILE *output, const char *device, bool reset) if (reset) { rv = rtems_disk_fd_reset_device_stats(fd); if (rv != 0) { - fprintf(output, "error: reset stats: %s\n", strerror(errno)); + rtems_printf(printer, "error: reset stats: %s\n", strerror(errno)); } } else { uint32_t media_block_size = 0; @@ -64,25 +64,24 @@ void rtems_blkstats(FILE *output, const char *device, bool reset) media_block_size, media_block_count, block_size, - (rtems_printk_plugin_t) fprintf, - output + printer ); } else { - fprintf(output, "error: get stats: %s\n", strerror(errno)); + rtems_printf(printer, "error: get stats: %s\n", strerror(errno)); } } } else { - fprintf(output, "error: not a block device\n"); + rtems_printf(printer, "error: not a block device\n"); } } else { - fprintf(output, "error: get file stats: %s\n", strerror(errno)); + rtems_printf(printer, "error: get file stats: %s\n", strerror(errno)); } rv = close(fd); if (rv != 0) { - fprintf(output, "error: close device: %s\n", strerror(errno)); + rtems_printf(printer, "error: close device: %s\n", strerror(errno)); } } else { - fprintf(output, "error: open device: %s\n", strerror(errno)); + rtems_printf(printer, "error: open device: %s\n", strerror(errno)); } } diff --git a/cpukit/libblock/src/blkdev-print-stats.c b/cpukit/libblock/src/blkdev-print-stats.c index edeee906fa..aba2173b42 100644 --- a/cpukit/libblock/src/blkdev-print-stats.c +++ b/cpukit/libblock/src/blkdev-print-stats.c @@ -32,12 +32,11 @@ void rtems_blkdev_print_stats( uint32_t media_block_size, uint32_t media_block_count, uint32_t block_size, - rtems_printk_plugin_t print, - void *print_arg + const rtems_printer* printer ) { - (*print)( - print_arg, + rtems_printf( + printer, "-------------------------------------------------------------------------------\n" " DEVICE STATISTICS\n" "----------------------+--------------------------------------------------------\n" -- cgit v1.2.3