mpapi_impl.h (1480:b4782d0a388e) mpapi_impl.h (3410:fb9ffc9fee48)
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 (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 5 unchanged lines hidden (view full) ---

14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
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 (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 5 unchanged lines hidden (view full) ---

14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
22 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26#ifndef _SYS_SCSI_ADAPTERS_MPAPI_IMPL_H
27#define _SYS_SCSI_ADAPTERS_MPAPI_IMPL_H
28
29#pragma ident "%Z%%M% %I% %E% SMI"
30

--- 241 unchanged lines hidden (view full) ---

272 * MP_ASSIGN_LU_TO_TPG subcmd.
273 */
274
275typedef struct mp_lu_tpg_pair {
276 uint64_t luId;
277 uint64_t tpgId;
278} mp_lu_tpg_pair_t;
279
23 * Use is subject to license terms.
24 */
25
26#ifndef _SYS_SCSI_ADAPTERS_MPAPI_IMPL_H
27#define _SYS_SCSI_ADAPTERS_MPAPI_IMPL_H
28
29#pragma ident "%Z%%M% %I% %E% SMI"
30

--- 241 unchanged lines hidden (view full) ---

272 * MP_ASSIGN_LU_TO_TPG subcmd.
273 */
274
275typedef struct mp_lu_tpg_pair {
276 uint64_t luId;
277 uint64_t tpgId;
278} mp_lu_tpg_pair_t;
279
280/* used for uscsi commmands */
281typedef struct mp_uscsi_cmd {
282 struct scsi_address *ap; /* address of the path */
283 struct uscsi_cmd *uscmdp; /* uscsi command */
284 struct buf *cmdbp; /* original buffer */
285 struct buf *rqbp; /* auto-rqsense packet */
286 mdi_pathinfo_t *pip; /* path information */
287 int arq_enabled; /* auto-rqsense enable flag */
288}mp_uscsi_cmd_t;
280
281/*
282 * Structure used as input to
283 * MP_SET_TPG_ACCESS_STATE subcmd.
284 */
285
286typedef struct mp_set_tpg_state_req {
287 struct mp_lu_tpg_pair luTpgPair;

--- 105 unchanged lines hidden (view full) ---

393#define MP_SET_TPG_ACCESS_STATE (MP_SUB_CMD + 0x12)
394#define MP_ENABLE_AUTO_FAILBACK (MP_SUB_CMD + 0x13)
395#define MP_DISABLE_AUTO_FAILBACK (MP_SUB_CMD + 0x14)
396#define MP_ENABLE_PATH (MP_SUB_CMD + 0x15)
397#define MP_DISABLE_PATH (MP_SUB_CMD + 0x16)
398#define MP_GET_PROPRIETARY_LOADBALANCE_LIST (MP_SUB_CMD + 0x17)
399#define MP_GET_PROPRIETARY_LOADBALANCE_PROP (MP_SUB_CMD + 0x18)
400#define MP_ASSIGN_LU_TO_TPG (MP_SUB_CMD + 0x19)
289
290/*
291 * Structure used as input to
292 * MP_SET_TPG_ACCESS_STATE subcmd.
293 */
294
295typedef struct mp_set_tpg_state_req {
296 struct mp_lu_tpg_pair luTpgPair;

--- 105 unchanged lines hidden (view full) ---

402#define MP_SET_TPG_ACCESS_STATE (MP_SUB_CMD + 0x12)
403#define MP_ENABLE_AUTO_FAILBACK (MP_SUB_CMD + 0x13)
404#define MP_DISABLE_AUTO_FAILBACK (MP_SUB_CMD + 0x14)
405#define MP_ENABLE_PATH (MP_SUB_CMD + 0x15)
406#define MP_DISABLE_PATH (MP_SUB_CMD + 0x16)
407#define MP_GET_PROPRIETARY_LOADBALANCE_LIST (MP_SUB_CMD + 0x17)
408#define MP_GET_PROPRIETARY_LOADBALANCE_PROP (MP_SUB_CMD + 0x18)
409#define MP_ASSIGN_LU_TO_TPG (MP_SUB_CMD + 0x19)
401#define MP_API_SUBCMD_MAX (MP_ASSIGN_LU_TO_TPG)
410#define MP_SEND_SCSI_CMD (MP_SUB_CMD + 0x1a)
411#define MP_API_SUBCMD_MAX (MP_SEND_SCSI_CMD)
402
403
404/*
405 * Typical MP API ioctl interface specific Return Values
406 */
407
408#define MP_IOCTL_ERROR_START 0x5533
409#define MP_MORE_DATA (MP_IOCTL_ERROR_START + 1)
410#define MP_DRVR_INVALID_ID (MP_IOCTL_ERROR_START + 2)
411#define MP_DRVR_ID_OBSOLETE (MP_IOCTL_ERROR_START + 3)
412#define MP_DRVR_ACCESS_SYMMETRIC (MP_IOCTL_ERROR_START + 4)
413#define MP_DRVR_PATH_UNAVAILABLE (MP_IOCTL_ERROR_START + 5)
414#define MP_DRVR_IDS_NOT_ASSOCIATED (MP_IOCTL_ERROR_START + 6)
415#define MP_DRVR_ILLEGAL_ACCESS_STATE_REQUEST (MP_IOCTL_ERROR_START + 7)
412
413
414/*
415 * Typical MP API ioctl interface specific Return Values
416 */
417
418#define MP_IOCTL_ERROR_START 0x5533
419#define MP_MORE_DATA (MP_IOCTL_ERROR_START + 1)
420#define MP_DRVR_INVALID_ID (MP_IOCTL_ERROR_START + 2)
421#define MP_DRVR_ID_OBSOLETE (MP_IOCTL_ERROR_START + 3)
422#define MP_DRVR_ACCESS_SYMMETRIC (MP_IOCTL_ERROR_START + 4)
423#define MP_DRVR_PATH_UNAVAILABLE (MP_IOCTL_ERROR_START + 5)
424#define MP_DRVR_IDS_NOT_ASSOCIATED (MP_IOCTL_ERROR_START + 6)
425#define MP_DRVR_ILLEGAL_ACCESS_STATE_REQUEST (MP_IOCTL_ERROR_START + 7)
426#define MP_DRVR_IO_ERROR (MP_IOCTL_ERROR_START + 8)
416
417/*
418 * Macros for OID operations
419 */
420#define MP_ID_SHIFT4MAJOR 32
421#define MP_GET_MAJOR_FROM_ID(id) ((id) >> MP_ID_SHIFT4MAJOR)
422#define MP_GET_INST_FROM_ID(id) ((id) & 0x00000000ffffffff)
423#define MP_STORE_INST_TO_ID(inst, id) (((uint64_t)(inst)) | id)

--- 33 unchanged lines hidden ---
427
428/*
429 * Macros for OID operations
430 */
431#define MP_ID_SHIFT4MAJOR 32
432#define MP_GET_MAJOR_FROM_ID(id) ((id) >> MP_ID_SHIFT4MAJOR)
433#define MP_GET_INST_FROM_ID(id) ((id) & 0x00000000ffffffff)
434#define MP_STORE_INST_TO_ID(inst, id) (((uint64_t)(inst)) | id)

--- 33 unchanged lines hidden ---