xref: /titanic_41/usr/src/head/mdmn_changelog.h (revision 6dfee4834394825da35b977ca71cdc965bc7b6a4)
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 /*
23  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #ifndef	_MDMN_CHANGELOG_H
28 #define	_MDMN_CHANGELOG_H
29 
30 #pragma ident	"%Z%%M%	%I%	%E% SMI"
31 
32 #include <sys/lvm/mdmn_commd.h>
33 
34 #ifdef	__cplusplus
35 extern "C" {
36 #endif
37 
38 #define	MD_MN_CHANGELOG_RECORD_REVISION 0x00010000;
39 
40 /* flags for log record entries */
41 #define	MD_MN_LR_INUSE  0x00000001U	/* Log entry is in use */
42 
43 #define	MDMN_CLF_SNARFED	0x1
44 #define	MDMN_CLF_RESETCACHE	0x2
45 #define	MDMN_CLF_RESETLOG	0x4
46 #define	MDMN_CLF_RESETALL	(MDMN_CLF_RESETCACHE | MDMN_CLF_RESETLOG)
47 
48 
49 /* changelog record entry */
50 typedef struct mdmn_changelog_record {
51 	uint_t				lr_revision;
52 	uint_t				lr_flags;
53 	mddb_recid_t			lr_selfid;
54 	md_mn_msgclass_t		lr_class;
55 	size32_t			lr_msglen;
56 	md_mn_msg_t			lr_msg;
57 } mdmn_changelog_record_t;
58 
59 #define	lr_msgtype	lr_msg.msg_type
60 #define	lr_msgid	lr_msg.msg_msgid
61 #define	lr_setno	lr_msg.msg_setno
62 
63 /* ondisk version */
64 typedef struct mdmn_changelog_record_od {
65 	uint_t				lr_revision;
66 	uint_t				lr_flags;
67 	mddb_recid_t			lr_selfid;
68 	md_mn_msgclass_t		lr_class;
69 	size32_t			lr_msglen;
70 	int				spare[5];
71 	md_mn_msg_od_t			lr_od_msg;
72 } mdmn_changelog_record_od_t;
73 
74 #define	lr_od_msgtype	lr_od_msg.msg_type
75 #define	lr_od_msgid	lr_od_msg.msg_msgid
76 #define	lr_od_setno	lr_od_msg.msg_setno
77 
78 
79 extern	int	mdmn_allocate_changelog(mdsetname_t *, md_error_t *);
80 extern	int	mdmn_reset_changelog(mdsetname_t *, md_error_t *, int flags);
81 extern	int	mdmn_log_msg(md_mn_msg_t *);
82 extern	int	mdmn_unlog_msg(md_mn_msg_t *);
83 extern	int	mdmn_snarf_changelog(set_t, md_error_t *);
84 extern	mdmn_changelog_record_t	*mdmn_get_changelogrec(set_t,
85 							md_mn_msgclass_t);
86 
87 #ifdef	__cplusplus
88 }
89 #endif
90 
91 #endif	/* _MDMN_CHANGELOG_H */
92