1abfcd5b1SJohn Marino /*- 2abfcd5b1SJohn Marino * Copyright 2011 Konstantin Belousov <kib@FreeBSD.org>. 3abfcd5b1SJohn Marino * All rights reserved. 4abfcd5b1SJohn Marino * 5abfcd5b1SJohn Marino * Redistribution and use in source and binary forms, with or without 6abfcd5b1SJohn Marino * modification, are permitted provided that the following conditions 7abfcd5b1SJohn Marino * are met: 8abfcd5b1SJohn Marino * 1. Redistributions of source code must retain the above copyright 9abfcd5b1SJohn Marino * notice, this list of conditions and the following disclaimer. 10abfcd5b1SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright 11abfcd5b1SJohn Marino * notice, this list of conditions and the following disclaimer in the 12abfcd5b1SJohn Marino * documentation and/or other materials provided with the distribution. 13abfcd5b1SJohn Marino * 14abfcd5b1SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15abfcd5b1SJohn Marino * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16abfcd5b1SJohn Marino * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17abfcd5b1SJohn Marino * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18abfcd5b1SJohn Marino * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19abfcd5b1SJohn Marino * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20abfcd5b1SJohn Marino * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21abfcd5b1SJohn Marino * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22abfcd5b1SJohn Marino * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23abfcd5b1SJohn Marino * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24abfcd5b1SJohn Marino * 25abfcd5b1SJohn Marino * $FreeBSD$ 26abfcd5b1SJohn Marino */ 27abfcd5b1SJohn Marino 28abfcd5b1SJohn Marino #ifndef RTLD_PRINTF_H 29abfcd5b1SJohn Marino #define RTLD_PRINTF_H 1 30abfcd5b1SJohn Marino 31abfcd5b1SJohn Marino #include <sys/cdefs.h> 32abfcd5b1SJohn Marino #include <unistd.h> 33abfcd5b1SJohn Marino 34*98e4cb42SJohn Marino int rtld_snprintf(char *buf, size_t bufsize, const char *fmt, ...) 35*98e4cb42SJohn Marino __printflike(3, 4); 36abfcd5b1SJohn Marino int rtld_vsnprintf(char *buf, size_t bufsize, const char *fmt, va_list ap); 37abfcd5b1SJohn Marino int rtld_vfdprintf(int fd, const char *fmt, va_list ap); 38abfcd5b1SJohn Marino int rtld_fdprintf(int fd, const char *fmt, ...) __printflike(2, 3); 39abfcd5b1SJohn Marino void rtld_fdputstr(int fd, const char *str); 40abfcd5b1SJohn Marino void rtld_fdputchar(int fd, int c); 41abfcd5b1SJohn Marino 42abfcd5b1SJohn Marino #define rtld_printf(...) rtld_fdprintf(STDOUT_FILENO, __VA_ARGS__) 43abfcd5b1SJohn Marino #define rtld_putstr(str) rtld_fdputstr(STDOUT_FILENO, (str)) 44abfcd5b1SJohn Marino #define rtld_putchar(c) rtld_fdputchar(STDOUT_FILENO, (c)) 45abfcd5b1SJohn Marino 46abfcd5b1SJohn Marino #endif 47