summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/lvm/mdio.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys/lvm/mdio.h')
-rw-r--r--usr/src/uts/common/sys/lvm/mdio.h33
1 files changed, 29 insertions, 4 deletions
diff --git a/usr/src/uts/common/sys/lvm/mdio.h b/usr/src/uts/common/sys/lvm/mdio.h
index 1cedfe2bc6..e604a98795 100644
--- a/usr/src/uts/common/sys/lvm/mdio.h
+++ b/usr/src/uts/common/sys/lvm/mdio.h
@@ -18,16 +18,15 @@
*
* CDDL HEADER END
*/
+
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS__MDIO_H
#define _SYS__MDIO_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/debug.h>
#include <sys/ioctl.h>
#include <sys/types.h>
@@ -433,6 +432,31 @@ typedef struct md_mkdev_params {
unit_t un;
} md_mkdev_params_t;
+#define MDMN_RR_CLEAN_PARAMS_DATA(x) ((unsigned char *)(x) + \
+ sizeof (md_mn_rr_clean_params_t))
+#define MDMN_RR_CLEAN_PARAMS_SIZE(x) (sizeof (md_mn_rr_clean_params_t) + \
+ MDMN_RR_CLEAN_PARAMS_DATA_BYTES(x))
+#define MDMN_RR_CLEAN_PARAMS_START_BIT(x) ((x)->rr_start_size >> 16)
+#define MDMN_RR_CLEAN_PARAMS_DATA_BYTES(x) ((x)->rr_start_size & 0xffff)
+
+typedef struct md_mn_rr_clean_params {
+ MD_DRIVER
+ md_error_t mde;
+ md_mn_nodeid_t rr_nodeid;
+ minor_t rr_mnum;
+ unsigned int rr_start_size; /* start_bit (16b) | data_bytes (16b) */
+ /* actual data goes here */
+} md_mn_rr_clean_params_t;
+
+typedef struct md_mn_rr_dirty_params {
+ MD_DRIVER
+ md_error_t mde;
+ minor_t rr_mnum;
+ md_mn_nodeid_t rr_nodeid;
+ ushort_t rr_start; /* First RR region to mark */
+ ushort_t rr_end; /* Last RR region to mark */
+} md_mn_rr_dirty_params_t;
+
/*
* Flags to coordinate sending device id between kernel and user space.
* To get devid from kernel:
@@ -756,7 +780,8 @@ typedef struct md_regen_param {
#define MD_IOCGET_HSP_NM (MDIOC|105) /* get hsp entry from namespace */
#define MD_IOCREM_DEV (MDIOC|106) /* remove device node for unit */
#define MD_IOCUPDATE_NM_RR_DID (MDIOC|107) /* update remotely repl did in NM */
-
+#define MD_MN_RR_DIRTY (MDIOC|108) /* Mark RR range as dirty */
+#define MD_MN_RR_CLEAN (MDIOC|109) /* Clean RR bits from bitmap */
#define MDIOC_MISC (MDIOC|128) /* misc module base */
/* Used in DEBUG_TEST code */