The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/mrsas/mrsas_ioctl.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2015, AVAGO Tech. All rights reserved. Author: Marian Choy
    3  * Copyright (c) 2014, LSI Corp. All rights reserved. Author: Marian Choy
    4  * Support: freebsdraid@avagotech.com
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions are
    8  * met:
    9  *
   10  * 1. Redistributions of source code must retain the above copyright notice,
   11  * this list of conditions and the following disclaimer. 2. Redistributions
   12  * in binary form must reproduce the above copyright notice, this list of
   13  * conditions and the following disclaimer in the documentation and/or other
   14  * materials provided with the distribution. 3. Neither the name of the
   15  * <ORGANIZATION> nor the names of its contributors may be used to endorse or
   16  * promote products derived from this software without specific prior written
   17  * permission.
   18  *
   19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   29  * POSSIBILITY OF SUCH DAMAGE.
   30  *
   31  * The views and conclusions contained in the software and documentation are
   32  * those of the authors and should not be interpreted as representing
   33  * official policies,either expressed or implied, of the FreeBSD Project.
   34  *
   35  * Send feedback to: <megaraidfbsd@avagotech.com> Mail to: AVAGO TECHNOLOGIES, 1621
   36  * Barber Lane, Milpitas, CA 95035 ATTN: MegaRaid FreeBSD
   37  *
   38  */
   39 
   40 #include <sys/cdefs.h>
   41 __FBSDID("$FreeBSD$");
   42 
   43 #ifndef MRSAS_IOCTL_H
   44 #define MRSAS_IOCTL_H
   45 
   46 #ifndef _IOWR
   47 #include <sys/ioccom.h>
   48 #endif                                  /* !_IOWR */
   49 
   50 #ifdef COMPAT_FREEBSD32
   51 /* Compilation error FIX */
   52 #if (__FreeBSD_version <= 900000)
   53 #include <sys/socket.h>
   54 #endif
   55 #include <sys/mount.h>
   56 #include <compat/freebsd32/freebsd32.h>
   57 #endif
   58 
   59 /*
   60  * We need to use the same values as the mfi driver until MegaCli adds
   61  * support for this (mrsas) driver: M is for MegaRAID. (This is typically the
   62  * vendor or product initial) 1 arbitrary. (This may be used to segment kinds
   63  * of commands.  (1-9 status, 10-20 policy, etc.) struct mrsas_iocpacket
   64  * (sizeof() this parameter will be used.) These three values are encoded
   65  * into a somewhat unique, 32-bit value.
   66  */
   67 
   68 #define MRSAS_IOC_GET_PCI_INFO                          _IOR('M', 7, MRSAS_DRV_PCI_INFORMATION)
   69 #define MRSAS_IOC_FIRMWARE_PASS_THROUGH64       _IOWR('M', 1, struct mrsas_iocpacket)
   70 #ifdef COMPAT_FREEBSD32
   71 #define MRSAS_IOC_FIRMWARE_PASS_THROUGH32       _IOWR('M', 1, struct mrsas_iocpacket32)
   72 #endif
   73 
   74 #define MRSAS_IOC_SCAN_BUS              _IO('M',  10)
   75 
   76 #define MRSAS_LINUX_CMD32               0xc1144d01
   77 
   78 #define MAX_IOCTL_SGE                   16
   79 #define MFI_FRAME_DIR_READ              0x0010
   80 #define MFI_CMD_LD_SCSI_IO              0x03
   81 
   82 #define INQUIRY_CMD                             0x12
   83 #define INQUIRY_CMDLEN                  6
   84 #define INQUIRY_REPLY_LEN               96
   85 #define INQUIRY_VENDOR                  8       /* Offset in reply data to
   86                                                  * vendor name */
   87 #define SCSI_SENSE_BUFFERSIZE   96
   88 
   89 #define MEGAMFI_RAW_FRAME_SIZE  128
   90 
   91 #pragma pack(1)
   92 struct mrsas_iocpacket {
   93         u_int16_t host_no;
   94         u_int16_t __pad1;
   95         u_int32_t sgl_off;
   96         u_int32_t sge_count;
   97         u_int32_t sense_off;
   98         u_int32_t sense_len;
   99         union {
  100                 u_int8_t raw[MEGAMFI_RAW_FRAME_SIZE];
  101                 struct mrsas_header hdr;
  102         }       frame;
  103         struct iovec sgl[MAX_IOCTL_SGE];
  104 };
  105 
  106 #pragma pack()
  107 
  108 #ifdef COMPAT_FREEBSD32
  109 #pragma pack(1)
  110 struct mrsas_iocpacket32 {
  111         u_int16_t host_no;
  112         u_int16_t __pad1;
  113         u_int32_t sgl_off;
  114         u_int32_t sge_count;
  115         u_int32_t sense_off;
  116         u_int32_t sense_len;
  117         union {
  118                 u_int8_t raw[MEGAMFI_RAW_FRAME_SIZE];
  119                 struct mrsas_header hdr;
  120         }       frame;
  121         struct iovec32 sgl[MAX_IOCTL_SGE];
  122 };
  123 
  124 #pragma pack()
  125 #endif                                  /* COMPAT_FREEBSD32 */
  126 
  127 #endif                                  /* MRSAS_IOCTL_H */

Cache object: dcc9f3b7c10a878441d9cd52d6328abb


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.