Macros for program memory access.
[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.7  2005/02/16 20:28:03  bernie
16  *#* Add %S formatter.
17  *#*
18  *#* Revision 1.6  2005/01/08 08:50:06  bernie
19  *#* Make more portable.
20  *#*
21  *#* Revision 1.5  2004/08/25 14:12:09  rasky
22  *#* Aggiornato il comment block dei log RCS
23  *#*
24  *#* Revision 1.4  2004/08/04 15:53:47  rasky
25  *#* Nuove opzioni di configurazione per formatted_write e ridotto maggiormente l'utilizzo dellos tack
26  *#*
27  *#* Revision 1.3  2004/07/29 22:57:09  bernie
28  *#* Add values for new-style CONFIG_PRINTF option.
29  *#*
30  *#* Revision 1.2  2004/06/03 11:27:09  bernie
31  *#* Add dual-license information.
32  *#*
33  *#* Revision 1.1  2004/05/23 15:43:16  bernie
34  *#* Import mware modules.
35  *#*
36  *#*/
37 #ifndef MWARE_FORMATWR_H
38 #define MWARE_FORMATWR_H
39
40 #include <stdarg.h> /* va_list */
41 #include <config.h>
42 #include <cpu.h>    /* CPU_HARVARD */
43
44 /*!
45  * \name _formatted_write() configuration
46  * \{
47  */
48 #define PRINTF_DISABLED    0
49 #define PRINTF_NOMODIFIERS 1
50 #define PRINTF_REDUCED     2
51 #define PRINTF_NOFLOAT     3
52 #define PRINTF_FULL        4
53 /* \} */
54
55 #ifndef CONFIG_PRINTF_RETURN_COUNT
56         /*! Enable/disable _formatted_write return value */
57         #define CONFIG_PRINTF_RETURN_COUNT 1
58 #endif
59
60 int
61 _formatted_write(
62         const char *format,
63         void put_char_func(char c, void *user_data),
64         void *user_data,
65         va_list ap);
66
67 #if CPU_HARVARD
68         #include "pgm.h"
69         int _formatted_write_P(
70                 const char * PROGMEM format,
71                 void put_char_func(char c, void *user_data),
72                 void *user_data,
73                 va_list ap);
74 #endif /* CPU_HARVARD */
75
76 #endif /* MWARE_FORMATWR_H */
77