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: