1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 *
4 *			Linux MegaRAID device driver
5 *
6 * Copyright (c) 2003-2004  LSI Logic Corporation.
7 *
8 * FILE		: megaraid_mm.h
9 */
10
11#ifndef MEGARAID_MM_H
12#define MEGARAID_MM_H
13
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			dbglevel
33
34// The smallest dma pool
35#define MRAID_MM_INIT_BUFF_SIZE		4096
36
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 use
55 *		: uioc_t structure instead. All new hba drivers use the new
56 *		: format. If we get this mimd packet, we will convert it into
57 *		: 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 == 32
72			uint8_t __user *buffer;
73			uint8_t pad[4];
74#endif
75#if BITS_PER_LONG == 64
76			uint8_t __user *buffer;
77#endif
78			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 == 32
86	char __user *data;		/* buffer <= 4096 for 0x80 commands */
87	char pad[4];
88#endif
89#if BITS_PER_LONG == 64
90	char __user *data;
91#endif
92
93} __attribute__ ((packed))mimd_t;
94
95#endif // MEGARAID_MM_H
96
97// vi: set ts=8 sw=8 tw=78:
98