usr/src/lib/libraidcfg/common/raidcfg_spi.h
author jc156560
Thu, 08 Feb 2007 18:32:09 -0800
changeset 3622 eed77e5fc4ad
parent 3457 usr/src/head/raidcfg_spi.h@95f0a08d05e5
child 5585 78c680dcbf67
permissions -rw-r--r--
6519009 libraidcfg's headers and lint library stub have issues
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3457
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     1
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     2
 * CDDL HEADER START
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     3
 *
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     7
 *
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    11
 * and limitations under the License.
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    12
 *
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    18
 *
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    19
 * CDDL HEADER END
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    20
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    21
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    22
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    23
 * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    24
 * Use is subject to license terms.
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    25
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    26
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    27
#ifndef	_SYS_RAIDCFG_SPI_H
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    28
#define	_SYS_RAIDCFG_SPI_H
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    29
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    30
#pragma ident	"%Z%%M%	%I%	%E% SMI"
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    31
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    32
#include <sys/types.h>
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    33
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    34
#ifdef	__cplusplus
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    35
extern "C" {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    36
#endif
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    37
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    38
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    39
 * Controller capabilities
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    40
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    41
#define	RAID_CAP_RAID0		1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    42
#define	RAID_CAP_RAID1		1 << 1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    43
#define	RAID_CAP_RAID1E		1 << 2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    44
#define	RAID_CAP_RAID5		1 << 3
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    45
#define	RAID_CAP_RAID10		1 << 4
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    46
#define	RAID_CAP_RAID50		1 << 5
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    47
#define	RAID_CAP_G_HSP		1 << 6
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    48
#define	RAID_CAP_L_HSP		1 << 7
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    49
#define	RAID_CAP_DISK_TRANS	1 << 8
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    50
#define	RAID_CAP_FULL_DISK_ONLY	1 << 9
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    51
#define	RAID_CAP_SMART_ALLOC	1 << 10
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    52
#define	RAID_CAP_ARRAY_ALIGN	1 << 11
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    53
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    54
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    55
 * General constants
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    56
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    57
#define	OBJ_SEPARATOR_BEGIN	-1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    58
#define	OBJ_SEPARATOR_END	-2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    59
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    60
#define	OBJ_ATTR_NONE		-1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    61
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    62
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    63
 * Array RAID level definition
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    64
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    65
#define	RAID_LEVEL_0		1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    66
#define	RAID_LEVEL_1		2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    67
#define	RAID_LEVEL_1E		3
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    68
#define	RAID_LEVEL_5		4
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    69
#define	RAID_LEVEL_10		5
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    70
#define	RAID_LEVEL_50		6
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    71
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    72
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    73
 * Array cache write policy
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    74
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    75
#define	CACHE_WR_OFF		0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    76
#define	CACHE_WR_ON		1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    77
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    78
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    79
 * Array cache read policy
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    80
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    81
#define	CACHE_RD_OFF		0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    82
#define	CACHE_RD_ON		1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    83
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    84
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    85
 * Array status
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    86
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    87
#define	ARRAY_STATE_OPTIMAL	0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    88
#define	ARRAY_STATE_DEGRADED	1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    89
#define	ARRAY_STATE_FAILED	2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    90
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    91
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    92
 * Disk state
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    93
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    94
#define	DISK_STATE_GOOD		0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    95
#define	DISK_STATE_FAILED	1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    96
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    97
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    98
 * Array part state
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
    99
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   100
#define	ARRAYPART_STATE_GOOD	0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   101
#define	ARRAYPART_STATE_MISSED	1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   102
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   103
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   104
 * Disk segment state
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   105
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   106
#define	DISKSEG_STATE_GOOD	1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   107
#define	DISKSEG_STATE_RESERVED	1 << 1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   108
#define	DISKSEG_STATE_DEAD	1 << 2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   109
#define	DISKSEG_STATE_NORMAL	1 << 3
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   110
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   111
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   112
 * Controller connection type
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   113
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   114
#define	TYPE_UNKNOWN		0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   115
#define	TYPE_SCSI		1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   116
#define	TYPE_SAS		2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   117
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   118
#define	RAID_TASK_SUSPEND	0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   119
#define	RAID_TASK_RESUME	1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   120
#define	RAID_TASK_TERMINATE	2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   121
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   122
#define	HSP_TYPE_GLOBAL		0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   123
#define	HSP_TYPE_LOCAL		1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   124
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   125
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   126
 * Sub-command of set attribute
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   127
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   128
#define	SET_CACHE_WR_PLY	0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   129
#define	SET_CACHE_RD_PLY	1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   130
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   131
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   132
 * Sub-commands for act method of object
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   133
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   134
#define	ACT_CONTROLLER_OPEN	0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   135
#define	ACT_CONTROLLER_CLOSE	1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   136
#define	ACT_CONTROLLER_FLASH_FW	2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   137
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   138
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   139
 * Some definitions
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   140
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   141
#define	CONTROLLER_FW_LEN	32
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   142
#define	CONTROLLER_TYPE_LEN	32
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   143
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   144
#define	DISK_VENDER_LEN		8
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   145
#define	DISK_PRODUCT_LEN	16
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   146
#define	DISK_REV_LEN		4
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   147
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   148
#define	DISK_ID(c, id, l)	((c) << 7 | (l) << 4 | (id))
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   149
#define	BUS(disk_id)		((disk_id) >> 7)
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   150
#define	TARGET(disk_id)		((disk_id) & 0xf)
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   151
#define	LUN(disk_id)		(((disk_id) >> 4) & 0x7)
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   152
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   153
#define	ARRAY_ID(id, l)		((l) << 16 | (id))
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   154
#define	ARRAY_TARGET(array_id)	((array_id) & 0xffff)
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   155
#define	ARRAY_LUN(array_id)	((array_id) >> 16)
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   156
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   157
#define	RDCFG_PLUGIN_V1		0x10000
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   158
#define	CFGDIR		"/dev/cfg"
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   159
#define	MAX_PATH_LEN		255
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   160
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   161
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   162
 * Mininum array part size: 256M
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   163
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   164
#define	ARRAYPART_MIN_SIZE	(uint64_t)(1 << 28)
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   165
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   166
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   167
 * Return code
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   168
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   169
#define	SUCCESS			0
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   170
#define	STD_IOCTL		-1
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   171
#define	ERR_DRIVER_NOT_FOUND	-2
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   172
#define	ERR_DRIVER_OPEN		-3
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   173
#define	ERR_DRIVER_LOCK		-4
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   174
#define	ERR_DRIVER_CLOSED	-5
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   175
#define	ERR_DRIVER_ACROSS	-6
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   176
#define	ERR_ARRAY_LEVEL		-7
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   177
#define	ERR_ARRAY_SIZE		-8
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   178
#define	ERR_ARRAY_STRIPE_SIZE	-9
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   179
#define	ERR_ARRAY_CACHE_POLICY	-10
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   180
#define	ERR_ARRAY_IN_USE	-11
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   181
#define	ERR_ARRAY_TASK		-12
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   182
#define	ERR_ARRAY_CONFIG	-13
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   183
#define	ERR_ARRAY_DISKNUM	-14
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   184
#define	ERR_ARRAY_LAYOUT	-15
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   185
#define	ERR_ARRAY_AMOUNT	-16
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   186
#define	ERR_DISK_STATE		-17
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   187
#define	ERR_DISK_SPACE		-18
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   188
#define	ERR_DISK_SEG_AMOUNT	-19
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   189
#define	ERR_DISK_NOT_EMPTY	-20
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   190
#define	ERR_DISK_TASK		-21
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   191
#define	ERR_TASK_STATE		-22
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   192
#define	ERR_OP_ILLEGAL		-23
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   193
#define	ERR_OP_NO_IMPL		-24
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   194
#define	ERR_OP_FAILED		-25
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   195
#define	ERR_DEVICE_NOENT	-26
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   196
#define	ERR_DEVICE_TYPE		-27
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   197
#define	ERR_DEVICE_DUP		-28
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   198
#define	ERR_DEVICE_OVERFLOW	-29
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   199
#define	ERR_DEVICE_UNCLEAN	-30
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   200
#define	ERR_DEVICE_INVALID	-31
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   201
#define	ERR_NOMEM		-32
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   202
#define	ERR_PRIV		-33
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   203
#define	ERR_PLUGIN		-34
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   204
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   205
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   206
 * Raid object types
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   207
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   208
typedef enum {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   209
	OBJ_TYPE_SYSTEM,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   210
	OBJ_TYPE_CONTROLLER,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   211
	OBJ_TYPE_ARRAY,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   212
	OBJ_TYPE_DISK,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   213
	OBJ_TYPE_HSP,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   214
	OBJ_TYPE_ARRAY_PART,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   215
	OBJ_TYPE_DISK_SEG,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   216
	OBJ_TYPE_TASK,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   217
	OBJ_TYPE_ALL
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   218
} raid_obj_type_id_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   219
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   220
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   221
 * Task functions
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   222
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   223
typedef enum {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   224
	TASK_FUNC_UNKNOWN,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   225
	TASK_FUNC_INIT,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   226
	TASK_FUNC_BUILD,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   227
	TASK_FUNC_VERIFY
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   228
} raidtask_func_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   229
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   230
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   231
 * Task state
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   232
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   233
typedef enum {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   234
	TASK_STATE_UNKNOWN,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   235
	TASK_STATE_TERMINATED,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   236
	TASK_STATE_FAILED,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   237
	TASK_STATE_DONE,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   238
	TASK_STATE_RUNNING,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   239
	TASK_STATE_SUSPENDED
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   240
} raidtask_state_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   241
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   242
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   243
 * Attributes of all RAID objects
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   244
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   245
typedef union {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   246
	uint64_t	reserved[3];
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   247
	struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   248
		uint64_t	target_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   249
		uint64_t	lun;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   250
	} idl;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   251
} array_tag_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   252
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   253
typedef union {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   254
	struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   255
		uint64_t bus;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   256
		uint64_t target_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   257
		uint64_t lun;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   258
	} cidl;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   259
} disk_tag_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   260
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   261
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   262
	uint32_t	controller_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   263
	uint32_t	max_array_num;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   264
	uint32_t	max_seg_per_disk;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   265
	uint32_t	connection_type;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   266
	uint64_t	capability;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   267
	char		fw_version[CONTROLLER_FW_LEN];
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   268
	char		controller_type[CONTROLLER_TYPE_LEN];
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   269
} controller_attr_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   270
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   271
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   272
	uint32_t	array_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   273
	uint32_t	state;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   274
	array_tag_t	tag;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   275
	uint64_t	capacity;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   276
	uint32_t	raid_level;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   277
	uint32_t	stripe_size;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   278
	uint32_t	write_policy;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   279
	uint32_t	read_policy;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   280
} array_attr_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   281
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   282
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   283
	uint32_t	disk_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   284
	uint32_t	state;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   285
	disk_tag_t	tag;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   286
	uint64_t	capacity;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   287
	char		vendorid[DISK_VENDER_LEN];
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   288
	char		productid[DISK_PRODUCT_LEN];
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   289
	char		revision[DISK_REV_LEN];
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   290
} disk_attr_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   291
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   292
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   293
	uint32_t	associated_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   294
	uint32_t	type;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   295
} hsp_attr_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   296
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   297
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   298
	uint32_t	disk_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   299
	uint32_t	state;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   300
	uint64_t	offset;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   301
	uint64_t	size;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   302
} arraypart_attr_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   303
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   304
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   305
	uint32_t	seq_no;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   306
	uint32_t	state;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   307
	uint64_t	offset;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   308
	uint64_t	size;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   309
} diskseg_attr_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   310
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   311
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   312
	uint32_t	task_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   313
	uint32_t	task_func;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   314
	uint32_t	task_state;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   315
	uint32_t	progress;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   316
} task_attr_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   317
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   318
typedef struct {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   319
	uint32_t	array_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   320
	uint32_t	disk_id;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   321
} hsp_relation_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   322
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   323
/*
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   324
 * Structure used to register plug-in modules
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   325
 */
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   326
typedef	struct raid_lib_type {
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   327
	uint32_t version;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   328
	struct raid_lib_type *next;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   329
	void	*lib_handle;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   330
	const char	*name;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   331
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   332
	int (*open_controller)(uint32_t, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   333
	int (*close_controller)(uint32_t, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   334
	int (*compnum)(uint32_t, uint32_t, raid_obj_type_id_t,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   335
		raid_obj_type_id_t);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   336
	int (*complist)(uint32_t, uint32_t, raid_obj_type_id_t,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   337
		raid_obj_type_id_t, int, void *);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   338
	int (*get_attr)(uint32_t, uint32_t, uint32_t, raid_obj_type_id_t,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   339
		void *);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   340
	int (*set_attr)(uint32_t, uint32_t, uint32_t, uint32_t *, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   341
	int (*array_create)(uint32_t, array_attr_t *, int,
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   342
		arraypart_attr_t *, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   343
	int (*array_delete)(uint32_t, uint32_t, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   344
	int (*hsp_bind)(uint32_t, uint32_t, hsp_relation_t *, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   345
	int (*hsp_unbind)(uint32_t, uint32_t, hsp_relation_t *, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   346
	int (*flash_fw)(uint32_t, char *, uint32_t, char **);
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   347
} raid_lib_t;
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   348
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   349
#ifdef	__cplusplus
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   350
}
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   351
#endif
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   352
95f0a08d05e5 PSARC 2005/204 RaidCfg project
jc156560
parents:
diff changeset
   353
#endif	/* _SYS_RAIDCFG_SPI_H */