1*c12c399aSSascha Wildner /*- 2*c12c399aSSascha Wildner * Copyright (c) 2011 LSI Corp. 3*c12c399aSSascha Wildner * All rights reserved. 4*c12c399aSSascha Wildner * 5*c12c399aSSascha Wildner * Redistribution and use in source and binary forms, with or without 6*c12c399aSSascha Wildner * modification, are permitted provided that the following conditions 7*c12c399aSSascha Wildner * are met: 8*c12c399aSSascha Wildner * 1. Redistributions of source code must retain the above copyright 9*c12c399aSSascha Wildner * notice, this list of conditions and the following disclaimer. 10*c12c399aSSascha Wildner * 2. Redistributions in binary form must reproduce the above copyright 11*c12c399aSSascha Wildner * notice, this list of conditions and the following disclaimer in the 12*c12c399aSSascha Wildner * documentation and/or other materials provided with the distribution. 13*c12c399aSSascha Wildner * 14*c12c399aSSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*c12c399aSSascha Wildner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*c12c399aSSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*c12c399aSSascha Wildner * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*c12c399aSSascha Wildner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*c12c399aSSascha Wildner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*c12c399aSSascha Wildner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*c12c399aSSascha Wildner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*c12c399aSSascha Wildner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*c12c399aSSascha Wildner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*c12c399aSSascha Wildner * SUCH DAMAGE. 25*c12c399aSSascha Wildner * 26*c12c399aSSascha Wildner * LSI MPT-Fusion Host Adapter FreeBSD 27*c12c399aSSascha Wildner * 28*c12c399aSSascha Wildner * $FreeBSD: src/sys/dev/mps/mps_mapping.h,v 1.1 2012/01/26 18:17:21 ken Exp $ 29*c12c399aSSascha Wildner */ 30*c12c399aSSascha Wildner 31*c12c399aSSascha Wildner #ifndef _MPS_MAPPING_H 32*c12c399aSSascha Wildner #define _MPS_MAPPING_H 33*c12c399aSSascha Wildner 34*c12c399aSSascha Wildner /** 35*c12c399aSSascha Wildner * struct _map_phy_change - PHY entries recieved in Topology change list 36*c12c399aSSascha Wildner * @physical_id: SAS address of the device attached with the associate PHY 37*c12c399aSSascha Wildner * @device_info: bitfield provides detailed info about the device 38*c12c399aSSascha Wildner * @dev_handle: device handle for the device pointed by this entry 39*c12c399aSSascha Wildner * @slot: slot ID 40*c12c399aSSascha Wildner * @is_processed: Flag to indicate whether this entry is processed or not 41*c12c399aSSascha Wildner */ 42*c12c399aSSascha Wildner struct _map_phy_change { 43*c12c399aSSascha Wildner uint64_t physical_id; 44*c12c399aSSascha Wildner uint32_t device_info; 45*c12c399aSSascha Wildner uint16_t dev_handle; 46*c12c399aSSascha Wildner uint16_t slot; 47*c12c399aSSascha Wildner uint8_t reason; 48*c12c399aSSascha Wildner uint8_t is_processed; 49*c12c399aSSascha Wildner }; 50*c12c399aSSascha Wildner 51*c12c399aSSascha Wildner /** 52*c12c399aSSascha Wildner * struct _map_topology_change - entries to be removed from mapping table 53*c12c399aSSascha Wildner * @dpm_entry_num: index of this device in device persistent map table 54*c12c399aSSascha Wildner * @dev_handle: device handle for the device pointed by this entry 55*c12c399aSSascha Wildner */ 56*c12c399aSSascha Wildner struct _map_topology_change { 57*c12c399aSSascha Wildner uint16_t enc_handle; 58*c12c399aSSascha Wildner uint16_t exp_handle; 59*c12c399aSSascha Wildner uint8_t num_entries; 60*c12c399aSSascha Wildner uint8_t start_phy_num; 61*c12c399aSSascha Wildner uint8_t num_phys; 62*c12c399aSSascha Wildner uint8_t exp_status; 63*c12c399aSSascha Wildner struct _map_phy_change *phy_details; 64*c12c399aSSascha Wildner }; 65*c12c399aSSascha Wildner 66*c12c399aSSascha Wildner 67*c12c399aSSascha Wildner extern int 68*c12c399aSSascha Wildner mpssas_get_sas_address_for_sata_disk(struct mps_softc *ioc, 69*c12c399aSSascha Wildner u64 *sas_address, u16 handle, u32 device_info); 70*c12c399aSSascha Wildner 71*c12c399aSSascha Wildner #endif 72