1 /*
2  * Copyright (c) 2012 Apple Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person
5  * obtaining a copy of this software and associated documentation files
6  * (the "Software"), to deal in the Software without restriction,
7  * including without limitation the rights to use, copy, modify, merge,
8  * publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be
13  * included in all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18  * NONINFRINGEMENT.  IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
19  * HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  *
24  * Except as contained in this notice, the name(s) of the above
25  * copyright holders shall not be used in advertising or otherwise to
26  * promote the sale, use or other dealings in this Software without
27  * prior written authorization.
28  */
29 
30 #ifndef APPLE_GLX_LOG_H
31 #define APPLE_GLX_LOG_H
32 
33 #include <sys/cdefs.h>
34 #include <asl.h>
35 
36 void apple_glx_log_init(void);
37 
38 __printflike(5, 6)
39 void _apple_glx_log(int level, const char *file, const char *function,
40                     int line, const char *fmt, ...);
41 #define apple_glx_log(l, f, args ...) \
42     _apple_glx_log(l, __FILE__, __func__, __LINE__, f, ## args)
43 
44 
45 __printflike(5, 0)
46 void _apple_glx_vlog(int level, const char *file, const char *function,
47                      int line, const char *fmt, va_list v);
48 #define apple_glx_vlog(l, f, v) \
49     _apple_glx_vlog(l, __FILE__, __func__, __LINE__, f, v)
50 
51 /* This is just here to help the transition.
52  * TODO: Replace calls to apple_glx_diagnostic
53  */
54 #define apple_glx_diagnostic(f, args ...) \
55     apple_glx_log(ASL_LEVEL_DEBUG, f, ## args)
56 
57 #endif
58