/* * * Linux MegaRAID device driver * * Copyright (c) 2003-2004 LSI Logic Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * * FILE : megaraid_mm.h */ #ifndef MEGARAID_MM_H #define MEGARAID_MM_H #include <linux/spinlock.h> #include <linux/fs.h> #include <asm/uaccess.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/pci.h> #include <linux/list.h> #include <linux/miscdevice.h> #include "mbox_defs.h" #include "megaraid_ioctl.h" #define LSI_COMMON_MOD_VERSION "2.20.2.7" #define LSI_COMMON_MOD_EXT_VERSION \ "(Release Date: Sun Jul 16 00:01:03 EST 2006)" #define LSI_DBGLVL dbglevel // The smallest dma pool #define MRAID_MM_INIT_BUFF_SIZE 4096 /** * mimd_t : Old style ioctl packet structure (deprecated) * * @inlen : * @outlen : * @fca : * @opcode : * @subopcode : * @adapno : * @buffer : * @pad : * @length : * @mbox : * @pthru : * @data : * @pad : * * Note : This structure is DEPRECATED. New applications must use * : uioc_t structure instead. All new hba drivers use the new * : format. If we get this mimd packet, we will convert it into * : new uioc_t format and send it to the hba drivers. */ typedef struct mimd { uint32_t inlen; uint32_t outlen; union { uint8_t fca[16]; struct { uint8_t opcode; uint8_t subopcode; uint16_t adapno; #if BITS_PER_LONG == 32 uint8_t __user *buffer; uint8_t pad[4]; #endif #if BITS_PER_LONG == 64 uint8_t __user *buffer; #endif uint32_t length; } __attribute__ ((packed)) fcs; } __attribute__ ((packed)) ui; uint8_t mbox[18]; /* 16 bytes + 2 status bytes */ mraid_passthru_t pthru; #if BITS_PER_LONG == 32 char __user *data; /* buffer <= 4096 for 0x80 commands */ char pad[4]; #endif #if BITS_PER_LONG == 64 char __user *data; #endif } __attribute__ ((packed))mimd_t; #endif // MEGARAID_MM_H // vi: set ts=8 sw=8 tw=78: