Print this page
LOCAL: mpt_sas: store LED state, expose via ioctl


   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
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  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 /*
  23  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  24  * Copyright 2012 Nexenta Systems, Inc. All rights reserved.

  25  */
  26 
  27 /*
  28  * Copyright (c) 2000 to 2010, LSI Corporation.
  29  * All rights reserved.
  30  *
  31  * Redistribution and use in source and binary forms of all code within
  32  * this file that is exclusively owned by LSI, with or without
  33  * modification, is permitted provided that, in addition to the CDDL 1.0
  34  * License requirements, the following conditions are met:
  35  *
  36  *    Neither the name of the author nor the names of its contributors may be
  37  *    used to endorse or promote products derived from this software without
  38  *    specific prior written permission.
  39  *
  40  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  41  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  42  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  43  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  44  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,


 191                  * m_dr_flag is a flag for DR, make sure the member
 192                  * take the place of dr_flag of mptsas_hash_data.
 193                  */
 194                 uint8_t                 m_dr_flag;      /* dr_flag */
 195                 uint16_t                m_devhdl;
 196                 uint32_t                m_deviceinfo;
 197                 uint8_t                 m_phynum;
 198                 uint32_t                m_dups;
 199                 int32_t                 m_timeout;
 200                 int32_t                 m_timebase;
 201                 int32_t                 m_t_throttle;
 202                 int32_t                 m_t_ncmds;
 203                 int32_t                 m_reset_delay;
 204                 int32_t                 m_t_nwait;
 205 
 206                 uint16_t                m_qfull_retry_interval;
 207                 uint8_t                 m_qfull_retries;
 208                 uint16_t                m_enclosure;
 209                 uint16_t                m_slot_num;
 210                 uint32_t                m_tgt_unconfigured;

 211 
 212                 /*
 213                  * For the common case, the elements in this structure are
 214                  * protected by the per hba instance mutex. In order to make
 215                  * the key code path in ISR lockless, a separate mutex is
 216                  * introdeced to protect those shown in ISR.
 217                  */
 218                 kmutex_t                m_tgt_intr_mutex;
 219 
 220 } mptsas_target_t;
 221 
 222 typedef struct mptsas_smp {
 223         uint64_t        m_sasaddr;      /* hash key1 */
 224         mptsas_phymask_t m_phymask;     /* hash key2 */
 225         uint8_t         reserved1;
 226         uint16_t        m_devhdl;
 227         uint32_t        m_deviceinfo;
 228         uint16_t        m_pdevhdl;
 229         uint32_t        m_pdevinfo;
 230 } mptsas_smp_t;




   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
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  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 /*
  23  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  24  * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
  25  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  26  */
  27 
  28 /*
  29  * Copyright (c) 2000 to 2010, LSI Corporation.
  30  * All rights reserved.
  31  *
  32  * Redistribution and use in source and binary forms of all code within
  33  * this file that is exclusively owned by LSI, with or without
  34  * modification, is permitted provided that, in addition to the CDDL 1.0
  35  * License requirements, the following conditions are met:
  36  *
  37  *    Neither the name of the author nor the names of its contributors may be
  38  *    used to endorse or promote products derived from this software without
  39  *    specific prior written permission.
  40  *
  41  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  42  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  43  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  44  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  45  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,


 192                  * m_dr_flag is a flag for DR, make sure the member
 193                  * take the place of dr_flag of mptsas_hash_data.
 194                  */
 195                 uint8_t                 m_dr_flag;      /* dr_flag */
 196                 uint16_t                m_devhdl;
 197                 uint32_t                m_deviceinfo;
 198                 uint8_t                 m_phynum;
 199                 uint32_t                m_dups;
 200                 int32_t                 m_timeout;
 201                 int32_t                 m_timebase;
 202                 int32_t                 m_t_throttle;
 203                 int32_t                 m_t_ncmds;
 204                 int32_t                 m_reset_delay;
 205                 int32_t                 m_t_nwait;
 206 
 207                 uint16_t                m_qfull_retry_interval;
 208                 uint8_t                 m_qfull_retries;
 209                 uint16_t                m_enclosure;
 210                 uint16_t                m_slot_num;
 211                 uint32_t                m_tgt_unconfigured;
 212                 uint8_t                 m_led_status;
 213 
 214                 /*
 215                  * For the common case, the elements in this structure are
 216                  * protected by the per hba instance mutex. In order to make
 217                  * the key code path in ISR lockless, a separate mutex is
 218                  * introdeced to protect those shown in ISR.
 219                  */
 220                 kmutex_t                m_tgt_intr_mutex;
 221 
 222 } mptsas_target_t;
 223 
 224 typedef struct mptsas_smp {
 225         uint64_t        m_sasaddr;      /* hash key1 */
 226         mptsas_phymask_t m_phymask;     /* hash key2 */
 227         uint8_t         reserved1;
 228         uint16_t        m_devhdl;
 229         uint32_t        m_deviceinfo;
 230         uint16_t        m_pdevhdl;
 231         uint32_t        m_pdevinfo;
 232 } mptsas_smp_t;