Date: Thu, 3 Aug 2017 05:27:05 +0000 (UTC) From: Ngie Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r321969 - in head/sys/boot: arm/at91/libat91 arm/ixp425/boot2 i386/boot2 Message-ID: <201708030527.v735R5dg041043@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ngie Date: Thu Aug 3 05:27:05 2017 New Revision: 321969 URL: https://svnweb.freebsd.org/changeset/base/321969 Log: Fix the return types for printf and putchar to match their libc and POSIX equivalents Both printf and putchar return int, not void. This will allow code that leverages the libcalls and checks/rely on the return type to interchangeably between loader code and non-loader code. MFC after: 1 month Modified: head/sys/boot/arm/at91/libat91/lib.h head/sys/boot/arm/at91/libat91/printf.c head/sys/boot/arm/at91/libat91/putchar.c head/sys/boot/arm/ixp425/boot2/ixp425_board.c head/sys/boot/arm/ixp425/boot2/lib.h head/sys/boot/i386/boot2/boot2.c Modified: head/sys/boot/arm/at91/libat91/lib.h ============================================================================== --- head/sys/boot/arm/at91/libat91/lib.h Thu Aug 3 03:45:48 2017 (r321968) +++ head/sys/boot/arm/at91/libat91/lib.h Thu Aug 3 05:27:05 2017 (r321969) @@ -28,9 +28,9 @@ #define ARM_BOOT_LIB_H int getc(int); -void putchar(int); -void xputchar(int); -void printf(const char *fmt,...); +int putchar(int); +int xputchar(int); +int printf(const char *fmt,...); /* The following function write eeprom at ee_addr using data */ /* from data_add for size bytes. */ Modified: head/sys/boot/arm/at91/libat91/printf.c ============================================================================== --- head/sys/boot/arm/at91/libat91/printf.c Thu Aug 3 03:45:48 2017 (r321968) +++ head/sys/boot/arm/at91/libat91/printf.c Thu Aug 3 05:27:05 2017 (r321969) @@ -20,12 +20,13 @@ #include <stdarg.h> #include "lib.h" -void +int printf(const char *fmt,...) { va_list ap; const char *hex = "0123456789abcdef"; char buf[10]; + const char *fmt_orig = fmt; char *s; unsigned u; int c; @@ -66,5 +67,5 @@ printf(const char *fmt,...) } va_end(ap); - return; + return (int)(fmt - fmt_orig); } Modified: head/sys/boot/arm/at91/libat91/putchar.c ============================================================================== --- head/sys/boot/arm/at91/libat91/putchar.c Thu Aug 3 03:45:48 2017 (r321968) +++ head/sys/boot/arm/at91/libat91/putchar.c Thu Aug 3 05:27:05 2017 (r321969) @@ -39,11 +39,11 @@ #include "lib.h" /* - * void putchar(int ch) + * int putchar(int ch) * Writes a character to the DBGU port. It assumes that DBGU has * already been initialized. */ -void +int putchar(int ch) { AT91PS_USART pUSART = (AT91PS_USART)AT91C_BASE_DBGU; @@ -51,12 +51,14 @@ putchar(int ch) while (!(pUSART->US_CSR & AT91C_US_TXRDY)) continue; pUSART->US_THR = (ch & 0xFF); + return (1); } -void +int xputchar(int ch) { - if (ch == '\n') - putchar('\r'); - putchar(ch); + if (ch == '\n') + putchar('\r'); + putchar(ch); + return (ch == '\n' ? 2 : 1); } Modified: head/sys/boot/arm/ixp425/boot2/ixp425_board.c ============================================================================== --- head/sys/boot/arm/ixp425/boot2/ixp425_board.c Thu Aug 3 03:45:48 2017 (r321968) +++ head/sys/boot/arm/ixp425/boot2/ixp425_board.c Thu Aug 3 05:27:05 2017 (r321969) @@ -165,7 +165,7 @@ getc(int seconds) return c; } -void +int putchar(int ch) { int delay, limit; @@ -179,14 +179,16 @@ putchar(int ch) limit = 40; while ((uart_getreg(ubase, REG_LSR) & LSR_TEMT) == 0 && --limit) DELAY(delay); + return (1); } -void +int xputchar(int ch) { if (ch == '\n') putchar('\r'); putchar(ch); + return (ch == '\n' ? 2 : 1); } void Modified: head/sys/boot/arm/ixp425/boot2/lib.h ============================================================================== --- head/sys/boot/arm/ixp425/boot2/lib.h Thu Aug 3 03:45:48 2017 (r321968) +++ head/sys/boot/arm/ixp425/boot2/lib.h Thu Aug 3 05:27:05 2017 (r321969) @@ -35,12 +35,12 @@ int main(void); void DELAY(int); int getc(int); -void putchar(int); -void xputchar(int); +int putchar(int); +int xputchar(int); void putstr(const char *); void puthex8(u_int8_t); void puthexlist(const u_int8_t *, int); -void printf(const char *fmt,...); +int printf(const char *fmt,...); void bzero(void *, size_t); char *strcpy(char *to, const char *from); Modified: head/sys/boot/i386/boot2/boot2.c ============================================================================== --- head/sys/boot/i386/boot2/boot2.c Thu Aug 3 03:45:48 2017 (r321968) +++ head/sys/boot/i386/boot2/boot2.c Thu Aug 3 05:27:05 2017 (r321969) @@ -114,8 +114,8 @@ void exit(int); static void load(void); static int parse(void); static int dskread(void *, unsigned, unsigned); -static void printf(const char *,...); -static void putchar(int); +static int printf(const char *,...); +static int putchar(int); static int drvread(void *, unsigned, unsigned); static int keyhit(unsigned); static int xputc(int); @@ -521,11 +521,12 @@ error: return -1; } -static void +static int printf(const char *fmt,...) { va_list ap; static char buf[10]; + const char *fmt_orig = fmt; char *s; unsigned u; int c; @@ -556,15 +557,16 @@ printf(const char *fmt,...) putchar(c); } va_end(ap); - return; + return (int)(fmt - fmt_orig); } -static void +static int putchar(int c) { if (c == '\n') xputc('\r'); xputc(c); + return (c == '\n' ? 2 : 1); } static int
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708030527.v735R5dg041043>