linux/drivers/scsi/megaraid/megaraid_mm.h
<<
>>
Prefs
   1/*
   2 *
   3 *                      Linux MegaRAID device driver
   4 *
   5 * Copyright (c) 2003-2004  LSI Logic Corporation.
   6 *
   7 *         This program is free software; you can redistribute it and/or
   8 *         modify it under the terms of the GNU General Public License
   9 *         as published by the Free Software Foundation; either version
  10 *         2 of the License, or (at your option) any later version.
  11 *
  12 * FILE         : megaraid_mm.h
  13 */
  14
  15#ifndef MEGARAID_MM_H
  16#define MEGARAID_MM_H
  17
  18#include <linux/spinlock.h>
  19#include <linux/fs.h>
  20#include <asm/uaccess.h>
  21#include <linux/module.h>
  22#include <linux/moduleparam.h>
  23#include <linux/pci.h>
  24#include <linux/list.h>
  25#include <linux/miscdevice.h>
  26
  27#include "mbox_defs.h"
  28#include "megaraid_ioctl.h"
  29
  30
  31#define LSI_COMMON_MOD_VERSION  "2.20.2.7"
  32#define LSI_COMMON_MOD_EXT_VERSION      \
  33                "(Release Date: Sun Jul 16 00:01:03 EST 2006)"
  34
  35
  36#define LSI_DBGLVL                      dbglevel
  37
  38// The smallest dma pool
  39#define MRAID_MM_INIT_BUFF_SIZE         4096
  40
  41/**
  42 * mimd_t       : Old style ioctl packet structure (deprecated)
  43 *
  44 * @inlen       :
  45 * @outlen      :
  46 * @fca         :
  47 * @opcode      :
  48 * @subopcode   :
  49 * @adapno      :
  50 * @buffer      :
  51 * @pad         :
  52 * @length      :
  53 * @mbox        :
  54 * @pthru       :
  55 * @data        :
  56 * @pad         :
  57 *
  58 * Note         : This structure is DEPRECATED. New applications must use
  59 *              : uioc_t structure instead. All new hba drivers use the new
  60 *              : format. If we get this mimd packet, we will convert it into
  61 *              : new uioc_t format and send it to the hba drivers.
  62 */
  63
  64typedef struct mimd {
  65
  66        uint32_t inlen;
  67        uint32_t outlen;
  68
  69        union {
  70                uint8_t fca[16];
  71                struct {
  72                        uint8_t opcode;
  73                        uint8_t subopcode;
  74                        uint16_t adapno;
  75#if BITS_PER_LONG == 32
  76                        uint8_t __user *buffer;
  77                        uint8_t pad[4];
  78#endif
  79#if BITS_PER_LONG == 64
  80                        uint8_t __user *buffer;
  81#endif
  82                        uint32_t length;
  83                } __attribute__ ((packed)) fcs;
  84        } __attribute__ ((packed)) ui;
  85
  86        uint8_t mbox[18];               /* 16 bytes + 2 status bytes */
  87        mraid_passthru_t pthru;
  88
  89#if BITS_PER_LONG == 32
  90        char __user *data;              /* buffer <= 4096 for 0x80 commands */
  91        char pad[4];
  92#endif
  93#if BITS_PER_LONG == 64
  94        char __user *data;
  95#endif
  96
  97} __attribute__ ((packed))mimd_t;
  98
  99#endif // MEGARAID_MM_H
 100
 101// vi: set ts=8 sw=8 tw=78:
 102