Home | History | Annotate | Download | only in head
      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