Merge branch 'for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
[linux-2.6-microblaze.git] / drivers / scsi / megaraid / megaraid_mm.h
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
60 typedef 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: