Stub out FILE*, stdout/stdin/stderr and implement fprintf on these
- Add FILE* - Add stdout, stdin, stderr stubs - Add fprintf that redirects to printf for stdout and stderr and fails otherwise Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6358 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
		
				
					committed by
					
						
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							a4a022c941
						
					
				
				
					commit
					cd913bdf5c
				
			@@ -32,6 +32,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <stddef.h>
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _FILE {
 | 
				
			||||||
 | 
					} _stdout, _stdin, _stderr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct _FILE FILE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE *stdout = &_stdout;
 | 
				
			||||||
 | 
					FILE *stdin = &_stdin;
 | 
				
			||||||
 | 
					FILE *stderr = &_stderr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @defgroup printf Print functions
 | 
					 * @defgroup printf Print functions
 | 
				
			||||||
 * @{
 | 
					 * @{
 | 
				
			||||||
@@ -39,6 +48,7 @@
 | 
				
			|||||||
int snprintf(char *str, size_t size, const char *fmt, ...);
 | 
					int snprintf(char *str, size_t size, const char *fmt, ...);
 | 
				
			||||||
int sprintf(char *str, const char *fmt, ...);
 | 
					int sprintf(char *str, const char *fmt, ...);
 | 
				
			||||||
int printf(const char *fmt, ...);
 | 
					int printf(const char *fmt, ...);
 | 
				
			||||||
 | 
					int fprintf(FILE *file, const char *fmt, ...);
 | 
				
			||||||
/** @} */
 | 
					/** @} */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void perror(const char *s);
 | 
					void perror(const char *s);
 | 
				
			||||||
@@ -47,5 +57,4 @@ void perror(const char *s);
 | 
				
			|||||||
#define SEEK_CUR 1 /**< The seek offset is against the current position. */
 | 
					#define SEEK_CUR 1 /**< The seek offset is against the current position. */
 | 
				
			||||||
#define SEEK_END 2 /**< The seek offset is against the end of the file. */
 | 
					#define SEEK_END 2 /**< The seek offset is against the end of the file. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -723,6 +723,20 @@ int sprintf(char *str, const char *fmt, ...)
 | 
				
			|||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int fprintf(FILE *file, const char *fmt, ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int ret;
 | 
				
			||||||
 | 
						if ((file == stdout) || (file == stderr)) {
 | 
				
			||||||
 | 
							va_list args;
 | 
				
			||||||
 | 
							va_start(args, fmt);
 | 
				
			||||||
 | 
							ret = vprintf(fmt, args);
 | 
				
			||||||
 | 
							va_end(args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return ret;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return -1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct vsnprintf_data {
 | 
					struct vsnprintf_data {
 | 
				
			||||||
	size_t size;		/* Total space for string */
 | 
						size_t size;		/* Total space for string */
 | 
				
			||||||
	size_t len;		/* Count of currently used characters */
 | 
						size_t len;		/* Count of currently used characters */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user