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