xref: /illumos-gate/usr/src/lib/fm/libfmevent/common/libfmevent_ruleset.h (revision 09a48d4ca0ddda4ad26cc885769745870d989baf)
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 (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24  */
25 
26 #ifndef _LIBFMEVENT_RULESET_H
27 #define	_LIBFMEVENT_RULESET_H
28 
29 /*
30  * Event Rulesets.  A ruleset is selected by a (namespace, subsystem)
31  * combination, which together we call a "ruleset" selection for that
32  * namespace.  The strings can be any ascii string not including
33  * control characters or DEL.
34  *
35  * Selection of a ruleset determines how a "raw" event that we publish
36  * using the libfmevent publication interfaces is post-processed into
37  * a full protocol event.
38  *
39  * New rulesets must follow the FMA Event Registry and Portfolio Review
40  * process.  At this time only FMEV_RULESET_SMF and FMEV_RULESET_ON_SUNOS
41  * rulesets are adopted by that process - the others listed here are
42  * experimental.
43  */
44 
45 #define	FMEV_MAX_RULESET_LEN	31
46 
47 #define	FMEV_RS_SEPARATOR		"\012"
48 #define	FMEV_MKRS(v, s)			FMEV_V_##v FMEV_RS_SEPARATOR s
49 
50 /*
51  * Namespaces
52  */
53 #define	FMEV_V_ALL		"*"
54 #define	FMEV_V_SOLARIS_ON	"solaris-osnet"	/* Solaris ON Consolidation */
55 
56 /*
57  * Generic and namespace-agnostic rulesets
58  */
59 #define	FMEV_RULESET_UNREGISTERED	FMEV_MKRS(ALL, "unregistered")
60 #define	FMEV_RULESET_DEFAULT		FMEV_RULESET_UNREGISTERED
61 #define	FMEV_RULESET_SMF		FMEV_MKRS(ALL, "smf")
62 
63 /*
64  * Solaris ON rulesets
65  */
66 #define	FMEV_RULESET_ON_EREPORT		FMEV_MKRS(SOLARIS_ON, "ereport")
67 #define	FMEV_RULESET_ON_SUNOS		FMEV_MKRS(SOLARIS_ON, "sunos")
68 #define	FMEV_RULESET_ON_PRIVATE		FMEV_MKRS(SOLARIS_ON, "private")
69 
70 #ifdef __cplusplus
71 extern "C" {
72 #endif
73 
74 #ifdef __cplusplus
75 }
76 #endif
77 
78 #endif /* _LIBFMEVENT_RULESET_H */
79