]> git.ipfire.org Git - people/ms/linux.git/blob - drivers/scsi/megaraid/megaraid_mm.h
Linux-2.6.12-rc2
[people/ms/linux.git] / drivers / scsi / megaraid / megaraid_mm.h
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/version.h>
22 #include <linux/module.h>
23 #include <linux/moduleparam.h>
24 #include <linux/pci.h>
25 #include <linux/list.h>
26 #include <linux/ioctl32.h>
27
28 #include "mbox_defs.h"
29 #include "megaraid_ioctl.h"
30
31
32 #define LSI_COMMON_MOD_VERSION "2.20.2.5"
33 #define LSI_COMMON_MOD_EXT_VERSION \
34 "(Release Date: Fri Jan 21 00:01:03 EST 2005)"
35
36
37 #define LSI_DBGLVL dbglevel
38
39 // The smallest dma pool
40 #define MRAID_MM_INIT_BUFF_SIZE 4096
41
42 /**
43 * mimd_t : Old style ioctl packet structure (deprecated)
44 *
45 * @inlen :
46 * @outlen :
47 * @fca :
48 * @opcode :
49 * @subopcode :
50 * @adapno :
51 * @buffer :
52 * @pad :
53 * @length :
54 * @mbox :
55 * @pthru :
56 * @data :
57 * @pad :
58 *
59 * Note : This structure is DEPRECATED. New applications must use
60 * : uioc_t structure instead. All new hba drivers use the new
61 * : format. If we get this mimd packet, we will convert it into
62 * : new uioc_t format and send it to the hba drivers.
63 */
64
65 typedef struct mimd {
66
67 uint32_t inlen;
68 uint32_t outlen;
69
70 union {
71 uint8_t fca[16];
72 struct {
73 uint8_t opcode;
74 uint8_t subopcode;
75 uint16_t adapno;
76 #if BITS_PER_LONG == 32
77 uint8_t __user *buffer;
78 uint8_t pad[4];
79 #endif
80 #if BITS_PER_LONG == 64
81 uint8_t __user *buffer;
82 #endif
83 uint32_t length;
84 } __attribute__ ((packed)) fcs;
85 } __attribute__ ((packed)) ui;
86
87 uint8_t mbox[18]; /* 16 bytes + 2 status bytes */
88 mraid_passthru_t pthru;
89
90 #if BITS_PER_LONG == 32
91 char __user *data; /* buffer <= 4096 for 0x80 commands */
92 char pad[4];
93 #endif
94 #if BITS_PER_LONG == 64
95 char __user *data;
96 #endif
97
98 } __attribute__ ((packed))mimd_t;
99
100 #endif // MEGARAID_MM_H
101
102 // vi: set ts=8 sw=8 tw=78: