[go: nahoru, domu]

11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*****************************************************************************/
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* srp.h -- SCSI RDMA Protocol definitions                                   */
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Written By: Colin Devilbis, IBM Corporation                               */
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Copyright (C) 2003 IBM Corporation                                        */
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* This program is free software; you can redistribute it and/or modify      */
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* it under the terms of the GNU General Public License as published by      */
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* the Free Software Foundation; either version 2 of the License, or         */
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* (at your option) any later version.                                       */
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* This program is distributed in the hope that it will be useful,           */
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* but WITHOUT ANY WARRANTY; without even the implied warranty of            */
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             */
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* GNU General Public License for more details.                              */
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* You should have received a copy of the GNU General Public License         */
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* along with this program; if not, write to the Free Software               */
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* This file contains structures and definitions for IBM RPA (RS/6000        */
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* platform architecture) implementation of the SRP (SCSI RDMA Protocol)     */
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* standard.  SRP is used on IBM iSeries and pSeries platforms to send SCSI  */
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* commands between logical partitions.                                      */
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*                                                                           */
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* SRP Information Units (IUs) are sent on a "Command/Response Queue" (CRQ)  */
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* between partitions.  The definitions in this file are architected,        */
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* and cannot be changed without breaking compatibility with other versions  */
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* of Linux and other operating systems (AIX, OS/400) that talk this protocol*/
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* between logical partitions                                                */
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*****************************************************************************/
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef VIOSRP_H
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define VIOSRP_H
36ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori#include <scsi/srp.h>
37ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori
38ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori#define SRP_VERSION "16.a"
39ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori#define SRP_MAX_IU_LEN	256
40126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King#define SRP_MAX_LOC_LEN 32
41ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori
42ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonoriunion srp_iu {
43ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_login_req login_req;
44ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_login_rsp login_rsp;
45ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_login_rej login_rej;
46ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_i_logout i_logout;
47ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_t_logout t_logout;
48ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_tsk_mgmt tsk_mgmt;
49ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_cmd cmd;
50ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	struct srp_rsp rsp;
51ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori	u8 reserved[SRP_MAX_IU_LEN];
52ef265673434680f2307ceafae4a2badc657e94ccFUJITA Tomonori};
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsenum viosrp_crq_formats {
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_SRP_FORMAT = 0x01,
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_MAD_FORMAT = 0x02,
571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_OS400_FORMAT = 0x03,
581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_AIX_FORMAT = 0x04,
591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_LINUX_FORMAT = 0x06,
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_INLINE_FORMAT = 0x07
611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
63c3a3b55ae80a0d595445064159c69f8e80911e85Brian Kingenum viosrp_crq_status {
64c3a3b55ae80a0d595445064159c69f8e80911e85Brian King	VIOSRP_OK = 0x0,
65c3a3b55ae80a0d595445064159c69f8e80911e85Brian King	VIOSRP_NONRECOVERABLE_ERR = 0x1,
66c3a3b55ae80a0d595445064159c69f8e80911e85Brian King	VIOSRP_VIOLATES_MAX_XFER = 0x2,
67c3a3b55ae80a0d595445064159c69f8e80911e85Brian King	VIOSRP_PARTNER_PANIC = 0x3,
68c3a3b55ae80a0d595445064159c69f8e80911e85Brian King	VIOSRP_DEVICE_BUSY = 0x8,
69ca61668b82a902143997794aae3f681a602e6ebcBrian King	VIOSRP_ADAPTER_FAIL = 0x10,
70ca61668b82a902143997794aae3f681a602e6ebcBrian King	VIOSRP_OK2 = 0x99,
71c3a3b55ae80a0d595445064159c69f8e80911e85Brian King};
72c3a3b55ae80a0d595445064159c69f8e80911e85Brian King
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct viosrp_crq {
741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8 valid;		/* used by RPA */
751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8 format;		/* SCSI vs out-of-band */
761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8 reserved;
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8 status;		/* non-scsi failure? (e.g. DMA failure) */
7872264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be16 timeout;		/* in seconds */
7972264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be16 IU_length;		/* in bytes */
8072264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be64 IU_data_ptr;	/* the TCE for transferring data */
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* MADs are Management requests above and beyond the IUs defined in the SRP
841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * standard.
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsenum viosrp_mad_types {
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_EMPTY_IU_TYPE = 0x01,
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_ERROR_LOG_TYPE = 0x02,
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	VIOSRP_ADAPTER_INFO_TYPE = 0x03,
90c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings	VIOSRP_HOST_CONFIG_TYPE = 0x04,
91126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	VIOSRP_CAPABILITIES_TYPE = 0x05,
92c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings	VIOSRP_ENABLE_FAST_FAIL = 0x08,
93c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings};
94c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings
95c1988e3123751fd425fbae99d5c1776608e965a9Robert Jenningsenum viosrp_mad_status {
96c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings	VIOSRP_MAD_SUCCESS = 0x00,
97c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings	VIOSRP_MAD_NOT_SUPPORTED = 0xF1,
98c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings	VIOSRP_MAD_FAILED = 0xF7,
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
101126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingenum viosrp_capability_type {
102126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	MIGRATION_CAPABILITIES = 0x01,
103126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	RESERVATION_CAPABILITIES = 0x02,
104126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
105126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
106126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingenum viosrp_capability_support {
107126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	SERVER_DOES_NOT_SUPPORTS_CAP = 0x0,
108126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	SERVER_SUPPORTS_CAP = 0x01,
109126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	SERVER_CAP_DATA = 0x02,
110126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
111126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
112126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingenum viosrp_reserve_type {
113126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	CLIENT_RESERVE_SCSI_2 = 0x01,
114126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
115126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
116126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingenum viosrp_capability_flag {
117126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	CLIENT_MIGRATED = 0x01,
118126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	CLIENT_RECONNECT = 0x02,
119126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	CAP_LIST_SUPPORTED = 0x04,
120126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	CAP_LIST_DATA = 0x08,
121126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
122126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Common MAD header
1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct mad_common {
12772264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 type;
12872264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be16 status;
12972264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be16 length;
13072264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be64 tag;
1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * All SRP (and MAD) requests normally flow from the
1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * client to the server.  There is no way for the server to send
1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * an asynchronous message back to the client.  The Empty IU is used
1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * to hang out a meaningless request to the server so that it can respond
1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * asynchrouously with something like a SCSI AER
1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct viosrp_empty_iu {
1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct mad_common common;
14272264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be64 buffer;
14372264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 port;
1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct viosrp_error_log {
1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct mad_common common;
14872264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be64 buffer;
1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct viosrp_adapter_info {
1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct mad_common common;
15372264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be64 buffer;
1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct viosrp_host_config {
1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct mad_common common;
15872264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be64 buffer;
1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
161c1988e3123751fd425fbae99d5c1776608e965a9Robert Jenningsstruct viosrp_fast_fail {
162c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings	struct mad_common common;
163c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings};
164c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings
165126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingstruct viosrp_capabilities {
166126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	struct mad_common common;
16772264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be64 buffer;
168126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
169126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
170126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingstruct mad_capability_common {
17172264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 cap_type;
17272264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be16 length;
17372264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be16 server_support;
174126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
175126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
176126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingstruct mad_reserve_cap {
177126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	struct mad_capability_common common;
17872264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 type;
179126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
180126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
181126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingstruct mad_migration_cap {
182126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	struct mad_capability_common common;
18372264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 ecl;
184126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
185126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
186126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian Kingstruct capabilities{
18772264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 flags;
188126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	char name[SRP_MAX_LOC_LEN];
189126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	char loc[SRP_MAX_LOC_LEN];
190126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	struct mad_migration_cap migration;
191126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	struct mad_reserve_cap reserve;
192126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King};
193126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King
1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsunion mad_iu {
1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct viosrp_empty_iu empty_iu;
1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct viosrp_error_log error_log;
1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct viosrp_adapter_info adapter_info;
1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct viosrp_host_config host_config;
199c1988e3123751fd425fbae99d5c1776608e965a9Robert Jennings	struct viosrp_fast_fail fast_fail;
200126c5cc37e682e7c5ae96754994b1cb50c2d0cb5Brian King	struct viosrp_capabilities capabilities;
2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsunion viosrp_iu {
2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	union srp_iu srp;
2051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	union mad_iu mad;
2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct mad_adapter_info_data {
2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	char srp_version[8];
2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	char partition_name[96];
21172264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 partition_number;
21272264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 mad_version;
21372264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 os_type;
21472264eb6dbb9090265f6c87e49db78c4306bc1c3Anton Blanchard	__be32 port_max_txu[8];	/* per-port maximum transfer */
2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
218