xref: /dflybsd-src/lib/libc/sysvipc/utils.c (revision 8265747159d6085c462f06fcb5dcee70b773f66b)
1*82657471SMarkus Pfeiffer /**
2*82657471SMarkus Pfeiffer  * Copyright (c) 2013 Larisa Grigore<larisagrigore@gmail.com>.
3*82657471SMarkus Pfeiffer  * All rights reserved.
4*82657471SMarkus Pfeiffer  *
5*82657471SMarkus Pfeiffer  * Redistribution and use in source and binary forms, with or without
6*82657471SMarkus Pfeiffer  * modification, are permitted provided that the following conditions
7*82657471SMarkus Pfeiffer  * are met:
8*82657471SMarkus Pfeiffer  * 1. Redistributions of source code must retain the above copyright
9*82657471SMarkus Pfeiffer  *    notice, this list of conditions and the following disclaimer.
10*82657471SMarkus Pfeiffer  * 2. Redistributions in binary form must reproduce the above copyright
11*82657471SMarkus Pfeiffer  *    notice, this list of conditions and the following disclaimer in the
12*82657471SMarkus Pfeiffer  *    documentation and/or other materials provided with the distribution.
13*82657471SMarkus Pfeiffer  * 3. The name of the author may not be used to endorse or promote products
14*82657471SMarkus Pfeiffer  *    derived from this software without specific prior written permission.
15*82657471SMarkus Pfeiffer  *
16*82657471SMarkus Pfeiffer  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17*82657471SMarkus Pfeiffer  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18*82657471SMarkus Pfeiffer  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19*82657471SMarkus Pfeiffer  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20*82657471SMarkus Pfeiffer  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21*82657471SMarkus Pfeiffer  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22*82657471SMarkus Pfeiffer  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23*82657471SMarkus Pfeiffer  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24*82657471SMarkus Pfeiffer  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25*82657471SMarkus Pfeiffer  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*82657471SMarkus Pfeiffer  */
27*82657471SMarkus Pfeiffer 
28*82657471SMarkus Pfeiffer #include <stdarg.h>
29*82657471SMarkus Pfeiffer #include <unistd.h>
30*82657471SMarkus Pfeiffer #include <stdio.h>
31*82657471SMarkus Pfeiffer #include <stdlib.h>
32*82657471SMarkus Pfeiffer #include <errno.h>
33*82657471SMarkus Pfeiffer #include <syslog.h>
34*82657471SMarkus Pfeiffer 
35*82657471SMarkus Pfeiffer #include "sysvipc_utils.h"
36*82657471SMarkus Pfeiffer 
37*82657471SMarkus Pfeiffer //#define SYSV_DEBUG
38*82657471SMarkus Pfeiffer #ifdef SYSV_DEBUG
39*82657471SMarkus Pfeiffer void
40*82657471SMarkus Pfeiffer sysv_print(const char *fmt, ...) {
41*82657471SMarkus Pfeiffer 	va_list ap;
42*82657471SMarkus Pfeiffer 	char format[50];
43*82657471SMarkus Pfeiffer 
44*82657471SMarkus Pfeiffer 	sprintf(format, "[%d %d] %s",
45*82657471SMarkus Pfeiffer 			getpid(), lwp_gettid(), fmt);
46*82657471SMarkus Pfeiffer 	va_start(ap, fmt);
47*82657471SMarkus Pfeiffer 	vprintf(format, ap);
48*82657471SMarkus Pfeiffer 	va_end(ap);
49*82657471SMarkus Pfeiffer 	fflush(stdout);
50*82657471SMarkus Pfeiffer }
51*82657471SMarkus Pfeiffer #else
52*82657471SMarkus Pfeiffer void
53*82657471SMarkus Pfeiffer sysv_print(const char *fmt, ...) {}
54*82657471SMarkus Pfeiffer #endif
55*82657471SMarkus Pfeiffer 
56*82657471SMarkus Pfeiffer void
57*82657471SMarkus Pfeiffer sysv_print_err(const char *fmt, ...) {
58*82657471SMarkus Pfeiffer 	va_list ap;
59*82657471SMarkus Pfeiffer 	char format[50];
60*82657471SMarkus Pfeiffer 
61*82657471SMarkus Pfeiffer 	sprintf(format, "[%d %d] error(%d): %s",
62*82657471SMarkus Pfeiffer 			getpid(), lwp_gettid(), errno, fmt);
63*82657471SMarkus Pfeiffer 	va_start(ap, fmt);
64*82657471SMarkus Pfeiffer 	vprintf(format, ap);
65*82657471SMarkus Pfeiffer 	va_end(ap);
66*82657471SMarkus Pfeiffer }
67