Altera HWLIB  16.0
The Altera HW Manager API Reference Manual
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
alt_printf.h
1 /******************************************************************************
2 *
3 * Copyright 2013-2014 Altera Corporation. All Rights Reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
14 *
15 * 3. Neither the name of the copyright holder nor the names of its contributors
16 * may be used to endorse or promote products derived from this software without
17 * specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 *
31 ******************************************************************************/
32 
33 #if !defined(ALT_PRINTF_H)
34 #define ALT_PRINTF_H
35 #include <stdio.h>
36 #include <stdarg.h>
37 #include <inttypes.h>
38 
39 #if !defined(NULL)
40 #define NULL ((void*)0)
41 #endif
42 
43 
44 extern FILE *term0;
45 extern FILE *term1;
46 
47 #if defined (PRINTF_HOST)
48  #define ALT_PRINTF printf
49 #else
50  int alt_snprintf(char *to, size_t n, const char *format, ...);
51  int alt_sprintf(char *to, const char *format, ...);
52  #define sprintf alt_sprintf
53  #define snprintf alt_snprintf
54  #if defined (PRINTF_UART)
55  int alt_printf(const char *format, ...);
56  int alt_fprintf(FILE *stream, const char *format, ...);
57 
58  #define ALT_PRINTF alt_printf
59  #define printf alt_printf
60  #else
61  #define ALT_PRINTF(...) (void)(0)
62  #define printf(...) (void)(0)
63  #endif // PRINTF_UART
64 #endif // PRINTF_HOST
65 
66 typedef struct _FILEOP
67 {
68  void (*print_function)(struct _FILEOP *context, char toprint);
69 } FILEOP;
70 
71 void alt_log_done(FILE *op);
72 
73 #endif //ALT_PRINTF_H