]> git.ipfire.org Git - people/ms/u-boot.git/blob - include/vsprintf.h
Add safe vsnprintf and snprintf library functions
[people/ms/u-boot.git] / include / vsprintf.h
1 /*
2 * (C) Copyright 2000-2009
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
5 * See file CREDITS for list of people who contributed to this
6 * project.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 * MA 02111-1307 USA
22 */
23
24 #ifndef __VSPRINTF_H
25 #define __VSPRINTF_H
26
27 ulong simple_strtoul(const char *cp, char **endp, unsigned int base);
28 int strict_strtoul(const char *cp, unsigned int base, unsigned long *res);
29 unsigned long long simple_strtoull(const char *cp, char **endp,
30 unsigned int base);
31 long simple_strtol(const char *cp, char **endp, unsigned int base);
32 void panic(const char *fmt, ...)
33 __attribute__ ((format (__printf__, 1, 2), noreturn));
34 int sprintf(char *buf, const char *fmt, ...)
35 __attribute__ ((format (__printf__, 2, 3)));
36 int vsprintf(char *buf, const char *fmt, va_list args);
37 char *simple_itoa(ulong i);
38
39 #ifdef CONFIG_SYS_VSNPRINTF
40 int snprintf(char *buf, size_t size, const char *fmt, ...)
41 __attribute__ ((format (__printf__, 3, 4)));
42 int scnprintf(char *buf, size_t size, const char *fmt, ...)
43 __attribute__ ((format (__printf__, 3, 4)));
44 int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
45 int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
46 #else
47 /*
48 * Use macros to silently drop the size parameter. Note that the 'cn'
49 * versions are the same as the 'n' versions since the functions assume
50 * there is always enough buffer space when !CONFIG_SYS_VSNPRINTF
51 */
52 #define snprintf(buf, size, fmt, args...) sprintf(buf, fmt, ##args)
53 #define scnprintf(buf, size, fmt, args...) sprintf(buf, fmt, ##args)
54 #define vsnprintf(buf, size, fmt, args...) vsprintf(buf, fmt, ##args)
55 #define vscnprintf(buf, size, fmt, args...) vsprintf(buf, fmt, ##args)
56 #endif /* CONFIG_SYS_VSNPRINTF */
57
58 #endif