2005-04-17 02:20:36 +04:00
/*
*
* 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>
2016-12-24 22:46:01 +03:00
# include <linux/uaccess.h>
2005-04-17 02:20:36 +04:00
# include <linux/module.h>
# include <linux/moduleparam.h>
# include <linux/pci.h>
# include <linux/list.h>
2008-02-05 10:53:18 +03:00
# include <linux/miscdevice.h>
2005-04-17 02:20:36 +04:00
# include "mbox_defs.h"
# include "megaraid_ioctl.h"
2006-07-25 18:45:06 +04:00
# define LSI_COMMON_MOD_VERSION "2.20.2.7"
2005-04-17 02:20:36 +04:00
# define LSI_COMMON_MOD_EXT_VERSION \
2006-07-25 18:45:06 +04:00
" (Release Date: Sun Jul 16 00:01:03 EST 2006) "
2005-04-17 02:20:36 +04:00
# 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: