1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23/*	  All Rights Reserved	*/
24
25
26/*
27 * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
28 * Use is subject to license terms.
29 *
30 * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
31 * Copyright 2016 Joyent, Inc.
32 */
33
34#ifndef _SYS_CMN_ERR_H
35#define	_SYS_CMN_ERR_H
36
37#if !defined(_ASM) && (defined(_KERNEL) || defined(_FAKE_KERNEL))
38#include <sys/va_list.h>
39#endif
40
41#include <sys/dditypes.h>
42
43#ifdef	__cplusplus
44extern "C" {
45#endif
46
47/* Common error handling severity levels */
48
49#define	CE_CONT		0	/* continuation		*/
50#define	CE_NOTE		1	/* notice		*/
51#define	CE_WARN		2	/* warning		*/
52#define	CE_PANIC	3	/* panic		*/
53#define	CE_IGNORE	4	/* print nothing	*/
54
55#if !defined(_ASM) && (defined(_KERNEL) || defined(_FAKE_KERNEL))
56
57/*PRINTFLIKE2*/
58extern void cmn_err(int, const char *, ...)
59    __KPRINTFLIKE(2);
60
61extern void vzcmn_err(zoneid_t, int, const char *, __va_list)
62    __KVPRINTFLIKE(3);
63
64extern void dev_err(dev_info_t *, int, char *, ...)
65    __KPRINTFLIKE(3);
66
67extern void vdev_err(dev_info_t *, int, const char *, __va_list)
68    __KVPRINTFLIKE(3);
69
70extern void vcmn_err(int, const char *, __va_list)
71    __KVPRINTFLIKE(2);
72
73/*PRINTFLIKE3*/
74extern void zcmn_err(zoneid_t, int, const char *, ...)
75    __KPRINTFLIKE(3);
76
77/*PRINTFLIKE1*/
78extern void printf(const char *, ...)
79    __KPRINTFLIKE(1);
80
81extern void vzprintf(zoneid_t, const char *, __va_list)
82    __KVPRINTFLIKE(2);
83
84/*PRINTFLIKE2*/
85extern void zprintf(zoneid_t, const char *, ...)
86    __KPRINTFLIKE(2);
87
88extern void vprintf(const char *, __va_list)
89    __KVPRINTFLIKE(1);
90
91/*PRINTFLIKE1*/
92extern void uprintf(const char *, ...)
93    __KPRINTFLIKE(1);
94
95extern void vuprintf(const char *, __va_list)
96    __KVPRINTFLIKE(1);
97
98/*PRINTFLIKE3*/
99extern size_t snprintf(char *, size_t, const char *, ...)
100    __KPRINTFLIKE(3);
101extern size_t vsnprintf(char *, size_t, const char *, __va_list)
102    __KVPRINTFLIKE(3);
103/*PRINTFLIKE2*/
104extern char *sprintf(char *, const char *, ...)
105    __KPRINTFLIKE(2);
106extern char *vsprintf(char *, const char *, __va_list)
107    __KVPRINTFLIKE(2);
108
109/*PRINTFLIKE1*/
110extern void panic(const char *, ...)
111    __KPRINTFLIKE(1) __NORETURN;
112
113extern void vpanic(const char *, __va_list)
114    __KVPRINTFLIKE(1) __NORETURN;
115
116#endif /* !_ASM && _KERNEL ... */
117
118#ifdef	__cplusplus
119}
120#endif
121
122#endif	/* _SYS_CMN_ERR_H */
123