PGM_STR(): New macro.
[bertos.git] / mware / formatwr.h
1 /*!
2  * \file
3  * <!--
4  * Copyright 2003, 2004 Develer S.r.l. (http://www.develer.com/)
5  * This file is part of DevLib - See devlib/README for information.
6  * -->
7  *
8  * \version $Id$
9  *
10  * \brief Basic "printf", "sprintf" and "fprintf" formatter.
11  */
12
13 /*#*
14  *#* $Log$
15  *#* Revision 1.8  2005/04/11 19:10:28  bernie
16  *#* Include top-level headers from cfg/ subdir.
17  *#*
18  *#* Revision 1.7  2005/02/16 20:28:03  bernie
19  *#* Add %S formatter.
20  *#*
21  *#* Revision 1.6  2005/01/08 08:50:06  bernie
22  *#* Make more portable.
23  *#*
24  *#* Revision 1.5  2004/08/25 14:12:09  rasky
25  *#* Aggiornato il comment block dei log RCS
26  *#*
27  *#* Revision 1.4  2004/08/04 15:53:47  rasky
28  *#* Nuove opzioni di configurazione per formatted_write e ridotto maggiormente l'utilizzo dellos tack
29  *#*
30  *#* Revision 1.3  2004/07/29 22:57:09  bernie
31  *#* Add values for new-style CONFIG_PRINTF option.
32  *#*
33  *#* Revision 1.2  2004/06/03 11:27:09  bernie
34  *#* Add dual-license information.
35  *#*
36  *#* Revision 1.1  2004/05/23 15:43:16  bernie
37  *#* Import mware modules.
38  *#*
39  *#*/
40 #ifndef MWARE_FORMATWR_H
41 #define MWARE_FORMATWR_H
42
43 #include <stdarg.h> /* va_list */
44 #include <cfg/config.h>
45 #include <cfg/cpu.h>    /* CPU_HARVARD */
46
47 /*!
48  * \name _formatted_write() configuration
49  * \{
50  */
51 #define PRINTF_DISABLED    0
52 #define PRINTF_NOMODIFIERS 1
53 #define PRINTF_REDUCED     2
54 #define PRINTF_NOFLOAT     3
55 #define PRINTF_FULL        4
56 /* \} */
57
58 #ifndef CONFIG_PRINTF_RETURN_COUNT
59         /*! Enable/disable _formatted_write return value */
60         #define CONFIG_PRINTF_RETURN_COUNT 1
61 #endif
62
63 int
64 _formatted_write(
65         const char *format,
66         void put_char_func(char c, void *user_data),
67         void *user_data,
68         va_list ap);
69
70 #if CPU_HARVARD
71         #include "pgm.h"
72         int _formatted_write_P(
73                 const char * PROGMEM format,
74                 void put_char_func(char c, void *user_data),
75                 void *user_data,
76                 va_list ap);
77 #endif /* CPU_HARVARD */
78
79 #endif /* MWARE_FORMATWR_H */
80