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