162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Linux MegaRAID device driver 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (c) 2003-2004 LSI Logic Corporation. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * FILE : megaraid_mm.h 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef MEGARAID_MM_H 1262306a36Sopenharmony_ci#define MEGARAID_MM_H 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <linux/spinlock.h> 1562306a36Sopenharmony_ci#include <linux/fs.h> 1662306a36Sopenharmony_ci#include <linux/uaccess.h> 1762306a36Sopenharmony_ci#include <linux/module.h> 1862306a36Sopenharmony_ci#include <linux/moduleparam.h> 1962306a36Sopenharmony_ci#include <linux/pci.h> 2062306a36Sopenharmony_ci#include <linux/list.h> 2162306a36Sopenharmony_ci#include <linux/miscdevice.h> 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#include "mbox_defs.h" 2462306a36Sopenharmony_ci#include "megaraid_ioctl.h" 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci#define LSI_COMMON_MOD_VERSION "2.20.2.7" 2862306a36Sopenharmony_ci#define LSI_COMMON_MOD_EXT_VERSION \ 2962306a36Sopenharmony_ci "(Release Date: Sun Jul 16 00:01:03 EST 2006)" 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#define LSI_DBGLVL dbglevel 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci// The smallest dma pool 3562306a36Sopenharmony_ci#define MRAID_MM_INIT_BUFF_SIZE 4096 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci/** 3862306a36Sopenharmony_ci * mimd_t : Old style ioctl packet structure (deprecated) 3962306a36Sopenharmony_ci * 4062306a36Sopenharmony_ci * @inlen : 4162306a36Sopenharmony_ci * @outlen : 4262306a36Sopenharmony_ci * @fca : 4362306a36Sopenharmony_ci * @opcode : 4462306a36Sopenharmony_ci * @subopcode : 4562306a36Sopenharmony_ci * @adapno : 4662306a36Sopenharmony_ci * @buffer : 4762306a36Sopenharmony_ci * @pad : 4862306a36Sopenharmony_ci * @length : 4962306a36Sopenharmony_ci * @mbox : 5062306a36Sopenharmony_ci * @pthru : 5162306a36Sopenharmony_ci * @data : 5262306a36Sopenharmony_ci * @pad : 5362306a36Sopenharmony_ci * 5462306a36Sopenharmony_ci * Note : This structure is DEPRECATED. New applications must use 5562306a36Sopenharmony_ci * : uioc_t structure instead. All new hba drivers use the new 5662306a36Sopenharmony_ci * : format. If we get this mimd packet, we will convert it into 5762306a36Sopenharmony_ci * : new uioc_t format and send it to the hba drivers. 5862306a36Sopenharmony_ci */ 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_citypedef struct mimd { 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci uint32_t inlen; 6362306a36Sopenharmony_ci uint32_t outlen; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci union { 6662306a36Sopenharmony_ci uint8_t fca[16]; 6762306a36Sopenharmony_ci struct { 6862306a36Sopenharmony_ci uint8_t opcode; 6962306a36Sopenharmony_ci uint8_t subopcode; 7062306a36Sopenharmony_ci uint16_t adapno; 7162306a36Sopenharmony_ci#if BITS_PER_LONG == 32 7262306a36Sopenharmony_ci uint8_t __user *buffer; 7362306a36Sopenharmony_ci uint8_t pad[4]; 7462306a36Sopenharmony_ci#endif 7562306a36Sopenharmony_ci#if BITS_PER_LONG == 64 7662306a36Sopenharmony_ci uint8_t __user *buffer; 7762306a36Sopenharmony_ci#endif 7862306a36Sopenharmony_ci uint32_t length; 7962306a36Sopenharmony_ci } __attribute__ ((packed)) fcs; 8062306a36Sopenharmony_ci } __attribute__ ((packed)) ui; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci uint8_t mbox[18]; /* 16 bytes + 2 status bytes */ 8362306a36Sopenharmony_ci mraid_passthru_t pthru; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci#if BITS_PER_LONG == 32 8662306a36Sopenharmony_ci char __user *data; /* buffer <= 4096 for 0x80 commands */ 8762306a36Sopenharmony_ci char pad[4]; 8862306a36Sopenharmony_ci#endif 8962306a36Sopenharmony_ci#if BITS_PER_LONG == 64 9062306a36Sopenharmony_ci char __user *data; 9162306a36Sopenharmony_ci#endif 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci} __attribute__ ((packed))mimd_t; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci#endif // MEGARAID_MM_H 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci// vi: set ts=8 sw=8 tw=78: 98