xref: /openbmc/u-boot/examples/api/libgenwrap.c (revision f0892401)
1 /*
2  * (C) Copyright 2007 Semihalf
3  *
4  * Written by: Rafal Jaworowski <raj@semihalf.com>
5  *
6  * SPDX-License-Identifier:	GPL-2.0+
7  *
8  * This is is a set of wrappers/stubs that allow to use certain routines from
9  * U-Boot's lib in the standalone app. This way way we can re-use
10  * existing code e.g. operations on strings and similar.
11  */
12 
13 #include <common.h>
14 #include <linux/types.h>
15 #include <api_public.h>
16 
17 #include "glue.h"
18 
19 /*
20  * printf() and vprintf() are stolen from u-boot/common/console.c
21  */
22 int printf (const char *fmt, ...)
23 {
24 	va_list args;
25 	uint i;
26 	char printbuffer[256];
27 
28 	va_start (args, fmt);
29 
30 	/* For this to work, printbuffer must be larger than
31 	 * anything we ever want to print.
32 	 */
33 	i = vsprintf (printbuffer, fmt, args);
34 	va_end (args);
35 
36 	/* Print the string */
37 	ub_puts (printbuffer);
38 	return i;
39 }
40 
41 int vprintf (const char *fmt, va_list args)
42 {
43 	uint i;
44 	char printbuffer[256];
45 
46 	/* For this to work, printbuffer must be larger than
47 	 * anything we ever want to print.
48 	 */
49 	i = vsprintf (printbuffer, fmt, args);
50 
51 	/* Print the string */
52 	ub_puts (printbuffer);
53 	return i;
54 }
55 
56 void putc (const char c)
57 {
58 	ub_putc(c);
59 }
60 
61 void __udelay(unsigned long usec)
62 {
63 	ub_udelay(usec);
64 }
65 
66 int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
67 {
68 	ub_reset();
69 	return 0;
70 }
71 
72 void *malloc (size_t len)
73 {
74 	return NULL;
75 }
76 
77 void hang (void)
78 {
79 	while (1) ;
80 }
81