98 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 *4 * Linux MegaRAID device driver5 *6 * Copyright (c) 2003-2004 LSI Logic Corporation.7 *8 * FILE : megaraid_mm.h9 */10 11#ifndef MEGARAID_MM_H12#define MEGARAID_MM_H13 14#include <linux/spinlock.h>15#include <linux/fs.h>16#include <linux/uaccess.h>17#include <linux/module.h>18#include <linux/moduleparam.h>19#include <linux/pci.h>20#include <linux/list.h>21#include <linux/miscdevice.h>22 23#include "mbox_defs.h"24#include "megaraid_ioctl.h"25 26 27#define LSI_COMMON_MOD_VERSION "2.20.2.7"28#define LSI_COMMON_MOD_EXT_VERSION \29 "(Release Date: Sun Jul 16 00:01:03 EST 2006)"30 31 32#define LSI_DBGLVL dbglevel33 34// The smallest dma pool35#define MRAID_MM_INIT_BUFF_SIZE 409636 37/**38 * mimd_t : Old style ioctl packet structure (deprecated)39 *40 * @inlen :41 * @outlen :42 * @fca :43 * @opcode :44 * @subopcode :45 * @adapno :46 * @buffer :47 * @pad :48 * @length :49 * @mbox :50 * @pthru :51 * @data :52 * @pad :53 *54 * Note : This structure is DEPRECATED. New applications must use55 * : uioc_t structure instead. All new hba drivers use the new56 * : format. If we get this mimd packet, we will convert it into57 * : new uioc_t format and send it to the hba drivers.58 */59 60typedef struct mimd {61 62 uint32_t inlen;63 uint32_t outlen;64 65 union {66 uint8_t fca[16];67 struct {68 uint8_t opcode;69 uint8_t subopcode;70 uint16_t adapno;71#if BITS_PER_LONG == 3272 uint8_t __user *buffer;73 uint8_t pad[4];74#endif75#if BITS_PER_LONG == 6476 uint8_t __user *buffer;77#endif78 uint32_t length;79 } __attribute__ ((packed)) fcs;80 } __attribute__ ((packed)) ui;81 82 uint8_t mbox[18]; /* 16 bytes + 2 status bytes */83 mraid_passthru_t pthru;84 85#if BITS_PER_LONG == 3286 char __user *data; /* buffer <= 4096 for 0x80 commands */87 char pad[4];88#endif89#if BITS_PER_LONG == 6490 char __user *data;91#endif92 93} __attribute__ ((packed))mimd_t;94 95#endif // MEGARAID_MM_H96 97// vi: set ts=8 sw=8 tw=78:98