xref: /rk3399_rockchip-uboot/examples/api/libgenwrap.c (revision 78acc472d9719316f22e002a009a998d9ceec29d)
1d4abc757SPeter Tyser /*
2d4abc757SPeter Tyser  * (C) Copyright 2007 Semihalf
3d4abc757SPeter Tyser  *
4d4abc757SPeter Tyser  * Written by: Rafal Jaworowski <raj@semihalf.com>
5d4abc757SPeter Tyser  *
6d4abc757SPeter Tyser  * See file CREDITS for list of people who contributed to this
7d4abc757SPeter Tyser  * project.
8d4abc757SPeter Tyser  *
9d4abc757SPeter Tyser  * This program is free software; you can redistribute it and/or
10d4abc757SPeter Tyser  * modify it under the terms of the GNU General Public License as
11d4abc757SPeter Tyser  * published by the Free Software Foundation; either version 2 of
12d4abc757SPeter Tyser  * the License, or (at your option) any later version.
13d4abc757SPeter Tyser  *
14d4abc757SPeter Tyser  * This program is distributed in the hope that it will be useful,
15d4abc757SPeter Tyser  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16d4abc757SPeter Tyser  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17d4abc757SPeter Tyser  * GNU General Public License for more details.
18d4abc757SPeter Tyser  *
19d4abc757SPeter Tyser  * You should have received a copy of the GNU General Public License
20d4abc757SPeter Tyser  * along with this program; if not, write to the Free Software
21d4abc757SPeter Tyser  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22d4abc757SPeter Tyser  * MA 02111-1307 USA
23d4abc757SPeter Tyser  *
24d4abc757SPeter Tyser  *
25d4abc757SPeter Tyser  * This is is a set of wrappers/stubs that allow to use certain routines from
26*78acc472SPeter Tyser  * U-Boot's lib in the standalone app. This way way we can re-use
27d4abc757SPeter Tyser  * existing code e.g. operations on strings and similar.
28d4abc757SPeter Tyser  *
29d4abc757SPeter Tyser  */
30d4abc757SPeter Tyser 
31d4abc757SPeter Tyser #include <common.h>
32d4abc757SPeter Tyser #include <linux/types.h>
33d4abc757SPeter Tyser #include <api_public.h>
34d4abc757SPeter Tyser 
35d4abc757SPeter Tyser #include "glue.h"
36d4abc757SPeter Tyser 
37d4abc757SPeter Tyser /*
38d4abc757SPeter Tyser  * printf() and vprintf() are stolen from u-boot/common/console.c
39d4abc757SPeter Tyser  */
40d4abc757SPeter Tyser void printf (const char *fmt, ...)
41d4abc757SPeter Tyser {
42d4abc757SPeter Tyser 	va_list args;
43d4abc757SPeter Tyser 	uint i;
44d4abc757SPeter Tyser 	char printbuffer[256];
45d4abc757SPeter Tyser 
46d4abc757SPeter Tyser 	va_start (args, fmt);
47d4abc757SPeter Tyser 
48d4abc757SPeter Tyser 	/* For this to work, printbuffer must be larger than
49d4abc757SPeter Tyser 	 * anything we ever want to print.
50d4abc757SPeter Tyser 	 */
51d4abc757SPeter Tyser 	i = vsprintf (printbuffer, fmt, args);
52d4abc757SPeter Tyser 	va_end (args);
53d4abc757SPeter Tyser 
54d4abc757SPeter Tyser 	/* Print the string */
55d4abc757SPeter Tyser 	ub_puts (printbuffer);
56d4abc757SPeter Tyser }
57d4abc757SPeter Tyser 
58d4abc757SPeter Tyser void vprintf (const char *fmt, va_list args)
59d4abc757SPeter Tyser {
60d4abc757SPeter Tyser 	uint i;
61d4abc757SPeter Tyser 	char printbuffer[256];
62d4abc757SPeter Tyser 
63d4abc757SPeter Tyser 	/* For this to work, printbuffer must be larger than
64d4abc757SPeter Tyser 	 * anything we ever want to print.
65d4abc757SPeter Tyser 	 */
66d4abc757SPeter Tyser 	i = vsprintf (printbuffer, fmt, args);
67d4abc757SPeter Tyser 
68d4abc757SPeter Tyser 	/* Print the string */
69d4abc757SPeter Tyser 	ub_puts (printbuffer);
70d4abc757SPeter Tyser }
71d4abc757SPeter Tyser 
72d4abc757SPeter Tyser void putc (const char c)
73d4abc757SPeter Tyser {
74d4abc757SPeter Tyser 	ub_putc(c);
75d4abc757SPeter Tyser }
76d4abc757SPeter Tyser 
773eb90badSIngo van Lil void __udelay(unsigned long usec)
78d4abc757SPeter Tyser {
79d4abc757SPeter Tyser 	ub_udelay(usec);
80d4abc757SPeter Tyser }
81d4abc757SPeter Tyser 
82d4abc757SPeter Tyser void do_reset (void)
83d4abc757SPeter Tyser {
84d4abc757SPeter Tyser 	ub_reset();
85d4abc757SPeter Tyser }
86d4abc757SPeter Tyser 
87d4abc757SPeter Tyser void *malloc (size_t len)
88d4abc757SPeter Tyser {
89d4abc757SPeter Tyser 	return NULL;
90d4abc757SPeter Tyser }
91d4abc757SPeter Tyser 
92d4abc757SPeter Tyser void hang (void)
93d4abc757SPeter Tyser {
94d4abc757SPeter Tyser 	while (1) ;
95d4abc757SPeter Tyser }
96