libpayload: avoid excessive casts in printf.c
struct printf_spec is a purely internal structure. Avoid excessive casts when using the write function pointer just to make the compiler happy by using the right types in the first place. Change-Id: Ia4f3c79a5283cb76c8aa5f9d1eee758676303382 Signed-off-by: Mathias Krause <minipli@googlemail.com> Reviewed-on: http://review.coreboot.org/850 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
67997d330d
commit
6efbebdb58
|
@ -46,7 +46,7 @@ FILE *stderr = &_stderr;
|
||||||
/** Structure for specifying output methods for different printf clones. */
|
/** Structure for specifying output methods for different printf clones. */
|
||||||
struct printf_spec {
|
struct printf_spec {
|
||||||
/* Output function, returns count of printed characters or EOF. */
|
/* Output function, returns count of printed characters or EOF. */
|
||||||
int (*write) (void *, size_t, void *);
|
int (*write) (const char *, size_t, void *);
|
||||||
/* Support data - output stream specification, its state, locks, ... */
|
/* Support data - output stream specification, its state, locks, ... */
|
||||||
void *data;
|
void *data;
|
||||||
};
|
};
|
||||||
|
@ -99,7 +99,7 @@ static const char digits_big[] = "0123456789ABCDEF";
|
||||||
static int printf_putnchars(const char *buf, size_t count,
|
static int printf_putnchars(const char *buf, size_t count,
|
||||||
struct printf_spec *ps)
|
struct printf_spec *ps)
|
||||||
{
|
{
|
||||||
return ps->write((void *)buf, count, ps->data);
|
return ps->write(buf, count, ps->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -123,9 +123,9 @@ static inline int printf_putstr(const char *str, struct printf_spec *ps)
|
||||||
*/
|
*/
|
||||||
static int printf_putchar(int c, struct printf_spec *ps)
|
static int printf_putchar(int c, struct printf_spec *ps)
|
||||||
{
|
{
|
||||||
unsigned char ch = c;
|
char ch = c;
|
||||||
|
|
||||||
return ps->write((void *)&ch, 1, ps->data);
|
return ps->write(&ch, 1, ps->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -752,13 +752,13 @@ struct vsnprintf_data {
|
||||||
*
|
*
|
||||||
* @param str Source string to print.
|
* @param str Source string to print.
|
||||||
* @param count Size of source string.
|
* @param count Size of source string.
|
||||||
* @param data Structure with destination string, counter of used space
|
* @param _data Structure with destination string, counter of used space
|
||||||
* and total string size.
|
* and total string size.
|
||||||
* @return Number of characters to print (not characters really printed!).
|
* @return Number of characters to print (not characters really printed!).
|
||||||
*/
|
*/
|
||||||
static int vsnprintf_write(const char *str, size_t count,
|
static int vsnprintf_write(const char *str, size_t count, void *_data)
|
||||||
struct vsnprintf_data *data)
|
|
||||||
{
|
{
|
||||||
|
struct vsnprintf_data *data = _data;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
i = data->size - data->len;
|
i = data->size - data->len;
|
||||||
|
@ -798,8 +798,7 @@ static int vsnprintf_write(const char *str, size_t count,
|
||||||
int vsnprintf(char *str, size_t size, const char *fmt, va_list ap)
|
int vsnprintf(char *str, size_t size, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
struct vsnprintf_data data = { size, 0, str };
|
struct vsnprintf_data data = { size, 0, str };
|
||||||
struct printf_spec ps =
|
struct printf_spec ps = { vsnprintf_write, &data };
|
||||||
{ (int (*)(void *, size_t, void *))vsnprintf_write, &data };
|
|
||||||
|
|
||||||
/* Print 0 at end of string - fix case that nothing will be printed. */
|
/* Print 0 at end of string - fix case that nothing will be printed. */
|
||||||
if (size > 0)
|
if (size > 0)
|
||||||
|
@ -838,8 +837,7 @@ static int vprintf_write(const char *str, size_t count, void *unused)
|
||||||
|
|
||||||
int vprintf(const char *fmt, va_list ap)
|
int vprintf(const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
struct printf_spec ps =
|
struct printf_spec ps = { vprintf_write, NULL };
|
||||||
{ (int (*)(void *, size_t, void *))vprintf_write, NULL };
|
|
||||||
|
|
||||||
return printf_core(fmt, &ps, ap);
|
return printf_core(fmt, &ps, ap);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue