xref: /openbmc/linux/drivers/scsi/megaraid/megaraid_mm.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  *
41da177e4SLinus Torvalds  *			Linux MegaRAID device driver
51da177e4SLinus Torvalds  *
61da177e4SLinus Torvalds  * Copyright (c) 2003-2004  LSI Logic Corporation.
71da177e4SLinus Torvalds  *
81da177e4SLinus Torvalds  * FILE		: megaraid_mm.h
91da177e4SLinus Torvalds  */
101da177e4SLinus Torvalds 
111da177e4SLinus Torvalds #ifndef MEGARAID_MM_H
121da177e4SLinus Torvalds #define MEGARAID_MM_H
131da177e4SLinus Torvalds 
141da177e4SLinus Torvalds #include <linux/spinlock.h>
151da177e4SLinus Torvalds #include <linux/fs.h>
167c0f6ba6SLinus Torvalds #include <linux/uaccess.h>
171da177e4SLinus Torvalds #include <linux/module.h>
181da177e4SLinus Torvalds #include <linux/moduleparam.h>
191da177e4SLinus Torvalds #include <linux/pci.h>
201da177e4SLinus Torvalds #include <linux/list.h>
2190a95af8SThomas Horsten #include <linux/miscdevice.h>
221da177e4SLinus Torvalds 
231da177e4SLinus Torvalds #include "mbox_defs.h"
241da177e4SLinus Torvalds #include "megaraid_ioctl.h"
251da177e4SLinus Torvalds 
261da177e4SLinus Torvalds 
270b4972d5SJu, Seokmann #define LSI_COMMON_MOD_VERSION	"2.20.2.7"
281da177e4SLinus Torvalds #define LSI_COMMON_MOD_EXT_VERSION	\
290b4972d5SJu, Seokmann 		"(Release Date: Sun Jul 16 00:01:03 EST 2006)"
301da177e4SLinus Torvalds 
311da177e4SLinus Torvalds 
321da177e4SLinus Torvalds #define LSI_DBGLVL			dbglevel
331da177e4SLinus Torvalds 
341da177e4SLinus Torvalds // The smallest dma pool
351da177e4SLinus Torvalds #define MRAID_MM_INIT_BUFF_SIZE		4096
361da177e4SLinus Torvalds 
371da177e4SLinus Torvalds /**
381da177e4SLinus Torvalds  * mimd_t	: Old style ioctl packet structure (deprecated)
391da177e4SLinus Torvalds  *
401da177e4SLinus Torvalds  * @inlen	:
411da177e4SLinus Torvalds  * @outlen	:
421da177e4SLinus Torvalds  * @fca		:
431da177e4SLinus Torvalds  * @opcode	:
441da177e4SLinus Torvalds  * @subopcode	:
451da177e4SLinus Torvalds  * @adapno	:
461da177e4SLinus Torvalds  * @buffer	:
471da177e4SLinus Torvalds  * @pad		:
481da177e4SLinus Torvalds  * @length	:
491da177e4SLinus Torvalds  * @mbox	:
501da177e4SLinus Torvalds  * @pthru	:
511da177e4SLinus Torvalds  * @data	:
521da177e4SLinus Torvalds  * @pad		:
531da177e4SLinus Torvalds  *
541da177e4SLinus Torvalds  * Note		: This structure is DEPRECATED. New applications must use
551da177e4SLinus Torvalds  *		: uioc_t structure instead. All new hba drivers use the new
561da177e4SLinus Torvalds  *		: format. If we get this mimd packet, we will convert it into
571da177e4SLinus Torvalds  *		: new uioc_t format and send it to the hba drivers.
581da177e4SLinus Torvalds  */
591da177e4SLinus Torvalds 
601da177e4SLinus Torvalds typedef struct mimd {
611da177e4SLinus Torvalds 
621da177e4SLinus Torvalds 	uint32_t inlen;
631da177e4SLinus Torvalds 	uint32_t outlen;
641da177e4SLinus Torvalds 
651da177e4SLinus Torvalds 	union {
661da177e4SLinus Torvalds 		uint8_t fca[16];
671da177e4SLinus Torvalds 		struct {
681da177e4SLinus Torvalds 			uint8_t opcode;
691da177e4SLinus Torvalds 			uint8_t subopcode;
701da177e4SLinus Torvalds 			uint16_t adapno;
711da177e4SLinus Torvalds #if BITS_PER_LONG == 32
721da177e4SLinus Torvalds 			uint8_t __user *buffer;
731da177e4SLinus Torvalds 			uint8_t pad[4];
741da177e4SLinus Torvalds #endif
751da177e4SLinus Torvalds #if BITS_PER_LONG == 64
761da177e4SLinus Torvalds 			uint8_t __user *buffer;
771da177e4SLinus Torvalds #endif
781da177e4SLinus Torvalds 			uint32_t length;
791da177e4SLinus Torvalds 		} __attribute__ ((packed)) fcs;
801da177e4SLinus Torvalds 	} __attribute__ ((packed)) ui;
811da177e4SLinus Torvalds 
821da177e4SLinus Torvalds 	uint8_t mbox[18];		/* 16 bytes + 2 status bytes */
831da177e4SLinus Torvalds 	mraid_passthru_t pthru;
841da177e4SLinus Torvalds 
851da177e4SLinus Torvalds #if BITS_PER_LONG == 32
861da177e4SLinus Torvalds 	char __user *data;		/* buffer <= 4096 for 0x80 commands */
871da177e4SLinus Torvalds 	char pad[4];
881da177e4SLinus Torvalds #endif
891da177e4SLinus Torvalds #if BITS_PER_LONG == 64
901da177e4SLinus Torvalds 	char __user *data;
911da177e4SLinus Torvalds #endif
921da177e4SLinus Torvalds 
931da177e4SLinus Torvalds } __attribute__ ((packed))mimd_t;
941da177e4SLinus Torvalds 
951da177e4SLinus Torvalds #endif // MEGARAID_MM_H
961da177e4SLinus Torvalds 
971da177e4SLinus Torvalds // vi: set ts=8 sw=8 tw=78:
98