162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci *			Linux MegaRAID device driver
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (c) 2003-2004  LSI Logic Corporation.
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * FILE		: megaraid_mm.h
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#ifndef MEGARAID_MM_H
1262306a36Sopenharmony_ci#define MEGARAID_MM_H
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <linux/spinlock.h>
1562306a36Sopenharmony_ci#include <linux/fs.h>
1662306a36Sopenharmony_ci#include <linux/uaccess.h>
1762306a36Sopenharmony_ci#include <linux/module.h>
1862306a36Sopenharmony_ci#include <linux/moduleparam.h>
1962306a36Sopenharmony_ci#include <linux/pci.h>
2062306a36Sopenharmony_ci#include <linux/list.h>
2162306a36Sopenharmony_ci#include <linux/miscdevice.h>
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#include "mbox_defs.h"
2462306a36Sopenharmony_ci#include "megaraid_ioctl.h"
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci#define LSI_COMMON_MOD_VERSION	"2.20.2.7"
2862306a36Sopenharmony_ci#define LSI_COMMON_MOD_EXT_VERSION	\
2962306a36Sopenharmony_ci		"(Release Date: Sun Jul 16 00:01:03 EST 2006)"
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#define LSI_DBGLVL			dbglevel
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci// The smallest dma pool
3562306a36Sopenharmony_ci#define MRAID_MM_INIT_BUFF_SIZE		4096
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci/**
3862306a36Sopenharmony_ci * mimd_t	: Old style ioctl packet structure (deprecated)
3962306a36Sopenharmony_ci *
4062306a36Sopenharmony_ci * @inlen	:
4162306a36Sopenharmony_ci * @outlen	:
4262306a36Sopenharmony_ci * @fca		:
4362306a36Sopenharmony_ci * @opcode	:
4462306a36Sopenharmony_ci * @subopcode	:
4562306a36Sopenharmony_ci * @adapno	:
4662306a36Sopenharmony_ci * @buffer	:
4762306a36Sopenharmony_ci * @pad		:
4862306a36Sopenharmony_ci * @length	:
4962306a36Sopenharmony_ci * @mbox	:
5062306a36Sopenharmony_ci * @pthru	:
5162306a36Sopenharmony_ci * @data	:
5262306a36Sopenharmony_ci * @pad		:
5362306a36Sopenharmony_ci *
5462306a36Sopenharmony_ci * Note		: This structure is DEPRECATED. New applications must use
5562306a36Sopenharmony_ci *		: uioc_t structure instead. All new hba drivers use the new
5662306a36Sopenharmony_ci *		: format. If we get this mimd packet, we will convert it into
5762306a36Sopenharmony_ci *		: new uioc_t format and send it to the hba drivers.
5862306a36Sopenharmony_ci */
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_citypedef struct mimd {
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	uint32_t inlen;
6362306a36Sopenharmony_ci	uint32_t outlen;
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	union {
6662306a36Sopenharmony_ci		uint8_t fca[16];
6762306a36Sopenharmony_ci		struct {
6862306a36Sopenharmony_ci			uint8_t opcode;
6962306a36Sopenharmony_ci			uint8_t subopcode;
7062306a36Sopenharmony_ci			uint16_t adapno;
7162306a36Sopenharmony_ci#if BITS_PER_LONG == 32
7262306a36Sopenharmony_ci			uint8_t __user *buffer;
7362306a36Sopenharmony_ci			uint8_t pad[4];
7462306a36Sopenharmony_ci#endif
7562306a36Sopenharmony_ci#if BITS_PER_LONG == 64
7662306a36Sopenharmony_ci			uint8_t __user *buffer;
7762306a36Sopenharmony_ci#endif
7862306a36Sopenharmony_ci			uint32_t length;
7962306a36Sopenharmony_ci		} __attribute__ ((packed)) fcs;
8062306a36Sopenharmony_ci	} __attribute__ ((packed)) ui;
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci	uint8_t mbox[18];		/* 16 bytes + 2 status bytes */
8362306a36Sopenharmony_ci	mraid_passthru_t pthru;
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci#if BITS_PER_LONG == 32
8662306a36Sopenharmony_ci	char __user *data;		/* buffer <= 4096 for 0x80 commands */
8762306a36Sopenharmony_ci	char pad[4];
8862306a36Sopenharmony_ci#endif
8962306a36Sopenharmony_ci#if BITS_PER_LONG == 64
9062306a36Sopenharmony_ci	char __user *data;
9162306a36Sopenharmony_ci#endif
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci} __attribute__ ((packed))mimd_t;
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci#endif // MEGARAID_MM_H
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci// vi: set ts=8 sw=8 tw=78:
98