xref: /onnv-gate/usr/src/uts/common/sys/lvm/mhdx.x (revision 0:68f95e015346)
1*0Sstevel@tonic-gate %/*
2*0Sstevel@tonic-gate % * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
3*0Sstevel@tonic-gate % * Use is subject to license terms.
4*0Sstevel@tonic-gate % *
5*0Sstevel@tonic-gate % * CDDL HEADER START
6*0Sstevel@tonic-gate % *
7*0Sstevel@tonic-gate % * The contents of this file are subject to the terms of the
8*0Sstevel@tonic-gate % * Common Development and Distribution License, Version 1.0 only
9*0Sstevel@tonic-gate % * (the "License").  You may not use this file except in compliance
10*0Sstevel@tonic-gate % * with the License.
11*0Sstevel@tonic-gate % *
12*0Sstevel@tonic-gate % * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13*0Sstevel@tonic-gate % * or http://www.opensolaris.org/os/licensing.
14*0Sstevel@tonic-gate % * See the License for the specific language governing permissions
15*0Sstevel@tonic-gate % * and limitations under the License.
16*0Sstevel@tonic-gate % *
17*0Sstevel@tonic-gate % * When distributing Covered Code, include this CDDL HEADER in each
18*0Sstevel@tonic-gate % * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19*0Sstevel@tonic-gate % * If applicable, add the following below this CDDL HEADER, with the
20*0Sstevel@tonic-gate % * fields enclosed by brackets "[]" replaced with your own identifying
21*0Sstevel@tonic-gate % * information: Portions Copyright [yyyy] [name of copyright owner]
22*0Sstevel@tonic-gate % *
23*0Sstevel@tonic-gate % * CDDL HEADER END
24*0Sstevel@tonic-gate % */
25*0Sstevel@tonic-gate %
26*0Sstevel@tonic-gate %#pragma ident	"%Z%%M%	%I%	%E% SMI"
27*0Sstevel@tonic-gate %
28*0Sstevel@tonic-gate %/*
29*0Sstevel@tonic-gate % * MH shadow structure for struct mhioctkown (sys/mhd.h)
30*0Sstevel@tonic-gate % */
31*0Sstevel@tonic-gate struct mhd_mhioctkown_t {
32*0Sstevel@tonic-gate 	int		reinstate_resv_delay;
33*0Sstevel@tonic-gate 	int		min_ownership_delay;
34*0Sstevel@tonic-gate 	int		max_ownership_delay;
35*0Sstevel@tonic-gate };
36*0Sstevel@tonic-gate 
37*0Sstevel@tonic-gate %
38*0Sstevel@tonic-gate %/*
39*0Sstevel@tonic-gate % * MH timeout values
40*0Sstevel@tonic-gate % */
41*0Sstevel@tonic-gate struct mhd_mhiargs_t {
42*0Sstevel@tonic-gate         int			mh_ff;
43*0Sstevel@tonic-gate         mhd_mhioctkown_t	mh_tk;
44*0Sstevel@tonic-gate };
45*0Sstevel@tonic-gate 
46*0Sstevel@tonic-gate %
47*0Sstevel@tonic-gate %/*
48*0Sstevel@tonic-gate % * controller info
49*0Sstevel@tonic-gate % */
50*0Sstevel@tonic-gate #ifdef RPC_HDR
51*0Sstevel@tonic-gate %
52*0Sstevel@tonic-gate %#define	METACTLRMAP	"/etc/lvm/md.ctlrmap"
53*0Sstevel@tonic-gate %#define	META_SSA200_PID	"SSA200"
54*0Sstevel@tonic-gate #endif	/* RPC_HDR */
55*0Sstevel@tonic-gate enum mhd_ctlrtype_t {
56*0Sstevel@tonic-gate 	MHD_CTLR_GENERIC = 0,
57*0Sstevel@tonic-gate 	MHD_CTLR_SSA100,
58*0Sstevel@tonic-gate 	MHD_CTLR_SSA200
59*0Sstevel@tonic-gate };
60*0Sstevel@tonic-gate 
61*0Sstevel@tonic-gate struct mhd_cinfo_t {
62*0Sstevel@tonic-gate 	mhd_ctlrtype_t	mhc_ctype;	/* controller type */
63*0Sstevel@tonic-gate 	u_int		mhc_tray;	/* SSA100 tray */
64*0Sstevel@tonic-gate 	u_int		mhc_bus;	/* SSA100 bus */
65*0Sstevel@tonic-gate 	u_longlong_t	mhc_wwn;	/* SSA100 World Wide Name */
66*0Sstevel@tonic-gate };
67*0Sstevel@tonic-gate 
68*0Sstevel@tonic-gate %
69*0Sstevel@tonic-gate %/*
70*0Sstevel@tonic-gate % * unique drive identifier
71*0Sstevel@tonic-gate % */
72*0Sstevel@tonic-gate typedef	u_int	mhd_did_flags_t;
73*0Sstevel@tonic-gate #ifdef RPC_HDR
74*0Sstevel@tonic-gate %
75*0Sstevel@tonic-gate %#define	MHD_DID_TIME		0x0001
76*0Sstevel@tonic-gate %#define	MHD_DID_SERIAL		0x0002
77*0Sstevel@tonic-gate %#define	MHD_DID_CINFO		0x0004
78*0Sstevel@tonic-gate %#define	MHD_DID_DUPLICATE	0x0008
79*0Sstevel@tonic-gate #endif	/* RPC_HDR */
80*0Sstevel@tonic-gate typedef	char	mhd_serial_t[40];		/* SCSI VID+PID+REV+SERIAL */
81*0Sstevel@tonic-gate struct mhd_drive_id_t {
82*0Sstevel@tonic-gate 	mhd_did_flags_t	did_flags;
83*0Sstevel@tonic-gate 	long		did_time;		/* vtoc timestamp (time_t) */
84*0Sstevel@tonic-gate 	mhd_serial_t	did_serial;		/* SCSI serial number */
85*0Sstevel@tonic-gate 	mhd_cinfo_t	did_cinfo;		/* controller info */
86*0Sstevel@tonic-gate };
87*0Sstevel@tonic-gate 
88*0Sstevel@tonic-gate %
89*0Sstevel@tonic-gate %/*
90*0Sstevel@tonic-gate % * drive identifier list
91*0Sstevel@tonic-gate % */
92*0Sstevel@tonic-gate struct mhd_drive_info_t {
93*0Sstevel@tonic-gate 	string		dif_name<>;
94*0Sstevel@tonic-gate 	mhd_drive_id_t	dif_id;
95*0Sstevel@tonic-gate };
96*0Sstevel@tonic-gate typedef	mhd_drive_info_t	mhd_drive_info_list_t<>;
97