2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Solaris MegaRAID device driver for SAS2.0 controllers
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Copyright (c) 2008-2012, LSI Logic Corporation.
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * All rights reserved.
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Swaminathan K S
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Arun Chandrashekhar
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Shakeel Bukhari
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonaldstruct mrsas_instance; /* This will be defined in mr_sas.h */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* raid->write_mode; raid->read_ahead; dcmd->state */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* Write through */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* Delayed Write */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* SCSI CDB definitions */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* maximum disks per array */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* maximum spans per logical drive */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald MR_LD_SPAN_MAP ldSpanMap[MAX_LOGICAL_DRIVES - 1];
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Raid Context structure which describes MegaRAID specific IO Parameters
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * This resides at offset 0x60 where the SGL normally starts in MPT IO Frames
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald U8 RAIDFlags; /* 0x18 resvd[7:6], ioSubType[5:4], */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald /* resvd[3:1], preferredCpu[0] */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald U8 numSGE; /* 0x19 numSge; not including chain entries */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald} MPI2_SCSI_IO_VENDOR_UNIQUE, MPI25_SCSI_IO_VENDOR_UNIQUE;
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * RAID SCSI IO Request Message
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Total SGE count will be one less
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * than _MPI2_SCSI_IO_REQUEST
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald uint16_t ApplicationTagTranslationMask; /* 0x32 */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald MPI2_SCSI_IO_VENDOR_UNIQUE RaidContext; /* 0x60 */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald} MPI2_RAID_SCSI_IO_REQUEST, MPI2_POINTER PTR_MPI2_RAID_SCSI_IO_REQUEST,
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonaldMpi2RaidSCSIIORequest_t, MPI2_POINTER pMpi2RaidSCSIIORequest_t;
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * define region lock types
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald REGION_TYPE_UNUSED = 0, /* lock is currently not active */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald REGION_TYPE_SHARED_READ = 1, /* shared lock (for reads) */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald REGION_TYPE_EXCLUSIVE = 3 /* exclusive lock (for writes) */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* declare valid Region locking values */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald /* for RAID 6 single-drive failure */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald uint32_t queue_info_new_phys_addr_lo; /* 18h */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald uint32_t queue_info_new_phys_addr_hi; /* 1Ch */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald uint32_t queue_info_old_phys_addr_lo; /* 20h */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald uint32_t queue_info_old_phys_addr_hi; /* 24h */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * Request descriptor types
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald * MPT RAID MFA IO Descriptor.
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald/* union of Request Descriptors */
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR HighPriority;
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR SCSITarget;
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR RAIDAccelerator;
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonaldU8 MR_ValidateMapInfo(MR_FW_RAID_MAP_ALL *map, PLD_LOAD_BALANCE_INFO lbInfo);
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonaldU8 MR_BuildRaidContext(struct mrsas_instance *, struct IO_REQUEST_INFO *,
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald MPI2_SCSI_IO_VENDOR_UNIQUE *, MR_FW_RAID_MAP_ALL *);
2ffc8bca2d4d633ffdea78ed925cd1ca63584844Dan McDonald#endif /* _LD_PD_MAP */