18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci *			Linux MegaRAID device driver
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * Copyright (c) 2003-2004  LSI Logic Corporation.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * FILE		: megaraid_mm.h
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#ifndef MEGARAID_MM_H
128c2ecf20Sopenharmony_ci#define MEGARAID_MM_H
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#include <linux/spinlock.h>
158c2ecf20Sopenharmony_ci#include <linux/fs.h>
168c2ecf20Sopenharmony_ci#include <linux/uaccess.h>
178c2ecf20Sopenharmony_ci#include <linux/module.h>
188c2ecf20Sopenharmony_ci#include <linux/moduleparam.h>
198c2ecf20Sopenharmony_ci#include <linux/pci.h>
208c2ecf20Sopenharmony_ci#include <linux/list.h>
218c2ecf20Sopenharmony_ci#include <linux/miscdevice.h>
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci#include "mbox_defs.h"
248c2ecf20Sopenharmony_ci#include "megaraid_ioctl.h"
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci#define LSI_COMMON_MOD_VERSION	"2.20.2.7"
288c2ecf20Sopenharmony_ci#define LSI_COMMON_MOD_EXT_VERSION	\
298c2ecf20Sopenharmony_ci		"(Release Date: Sun Jul 16 00:01:03 EST 2006)"
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#define LSI_DBGLVL			dbglevel
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci// The smallest dma pool
358c2ecf20Sopenharmony_ci#define MRAID_MM_INIT_BUFF_SIZE		4096
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci/**
388c2ecf20Sopenharmony_ci * mimd_t	: Old style ioctl packet structure (deprecated)
398c2ecf20Sopenharmony_ci *
408c2ecf20Sopenharmony_ci * @inlen	:
418c2ecf20Sopenharmony_ci * @outlen	:
428c2ecf20Sopenharmony_ci * @fca		:
438c2ecf20Sopenharmony_ci * @opcode	:
448c2ecf20Sopenharmony_ci * @subopcode	:
458c2ecf20Sopenharmony_ci * @adapno	:
468c2ecf20Sopenharmony_ci * @buffer	:
478c2ecf20Sopenharmony_ci * @pad		:
488c2ecf20Sopenharmony_ci * @length	:
498c2ecf20Sopenharmony_ci * @mbox	:
508c2ecf20Sopenharmony_ci * @pthru	:
518c2ecf20Sopenharmony_ci * @data	:
528c2ecf20Sopenharmony_ci * @pad		:
538c2ecf20Sopenharmony_ci *
548c2ecf20Sopenharmony_ci * Note		: This structure is DEPRECATED. New applications must use
558c2ecf20Sopenharmony_ci *		: uioc_t structure instead. All new hba drivers use the new
568c2ecf20Sopenharmony_ci *		: format. If we get this mimd packet, we will convert it into
578c2ecf20Sopenharmony_ci *		: new uioc_t format and send it to the hba drivers.
588c2ecf20Sopenharmony_ci */
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_citypedef struct mimd {
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci	uint32_t inlen;
638c2ecf20Sopenharmony_ci	uint32_t outlen;
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci	union {
668c2ecf20Sopenharmony_ci		uint8_t fca[16];
678c2ecf20Sopenharmony_ci		struct {
688c2ecf20Sopenharmony_ci			uint8_t opcode;
698c2ecf20Sopenharmony_ci			uint8_t subopcode;
708c2ecf20Sopenharmony_ci			uint16_t adapno;
718c2ecf20Sopenharmony_ci#if BITS_PER_LONG == 32
728c2ecf20Sopenharmony_ci			uint8_t __user *buffer;
738c2ecf20Sopenharmony_ci			uint8_t pad[4];
748c2ecf20Sopenharmony_ci#endif
758c2ecf20Sopenharmony_ci#if BITS_PER_LONG == 64
768c2ecf20Sopenharmony_ci			uint8_t __user *buffer;
778c2ecf20Sopenharmony_ci#endif
788c2ecf20Sopenharmony_ci			uint32_t length;
798c2ecf20Sopenharmony_ci		} __attribute__ ((packed)) fcs;
808c2ecf20Sopenharmony_ci	} __attribute__ ((packed)) ui;
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci	uint8_t mbox[18];		/* 16 bytes + 2 status bytes */
838c2ecf20Sopenharmony_ci	mraid_passthru_t pthru;
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci#if BITS_PER_LONG == 32
868c2ecf20Sopenharmony_ci	char __user *data;		/* buffer <= 4096 for 0x80 commands */
878c2ecf20Sopenharmony_ci	char pad[4];
888c2ecf20Sopenharmony_ci#endif
898c2ecf20Sopenharmony_ci#if BITS_PER_LONG == 64
908c2ecf20Sopenharmony_ci	char __user *data;
918c2ecf20Sopenharmony_ci#endif
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci} __attribute__ ((packed))mimd_t;
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci#endif // MEGARAID_MM_H
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci// vi: set ts=8 sw=8 tw=78:
98