[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20080217033636.4acd5f63@mailhost.serverengines.com>
Date: Sat, 16 Feb 2008 19:36:36 -0800
From: "Subbu Seetharaman" <subbus@...verengines.com>
To: netdev@...r.kernel.org
Subject: [PATHCH 16/16] ServerEngines 10Gb NIC driver
F/W header files.
-----------------------
diff -uprN orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/iscsi_common_host_struct_bmap.h benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/iscsi_common_host_struct_bmap.h
--- orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/iscsi_common_host_struct_bmap.h 1970-01-01 05:30:00.000000000 +0530
+++ benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/iscsi_common_host_struct_bmap.h 2008-02-14 15:23:07.840200872 +0530
@@ -0,0 +1,406 @@
+/*
+ * Copyright (C) 2005 - 2008 ServerEngines
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or at your option any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor
+ * Boston, MA 02110-1301 USA
+ *
+ *
+ * The full GNU General Public License is included in this distribution
+ * in the file called GPL.
+ *
+ * Contact Information:
+ * linux-drivers@...verengines.com
+ *
+ * ServerEngines
+ * 209 N. Fair Oaks Ave
+ * Sunnyvale, CA 94085
+ */
+/*
+ * Autogenerated by srcgen version: 0127 */ #ifndef
+__iscsi_common_host_struct_bmap_h__
+#define __iscsi_common_host_struct_bmap_h__
+#include "setypes.h"
+
+#undef SG_PACK
+#if defined(SG_PRAGMA_PACK)
+#pragma pack(push, 1)
+#define SG_PACK
+#elif defined(SG_ATTRIBUTE_PACK)
+#define SG_PACK __attribute__ ((packed)) #else #define SG_PACK #endif
+
+#ifndef SG_C_ASSERT
+#define SG_C_ASSERT(_name_, _condition_) #endif
+
+#if defined(__BIG_ENDIAN)
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_37_RSVD {
+ u32 rsvd1:10; /* DWORD 0 */
+ u32 rsvd0:1; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_37_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_37_RSVD;
+
+#else
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_37_RSVD {
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 rsvd1:10; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_37_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_37_RSVD;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_38_RSVD {
+ u32 rsvd1:15; /* DWORD 0 */
+ u32 rsvd0:1; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_38_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_38_RSVD;
+
+#else
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_38_RSVD {
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 rsvd1:15; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_38_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_38_RSVD;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+ /* Scatter gather element */
+typedef struct _ISCSI_SGE {
+ u32 addr_hi; /* DWORD 0 */
+ u32 addr_lo; /* DWORD 1 */
+ u32 last_sge:1; /* DWORD 2 */
+ u32 rsvd0:11; /* DWORD 2 */
+ u32 sge_offset:20; /* DWORD 2 */
+ u32 rsvd1:16; /* DWORD 3 */
+ u32 len:16; /* DWORD 3 */
+} SG_PACK ISCSI_SGE, *PISCSI_SGE;
+
+#else
+ /* Scatter gather element */
+typedef struct _ISCSI_SGE {
+ u32 addr_hi; /* DWORD 0 */
+ u32 addr_lo; /* DWORD 1 */
+ u32 sge_offset:20; /* DWORD 2 */
+ u32 rsvd0:11; /* DWORD 2 */
+ u32 last_sge:1; /* DWORD 2 */
+ u32 len:16; /* DWORD 3 */
+ u32 rsvd1:16; /* DWORD 3 */
+} SG_PACK ISCSI_SGE, *PISCSI_SGE;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+ /* Scatter gather element to DMA OOO segments */ typedef struct
+_ISCSI_OOO_SGE {
+ u32 addr_hi; /* DWORD 0 */
+ u32 addr_lo; /* DWORD 1 */
+} SG_PACK ISCSI_OOO_SGE, *PISCSI_OOO_SGE;
+
+#else
+ /* Scatter gather element to DMA OOO segments */ typedef struct
+_ISCSI_OOO_SGE {
+ u32 addr_hi; /* DWORD 0 */
+ u32 addr_lo; /* DWORD 1 */
+} SG_PACK ISCSI_OOO_SGE, *PISCSI_OOO_SGE;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_39_RSVD {
+ u32 rsvd1:2; /* DWORD 0 */
+ u32 rsvd0:1; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_39_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_39_RSVD;
+
+#else
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_39_RSVD {
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 rsvd1:2; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_39_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_39_RSVD;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+ /* RRmsg sent from ARM to iSCSI TXULP and carried as body of IPC
+ * between EPs */
+typedef struct _ISCSI_RRMSG {
+ u32 invalidate_ref_handle:16; /* DWORD 0 */
+ u32 rsvd0:3; /* DWORD 0 */
+ u32 chuteid:1; /* DWORD 0 */
+ u32 defpdu_invld:1; /* DWORD 0 */
+ u32 sgl_icd_Index:11; /* DWORD 0 */
+ u32 partialBytesSent:24; /* DWORD 1 */
+ u32 upload:1; /* DWORD 1 */
+ u32 rstonneed:1; /* DWORD 1 */
+ u32 invld_resp:1; /* DWORD 1 */
+ u32 wr:1; /* DWORD 1 */
+ u32 iscsicon_rst:1; /* DWORD 1 */
+ u32 icd_free:1; /* DWORD 1 */
+ u32 icd_invld:1; /* DWORD 1 */
+ u32 iscsicon_invld:1; /* DWORD 1 */
+} SG_PACK ISCSI_RRMSG, *PISCSI_RRMSG;
+
+#else
+ /* RRmsg sent from ARM to iSCSI TXULP and carried as body of IPC
+ * between EPs */
+typedef struct _ISCSI_RRMSG {
+ u32 sgl_icd_Index:11; /* DWORD 0 */
+ u32 defpdu_invld:1; /* DWORD 0 */
+ u32 chuteid:1; /* DWORD 0 */
+ u32 rsvd0:3; /* DWORD 0 */
+ u32 invalidate_ref_handle:16; /* DWORD 0 */
+ u32 iscsicon_invld:1; /* DWORD 1 */
+ u32 icd_invld:1; /* DWORD 1 */
+ u32 icd_free:1; /* DWORD 1 */
+ u32 iscsicon_rst:1; /* DWORD 1 */
+ u32 wr:1; /* DWORD 1 */
+ u32 invld_resp:1; /* DWORD 1 */
+ u32 rstonneed:1; /* DWORD 1 */
+ u32 upload:1; /* DWORD 1 */
+ u32 partialBytesSent:24; /* DWORD 1 */
+} SG_PACK ISCSI_RRMSG, *PISCSI_RRMSG;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+ /* Full 8 byte LUN. */
+typedef struct _ISCSI_LUN {
+ u8 bytes[8];
+} SG_PACK ISCSI_LUN, *PISCSI_LUN;
+
+#else
+ /* Full 8 byte LUN. */
+typedef struct _ISCSI_LUN {
+ u8 bytes[8];
+} SG_PACK ISCSI_LUN, *PISCSI_LUN;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_40_RSVD {
+ u32 rsvd1:2; /* DWORD 0 */
+ u32 rsvd0:1; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_40_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_40_RSVD;
+
+#else
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_40_RSVD {
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 rsvd1:2; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_40_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_40_RSVD;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_41_RSVD {
+ u32 rsvd1:7; /* DWORD 0 */
+ u32 rsvd0:1; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_41_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_41_RSVD;
+
+#else
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_41_RSVD {
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 rsvd1:7; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_41_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_41_RSVD;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_42_RSVD {
+ u32 rsvd1:2; /* DWORD 0 */
+ u32 rsvd0:1; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_42_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_42_RSVD;
+
+#else
+
+typedef struct _ISCSI_COMMON_HOST_STRUCT_ANON_42_RSVD {
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 rsvd1:2; /* DWORD 0 */
+} SG_PACK ISCSI_COMMON_HOST_STRUCT_ANON_42_RSVD,
+ *PISCSI_COMMON_HOST_STRUCT_ANON_42_RSVD;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+ /* ISCSI Default PDU Context latest */ typedef struct
+_ISCSI_DEFAULT_PDU_CONTEXT {
+ u32 rsvd1:8; /* DWORD 0 */
+ u32 ring_size:4; /* DWORD 0 */
+ u32 ring_state:4; /* DWORD 0 */
+ u32 rsvd0:3; /* DWORD 0 */
+ u32 dbuf_cindex:13; /* DWORD 0 */
+ u32 cq_id_recv:10; /* DWORD 1 */
+ u32 rx_pdid_not_valid:1; /* DWORD 1 */
+ u32 rx_pdid:5; /* DWORD 1 */
+ u32 rsvd2:3; /* DWORD 1 */
+ u32 dbuf_pindex:13; /* DWORD 1 */
+ u32 rsvd3:16; /* DWORD 2 */
+ u32 default_buffer_size:16; /* DWORD 2 */
+ u32 rsvd4[1]; /* DWORDS 3 to 3 */
+} SG_PACK ISCSI_DEFAULT_PDU_CONTEXT, *PISCSI_DEFAULT_PDU_CONTEXT;
+
+#else
+ /* ISCSI Default PDU Context latest */ typedef struct
+_ISCSI_DEFAULT_PDU_CONTEXT {
+ u32 dbuf_cindex:13; /* DWORD 0 */
+ u32 rsvd0:3; /* DWORD 0 */
+ u32 ring_state:4; /* DWORD 0 */
+ u32 ring_size:4; /* DWORD 0 */
+ u32 rsvd1:8; /* DWORD 0 */
+ u32 dbuf_pindex:13; /* DWORD 1 */
+ u32 rsvd2:3; /* DWORD 1 */
+ u32 rx_pdid:5; /* DWORD 1 */
+ u32 rx_pdid_not_valid:1; /* DWORD 1 */
+ u32 cq_id_recv:10; /* DWORD 1 */
+ u32 default_buffer_size:16; /* DWORD 2 */
+ u32 rsvd3:16; /* DWORD 2 */
+ u32 rsvd4[1]; /* DWORDS 3 to 3 */
+} SG_PACK ISCSI_DEFAULT_PDU_CONTEXT, *PISCSI_DEFAULT_PDU_CONTEXT;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+ /*
+ * This is the ring context structure for iSCSI only, because of its
+ * special linked list structure. The HLL and h are used only by
+ * btlr to track the list. When receiving a driver request, that
+ * is, the driver request bit is set in the TCPSCH_PROC_IQ_DATA
+ * descriptor from TCP Scheduler, iSCSI TXULP will double check the
+ * wrb_pend to make sure it is greater than zero, and then use the
+ * wrb_addr as the address of pending WRB and use it to generate
+ * CRA for UC request. After completing the current WRB, the iSCSI
+ * RXULP will send the ptr2NxtWRB to the CEV.
+ */
+typedef struct _RING_CONTEXT_ISCSI {
+ u32 rsvd1:16; /* DWORD 0 */
+ u32 hll:8; /* DWORD 0 */
+ u32 rsvd0:7; /* DWORD 0 */
+ u32 h:1; /* DWORD 0 */
+ u32 rsvd2:10; /* DWORD 1 */
+ u32 o:1; /* DWORD 1 */
+ u32 pdid:5; /* DWORD 1 */
+ u32 wrb_pend:8; /* DWORD 1 */
+ u32 wrb_addr:8; /* DWORD 1 */
+} SG_PACK RING_CONTEXT_ISCSI, *PRING_CONTEXT_ISCSI;
+
+#else
+ /*
+ * This is the ring context structure for iSCSI only, because of its
+ * special linked list structure. The HLL and h are used only by
+ * btlr to track the list. When receiving a driver request, that
+ * is, the driver request bit is set in the TCPSCH_PROC_IQ_DATA
+ * descriptor from TCP Scheduler, iSCSI TXULP will double check the
+ * wrb_pend to make sure it is greater than zero, and then use the
+ * wrb_addr as the address of pending WRB and use it to generate
+ * CRA for UC request. After completing the current WRB, the iSCSI
+ * RXULP will send the ptr2NxtWRB to the CEV.
+ */
+typedef struct _RING_CONTEXT_ISCSI {
+ u32 h:1; /* DWORD 0 */
+ u32 rsvd0:7; /* DWORD 0 */
+ u32 hll:8; /* DWORD 0 */
+ u32 rsvd1:16; /* DWORD 0 */
+ u32 wrb_addr:8; /* DWORD 1 */
+ u32 wrb_pend:8; /* DWORD 1 */
+ u32 pdid:5; /* DWORD 1 */
+ u32 o:1; /* DWORD 1 */
+ u32 rsvd2:10; /* DWORD 1 */
+} SG_PACK RING_CONTEXT_ISCSI, *PRING_CONTEXT_ISCSI;
+
+#endif
+
+#if defined(__BIG_ENDIAN)
+ /*
+ * This is the ring context structure for iSCSI only, because of its
+ * special linked list structure. The HLL and h are used only by
+ * btlr to track the list. When receiving a driver request, that
+ * is, the driver request bit is set in the TCPSCH_PROC_IQ_DATA
+ * descriptor from TCP Scheduler, iSCSI TXULP will double check the
+ * wrb_pend to make sure it is greater than zero, and then use the
+ * wrb_addr as the address of pending WRB and use it to generate
+ * CRA for UC request. After completing the current WRB, the iSCSI
+ * RXULP will send the ptr2NxtWRB to the CEV.
+ */
+typedef struct _RING_CONTEXT_ISCSI_BE2 {
+ u32 r2t_cidx:10; /* DWORD 0 */
+ u32 fetch_r2t:1; /* DWORD 0 */
+ u32 fetch_wrb:1; /* DWORD 0 */
+ u32 tx_ring_size:4; /* DWORD 0 */
+ u32 hll:8; /* DWORD 0 */
+ u32 wrb_addr:8; /* DWORD 0 */
+ u32 ctx_valid:1; /* DWORD 1 */
+ u32 pdid:9; /* DWORD 1 */
+ u32 pci_func_id:8; /* DWORD 1 */
+ u32 rsvd0:5; /* DWORD 1 */
+ u32 h:1; /* DWORD 1 */
+ u32 wrb_pend:8; /* DWORD 1 */
+} SG_PACK RING_CONTEXT_ISCSI_BE2, *PRING_CONTEXT_ISCSI_BE2;
+
+#else
+ /*
+ * This is the ring context structure for iSCSI only, because of its
+ * special linked list structure. The HLL and h are used only by
+ * btlr to track the list. When receiving a driver request, that
+ * is, the driver request bit is set in the TCPSCH_PROC_IQ_DATA
+ * descriptor from TCP Scheduler, iSCSI TXULP will double check the
+ * wrb_pend to make sure it is greater than zero, and then use the
+ * wrb_addr as the address of pending WRB and use it to generate
+ * CRA for UC request. After completing the current WRB, the iSCSI
+ * RXULP will send the ptr2NxtWRB to the CEV.
+ */
+typedef struct _RING_CONTEXT_ISCSI_BE2 {
+ u32 wrb_addr:8; /* DWORD 0 */
+ u32 hll:8; /* DWORD 0 */
+ u32 tx_ring_size:4; /* DWORD 0 */
+ u32 fetch_wrb:1; /* DWORD 0 */
+ u32 fetch_r2t:1; /* DWORD 0 */
+ u32 r2t_cidx:10; /* DWORD 0 */
+ u32 wrb_pend:8; /* DWORD 1 */
+ u32 h:1; /* DWORD 1 */
+ u32 rsvd0:5; /* DWORD 1 */
+ u32 pci_func_id:8; /* DWORD 1 */
+ u32 pdid:9; /* DWORD 1 */
+ u32 ctx_valid:1; /* DWORD 1 */
+} SG_PACK RING_CONTEXT_ISCSI_BE2, *PRING_CONTEXT_ISCSI_BE2;
+
+#endif
+
+#ifdef SG_PRAGMA_PACK
+#pragma pack(pop)
+#endif
+
+#endif /* __iscsi_common_host_struct_bmap_h__ */
diff -uprN orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/mpu_context_bmap.h benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/mpu_context_bmap.h
--- orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/mpu_context_bmap.h 1970-01-01 05:30:00.000000000 +0530
+++ benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/mpu_context_bmap.h 2008-02-14 15:23:07.841200720 +0530
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2005 - 2008 ServerEngines
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or at your option any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor
+ * Boston, MA 02110-1301 USA
+ *
+ *
+ * The full GNU General Public License is included in this distribution
+ * in the file called GPL.
+ *
+ * Contact Information:
+ * linux-drivers@...verengines.com
+ *
+ * ServerEngines
+ * 209 N. Fair Oaks Ave
+ * Sunnyvale, CA 94085
+ */
+/*
+ * Autogenerated by srcgen version: 0127 */ #ifndef
+__mpu_context_bmap_h__ #define __mpu_context_bmap_h__ #include
+"setypes.h"
+
+#undef SG_PACK
+#if defined(SG_PRAGMA_PACK)
+#pragma pack(push, 1)
+#define SG_PACK
+#elif defined(SG_ATTRIBUTE_PACK)
+#define SG_PACK __attribute__ ((packed)) #else #define SG_PACK #endif
+
+#ifndef SG_C_ASSERT
+#define SG_C_ASSERT(_name_, _condition_) #endif
+
+#if defined(__BIG_ENDIAN)
+ /*
+ * Management command and control ring context. The MPUs BTLR_CTRL1
+ * CSR controls the writeback behavior of the producer and consumer
+ * index values.
+ */
+typedef struct _MCC_RING_CONTEXT {
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 cq_id:11; /* DWORD 0 */
+ u32 ring_size:4; /* DWORD 0 */
+ u32 con_index:16; /* DWORD 0 */
+ u32 invalid:1; /* DWORD 1 */
+ u32 pdid:15; /* DWORD 1 */
+ u32 prod_index:16; /* DWORD 1 */
+ u32 rsvd1:25; /* DWORD 2 */
+ u32 cmd_pending_current:7; /* DWORD 2 */
+ u32 rsvd3:9; /* DWORD 3 */
+ u32 cmd_pending_max:7; /* DWORD 3 */
+ u32 rsvd2:5; /* DWORD 3 */
+ u32 hpi_port_cq_id:11; /* DWORD 3 */
+} SG_PACK MCC_RING_CONTEXT, *PMCC_RING_CONTEXT;
+
+#else
+ /*
+ * Management command and control ring context. The MPUs BTLR_CTRL1
+ * CSR controls the writeback behavior of the producer and consumer
+ * index values.
+ */
+typedef struct _MCC_RING_CONTEXT {
+ u32 con_index:16; /* DWORD 0 */
+ u32 ring_size:4; /* DWORD 0 */
+ u32 cq_id:11; /* DWORD 0 */
+ u32 rsvd0:1; /* DWORD 0 */
+ u32 prod_index:16; /* DWORD 1 */
+ u32 pdid:15; /* DWORD 1 */
+ u32 invalid:1; /* DWORD 1 */
+ u32 cmd_pending_current:7; /* DWORD 2 */
+ u32 rsvd1:25; /* DWORD 2 */
+ u32 hpi_port_cq_id:11; /* DWORD 3 */
+ u32 rsvd2:5; /* DWORD 3 */
+ u32 cmd_pending_max:7; /* DWORD 3 */
+ u32 rsvd3:9; /* DWORD 3 */
+} SG_PACK MCC_RING_CONTEXT, *PMCC_RING_CONTEXT;
+
+#endif
+
+#ifdef SG_PRAGMA_PACK
+#pragma pack(pop)
+#endif
+
+#endif /* __mpu_context_bmap_h__ */
diff -uprN orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_eth_bmap.h benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_eth_bmap.h
--- orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_eth_bmap.h 1970-01-01 05:30:00.000000000 +0530
+++ benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_eth_bmap.h 2008-02-14 15:23:07.841200720 +0530
@@ -0,0 +1,378 @@
+/*
+ * Copyright (C) 2005 - 2008 ServerEngines
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or at your option any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor
+ * Boston, MA 02110-1301 USA
+ *
+ *
+ * The full GNU General Public License is included in this distribution
+ * in the file called GPL.
+ *
+ * Contact Information:
+ * linux-drivers@...verengines.com
+ *
+ * ServerEngines
+ * 209 N. Fair Oaks Ave
+ * Sunnyvale, CA 94085
+ */
+/*
+ * Autogenerated by srcgen version: 0127 */ #ifndef
+__ioctl_eth_bmap_h__ #define __ioctl_eth_bmap_h__ #include "setypes.h"
+#include "ioctl_hdr_bmap.h"
+#include "ioctl_types_bmap.h"
+
+#undef SG_PACK
+#if defined(SG_PRAGMA_PACK)
+#pragma pack(push, 1)
+#define SG_PACK
+#elif defined(SG_ATTRIBUTE_PACK)
+#define SG_PACK __attribute__ ((packed)) #else #define SG_PACK #endif
+
+#ifndef SG_C_ASSERT
+#define SG_C_ASSERT(_name_, _condition_) #endif
+
+typedef struct _MIB_ETH_STATISTICS_PARAMS_IN {
+ u32 rsvd0;
+} SG_PACK MIB_ETH_STATISTICS_PARAMS_IN, *PMIB_ETH_STATISTICS_PARAMS_IN;
+
+typedef struct _BE_RXF_STATS {
+ u32 p0recvdtotalbytesLSD; /* DWORD 0 */
+ u32 p0recvdtotalbytesMSD; /* DWORD 1 */
+ u32 p0recvdtotalframes; /* DWORD 2 */
+ u32 p0recvdunicastframes; /* DWORD 3 */
+ u32 p0recvdmulticastframes; /* DWORD 4 */
+ u32 p0recvdbroadcastframes; /* DWORD 5 */
+ u32 p0crcerrors; /* DWORD 6 */
+ u32 p0alignmentsymerrs; /* DWORD 7 */
+ u32 p0pauseframesrecvd; /* DWORD 8 */
+ u32 p0controlframesrecvd; /* DWORD 9 */
+ u32 p0inrangelenerrors; /* DWORD 10 */
+ u32 p0outrangeerrors; /* DWORD 11 */
+ u32 p0frametoolongerrors; /* DWORD 12 */
+ u32 p0droppedaddressmatch; /* DWORD 13 */
+ u32 p0droppedvlanmismatch; /* DWORD 14 */
+ u32 p0ipdroppedtoosmall; /* DWORD 15 */
+ u32 p0ipdroppedtooshort; /* DWORD 16 */
+ u32 p0ipdroppedhdrtoosmall; /* DWORD 17 */
+ u32 p0tcpdroppedlen; /* DWORD 18 */
+ u32 p0droppedrunt; /* DWORD 19 */
+ u32 p0recvd64; /* DWORD 20 */
+ u32 p0recvd65_127; /* DWORD 21 */
+ u32 p0recvd128_256; /* DWORD 22 */
+ u32 p0recvd256_511; /* DWORD 23 */
+ u32 p0recvd512_1023; /* DWORD 24 */
+ u32 p0recvd1518_1522; /* DWORD 25 */
+ u32 p0recvd1522_2047; /* DWORD 26 */
+ u32 p0recvd2048_4095; /* DWORD 27 */
+ u32 p0recvd4096_8191; /* DWORD 28 */
+ u32 p0recvd8192_9216; /* DWORD 29 */
+ u32 p0rcvdipcksmerrs; /* DWORD 30 */
+ u32 p0recvdtcpcksmerrs; /* DWORD 31 */
+ u32 p0recvdudpcksmerrs; /* DWORD 32 */
+ u32 p0recvdnonrsspackets; /* DWORD 33 */
+ u32 p0recvdippackets; /* DWORD 34 */
+ u32 p0recvdchute1packets; /* DWORD 35 */
+ u32 p0recvdchute2packets; /* DWORD 36 */
+ u32 p0recvdchute3packets; /* DWORD 37 */
+ u32 p0recvdipsecpackets; /* DWORD 38 */
+ u32 p0recvdmanagementpackets; /* DWORD 39 */
+ u32 p0xmitbyteslsd; /* DWORD 40 */
+ u32 p0xmitbytesmsd; /* DWORD 41 */
+ u32 p0xmitunicastframes; /* DWORD 42 */
+ u32 p0xmitmulticastframes; /* DWORD 43 */
+ u32 p0xmitbroadcastframes; /* DWORD 44 */
+ u32 p0xmitpauseframes; /* DWORD 45 */
+ u32 p0xmitcontrolframes; /* DWORD 46 */
+ u32 p0xmit64; /* DWORD 47 */
+ u32 p0xmit65_127; /* DWORD 48 */
+ u32 p0xmit128_256; /* DWORD 49 */
+ u32 p0xmit256_511; /* DWORD 50 */
+ u32 p0xmit512_1023; /* DWORD 51 */
+ u32 p0xmit1518_1522; /* DWORD 52 */
+ u32 p0xmit1522_2047; /* DWORD 53 */
+ u32 p0xmit2048_4095; /* DWORD 54 */
+ u32 p0xmit4096_8191; /* DWORD 55 */
+ u32 p0xmit8192_9216; /* DWORD 56 */
+ u32 p0rxfifooverflowdropped; /* DWORD 57 */
+ u32 p0ipseclookupfaileddropped; /* DWORD 58 */
+ u32 p1recvdtotalbytesLSD; /* DWORD 59 */
+ u32 p1recvdtotalbytesMSD; /* DWORD 60 */
+ u32 p1recvdtotalframes; /* DWORD 61 */
+ u32 p1recvdunicastframes; /* DWORD 62 */
+ u32 p1recvdmulticastframes; /* DWORD 63 */
+ u32 p1recvdbroadcastframes; /* DWORD 64 */
+ u32 p1crcerrors; /* DWORD 65 */
+ u32 p1alignmentsymerrs; /* DWORD 66 */
+ u32 p1pauseframesrecvd; /* DWORD 67 */
+ u32 p1controlframesrecvd; /* DWORD 68 */
+ u32 p1inrangelenerrors; /* DWORD 69 */
+ u32 p1outrangeerrors; /* DWORD 70 */
+ u32 p1frametoolongerrors; /* DWORD 71 */
+ u32 p1droppedaddressmatch; /* DWORD 72 */
+ u32 p1droppedvlanmismatch; /* DWORD 73 */
+ u32 p1ipdroppedtoosmall; /* DWORD 74 */
+ u32 p1ipdroppedtooshort; /* DWORD 75 */
+ u32 p1ipdroppedhdrtoosmall; /* DWORD 76 */
+ u32 p1tcpdroppedlen; /* DWORD 77 */
+ u32 p1droppedrunt; /* DWORD 78 */
+ u32 p1recvd64; /* DWORD 79 */
+ u32 p1recvd65_127; /* DWORD 80 */
+ u32 p1recvd128_256; /* DWORD 81 */
+ u32 p1recvd256_511; /* DWORD 82 */
+ u32 p1recvd512_1023; /* DWORD 83 */
+ u32 p1recvd1518_1522; /* DWORD 84 */
+ u32 p1recvd1522_2047; /* DWORD 85 */
+ u32 p1recvd2048_4095; /* DWORD 86 */
+ u32 p1recvd4096_8191; /* DWORD 87 */
+ u32 p1recvd8192_9216; /* DWORD 88 */
+ u32 p1rcvdipcksmerrs; /* DWORD 89 */
+ u32 p1recvdtcpcksmerrs; /* DWORD 90 */
+ u32 p1recvdudpcksmerrs; /* DWORD 91 */
+ u32 p1recvdnonrsspackets; /* DWORD 92 */
+ u32 p1recvdippackets; /* DWORD 93 */
+ u32 p1recvdchute1packets; /* DWORD 94 */
+ u32 p1recvdchute2packets; /* DWORD 95 */
+ u32 p1recvdchute3packets; /* DWORD 96 */
+ u32 p1recvdipsecpackets; /* DWORD 97 */
+ u32 p1recvdmanagementpackets; /* DWORD 98 */
+ u32 p1xmitbyteslsd; /* DWORD 99 */
+ u32 p1xmitbytesmsd; /* DWORD 100 */
+ u32 p1xmitunicastframes; /* DWORD 101 */
+ u32 p1xmitmulticastframes; /* DWORD 102 */
+ u32 p1xmitbroadcastframes; /* DWORD 103 */
+ u32 p1xmitpauseframes; /* DWORD 104 */
+ u32 p1xmitcontrolframes; /* DWORD 105 */
+ u32 p1xmit64; /* DWORD 106 */
+ u32 p1xmit65_127; /* DWORD 107 */
+ u32 p1xmit128_256; /* DWORD 108 */
+ u32 p1xmit256_511; /* DWORD 109 */
+ u32 p1xmit512_1023; /* DWORD 110 */
+ u32 p1xmit1518_1522; /* DWORD 111 */
+ u32 p1xmit1522_2047; /* DWORD 112 */
+ u32 p1xmit2048_4095; /* DWORD 113 */
+ u32 p1xmit4096_8191; /* DWORD 114 */
+ u32 p1xmit8192_9216; /* DWORD 115 */
+ u32 p1rxfifooverflowdropped; /* DWORD 116 */
+ u32 p1ipseclookupfaileddropped; /* DWORD 117 */
+ u32 pxdroppednopbuf; /* DWORD 118 */
+ u32 pxdroppednotxpb; /* DWORD 119 */
+ u32 pxdroppednoipsecbuf; /* DWORD 120 */
+ u32 pxdroppednoerxdescr; /* DWORD 121 */
+ u32 pxdroppednotpredescr; /* DWORD 122 */
+ u32 pxrecvdmanagementportpackets; /* DWORD 123 */
+ u32 pxrecvdmanagementportbytes; /* DWORD 124 */
+ u32 pxrecvdmanagementportpauseframes; /* DWORD 125 */
+ u32 pxrecvdmanagementporterrors; /* DWORD 126 */
+ u32 pxxmitmanagementportpackets; /* DWORD 127 */
+ u32 pxxmitmanagementportbytes; /* DWORD 128 */
+ u32 pxxmitmanagementportpause; /* DWORD 129 */
+ u32 pxxmitmanagementportrxfifooverflow; /* DWORD 130 */
+ u32 pxrecvdipsecipcksmerrs; /* DWORD 131 */
+ u32 pxrecvdtcpsecipcksmerrs; /* DWORD 132 */
+ u32 pxrecvdudpsecipcksmerrs; /* DWORD 133 */
+ u32 pxipsecrunt; /* DWORD 134 */
+ u32 pxipsecaddressmismatchdropped; /* DWORD 135 */
+ u32 pxipsecrxfifooverflowdropped; /* DWORD 136 */
+ u32 pxipsecframestoolong; /* DWORD 137 */
+ u32 pxipsectotalipframes; /* DWORD 138 */
+ u32 pxipseciptoosmall; /* DWORD 139 */
+ u32 pxipseciptooshort; /* DWORD 140 */
+ u32 pxipseciphdrtoosmall; /* DWORD 141 */
+ u32 pxipsectcphdrbad; /* DWORD 142 */
+ u32 pxrecvdipsecchute1; /* DWORD 143 */
+ u32 pxrecvdipsecchute2; /* DWORD 144 */
+ u32 pxrecvdipsecchute3; /* DWORD 145 */
+ u32 pxdropped7frags; /* DWORD 146 */
+ u32 pxdroppedfrags; /* DWORD 147 */
+ u32 pxdroppedinvalidfragring; /* DWORD 148 */
+ u32 pxnumforwardedpackets; /* DWORD 149 */
+} SG_PACK BE_RXF_STATS, *PBE_RXF_STATS;
+
+typedef union _MIB_ETH_STATISTICS_PARAMS {
+ MIB_ETH_STATISTICS_PARAMS_IN request;
+ BE_RXF_STATS response;
+} SG_PACK MIB_ETH_STATISTICS_PARAMS, *PMIB_ETH_STATISTICS_PARAMS;
+
+/*
+ * Query ethernet statistics. All domains may issue this IOCTL. The
+ * host domain drivers may optionally reset internal statistic
+counters
+ * with a query.
+ */
+typedef struct _IOCTL_ETH_GET_STATISTICS {
+ IOCTL_HEADER header;
+ MIB_ETH_STATISTICS_PARAMS params;
+} SG_PACK IOCTL_ETH_GET_STATISTICS, *PIOCTL_ETH_GET_STATISTICS;
+
+typedef struct _BE_RSS_CONFIG {
+ u16 enable_rss;
+ u16 cpu_table_size_log2;
+ u16 cqid0;
+ u16 cqid1;
+ u16 cqid2;
+ u16 cqid3;
+ u32 hash[4];
+ u8 cpu_table[128];
+ u16 cq_flush_mask;
+ u16 rsvd0;
+ u32 flush_value;
+} SG_PACK BE_RSS_CONFIG, *PBE_RSS_CONFIG;
+
+typedef struct _IOCTL_ETH_ANON_171_RESPONSE {
+ u32 rsvd0;
+} SG_PACK IOCTL_ETH_ANON_171_RESPONSE, *PIOCTL_ETH_ANON_171_RESPONSE;
+
+typedef union _IOCTL_ETH_ANON_170_PARAMS {
+ BE_RSS_CONFIG request;
+ IOCTL_ETH_ANON_171_RESPONSE response;
+} SG_PACK IOCTL_ETH_ANON_170_PARAMS, *PIOCTL_ETH_ANON_170_PARAMS;
+
+/*
+ * Configures or disables receive side scaling (RSS), which
+distributes
+ * ethernet receive completions among (up to 4) completion queues.
+ * This is in addition to the default ethernet receive completion queue.
+ * Presumably, the host driver processes each completion queue with
+ * a DPC running on a different processor. This IOCTL can only be
+issued
+ * by domain 0 network drivers.
+ */
+typedef struct _IOCTL_ETH_RSS_CONFIG {
+ IOCTL_HEADER header;
+ IOCTL_ETH_ANON_170_PARAMS params;
+} SG_PACK IOCTL_ETH_RSS_CONFIG, *PIOCTL_ETH_RSS_CONFIG;
+
+typedef struct _IOCTL_ETH_ACPI_CONFIG_PARAMS {
+ u8 index;
+ u8 port0;
+ u8 port1;
+ u8 magic_packet;
+ u8 byte_pattern[128];
+ u32 bit_mask[4];
+} SG_PACK IOCTL_ETH_ACPI_CONFIG_PARAMS, *PIOCTL_ETH_ACPI_CONFIG_PARAMS;
+
+typedef struct _IOCTL_ETH_ANON_173_RESPONSE {
+ u32 rsvd0;
+} SG_PACK IOCTL_ETH_ANON_173_RESPONSE, *PIOCTL_ETH_ANON_173_RESPONSE;
+
+typedef union _IOCTL_ETH_ANON_172_PARAMS {
+ IOCTL_ETH_ACPI_CONFIG_PARAMS request;
+ IOCTL_ETH_ANON_173_RESPONSE response;
+} SG_PACK IOCTL_ETH_ANON_172_PARAMS, *PIOCTL_ETH_ANON_172_PARAMS;
+
+/*
+ * Sets the magic packet or interesting packet byte pattern and mask
+ * * for wake-on-lan. Only host drivers are allowed to modify magic
+ * packet * settings. Only the host networking driver is allowed to
+ * modify the * interesting packet byte pattern and mask settings.
+ *
+ */
+typedef struct _IOCTL_ETH_ACPI_CONFIG {
+ IOCTL_HEADER header;
+ IOCTL_ETH_ANON_172_PARAMS params;
+} SG_PACK IOCTL_ETH_ACPI_CONFIG, *PIOCTL_ETH_ACPI_CONFIG;
+
+typedef struct _IOCTL_ETH_ANON_175_REQUEST {
+ u8 port0_promiscuous;
+ u8 port1_promiscuous;
+ u16 rsvd0;
+} SG_PACK IOCTL_ETH_ANON_175_REQUEST, *PIOCTL_ETH_ANON_175_REQUEST;
+
+typedef struct _IOCTL_ETH_ANON_176_RESPONSE {
+ u32 rsvd0;
+} SG_PACK IOCTL_ETH_ANON_176_RESPONSE, *PIOCTL_ETH_ANON_176_RESPONSE;
+
+typedef union _IOCTL_ETH_ANON_174_PARAMS {
+ IOCTL_ETH_ANON_175_REQUEST request;
+ IOCTL_ETH_ANON_176_RESPONSE response;
+} SG_PACK IOCTL_ETH_ANON_174_PARAMS, *PIOCTL_ETH_ANON_174_PARAMS;
+
+/* Enables/Disables promiscuous ethernet receive mode. */ typedef
+struct _IOCTL_ETH_PROMISCUOUS {
+ IOCTL_HEADER header;
+ IOCTL_ETH_ANON_174_PARAMS params;
+} SG_PACK IOCTL_ETH_PROMISCUOUS, *PIOCTL_ETH_PROMISCUOUS;
+
+typedef struct _IOCTL_ETH_ANON_178_REQUEST {
+ u32 new_fragsize_log2;
+} SG_PACK IOCTL_ETH_ANON_178_REQUEST, *PIOCTL_ETH_ANON_178_REQUEST;
+
+typedef struct _IOCTL_ETH_ANON_179_RESPONSE {
+ u32 actual_fragsize_log2;
+} SG_PACK IOCTL_ETH_ANON_179_RESPONSE, *PIOCTL_ETH_ANON_179_RESPONSE;
+
+typedef union _IOCTL_ETH_ANON_177_PARAMS {
+ IOCTL_ETH_ANON_178_REQUEST request;
+ IOCTL_ETH_ANON_179_RESPONSE response;
+} SG_PACK IOCTL_ETH_ANON_177_PARAMS, *PIOCTL_ETH_ANON_177_PARAMS;
+
+/*
+ * Sets the Ethernet RX fragment size. Only host (domain 0) networking
+ * drivers may issue this IOCTL. This call will fail for non-host
+ * protection domains. In this situation the MCC CQ status will
+indicate
+ * a failure due to insufficient priviledges. The response should be
+ * ignored, and the driver should use the IOCTL_ETH_GET_FRAG_SIZE to
+ * query the existing ethernet receive fragment size. It must use
+this
+ * fragment size for all fragments in the ethernet receive ring. If
+ * the IOCTL succeeds, the driver must use the frag size indicated
+ * in the IOCTL response since the requested frag size may not be
+applied
+ * until the next reboot. When the requested fragsize matches the response
+ * fragsize, this indicates the request was applied immediately.
+ */
+typedef struct _IOCTL_ETH_SET_RX_FRAG_SIZE {
+ IOCTL_HEADER header;
+ IOCTL_ETH_ANON_177_PARAMS params;
+} SG_PACK IOCTL_ETH_SET_RX_FRAG_SIZE, *PIOCTL_ETH_SET_RX_FRAG_SIZE;
+
+typedef struct _IOCTL_ETH_ANON_181_REQUEST {
+ u32 rsvd0;
+} SG_PACK IOCTL_ETH_ANON_181_REQUEST, *PIOCTL_ETH_ANON_181_REQUEST;
+
+typedef struct _IOCTL_ETH_ANON_182_RESPONSE {
+ u32 actual_fragsize_log2;
+} SG_PACK IOCTL_ETH_ANON_182_RESPONSE, *PIOCTL_ETH_ANON_182_RESPONSE;
+
+typedef union _IOCTL_ETH_ANON_180_PARAMS {
+ IOCTL_ETH_ANON_181_REQUEST request;
+ IOCTL_ETH_ANON_182_RESPONSE response;
+} SG_PACK IOCTL_ETH_ANON_180_PARAMS, *PIOCTL_ETH_ANON_180_PARAMS;
+
+/*
+ * Queries the Ethernet RX fragment size. All domains may issue this
+ * IOCTL. The driver should call this IOCTL to determine the minimum
+ * required fragment size for the ethernet RX ring buffers. Drivers
+ * may choose to use a larger size for each fragment buffer, but
+BladeEngine
+ * will use up to the configured minimum required fragsize in each ethernet
+ * receive fragment buffer. For example, if the ethernet receive fragment
+ * size is configured to 4kB, and a driver uses 8kB fragments, a 6kB
+ * ethernet packet received by BladeEngine will be split accross two
+ * of the driver's receive framgents (4kB in one fragment buffer, and
+ * 2kB in the subsequent fragment buffer).
+ */
+typedef struct _IOCTL_ETH_GET_RX_FRAG_SIZE {
+ IOCTL_HEADER header;
+ IOCTL_ETH_ANON_180_PARAMS params;
+} SG_PACK IOCTL_ETH_GET_RX_FRAG_SIZE, *PIOCTL_ETH_GET_RX_FRAG_SIZE;
+
+#ifdef SG_PRAGMA_PACK
+#pragma pack(pop)
+#endif
+
+#endif /* __ioctl_eth_bmap_h__ */
diff -uprN orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_mcc_bmap.h benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_mcc_bmap.h
--- orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_mcc_bmap.h 1970-01-01 05:30:00.000000000 +0530
+++ benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/ioctl_mcc_bmap.h 2008-02-14 15:23:07.842200568 +0530
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2005 - 2008 ServerEngines
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or at your option any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor
+ * Boston, MA 02110-1301 USA
+ *
+ *
+ * The full GNU General Public License is included in this distribution
+ * in the file called GPL.
+ *
+ * Contact Information:
+ * linux-drivers@...verengines.com
+ *
+ * ServerEngines
+ * 209 N. Fair Oaks Ave
+ * Sunnyvale, CA 94085
+ */
+/*
+ * Autogenerated by srcgen version: 0127 */ #ifndef
+__ioctl_mcc_bmap_h__ #define __ioctl_mcc_bmap_h__ #include "setypes.h"
+
+#undef SG_PACK
+#if defined(SG_PRAGMA_PACK)
+#pragma pack(push, 1)
+#define SG_PACK
+#elif defined(SG_ATTRIBUTE_PACK)
+#define SG_PACK __attribute__ ((packed)) #else #define SG_PACK #endif
+
+#ifndef SG_C_ASSERT
+#define SG_C_ASSERT(_name_, _condition_) #endif
+
+/*
+ * Where applicable, a WRB, may contain a list of Scatter-gather elements.
+ * Each element supports a 64 bit address and a 32bit length field.
+ *
+ */
+typedef struct _MCC_SGE {
+ u32 pa_lo; /* DWORD 0 */
+ u32 pa_hi; /* DWORD 1 */
+ u32 length; /* DWORD 2 */
+} SG_PACK MCC_SGE, *PMCC_SGE;
+
+/*
+ * The design of an MCC_SGE allows up to 19 elements to be embedded
+ * in a WRB, supporting 64KB data transfers (assuming a 4KB page size).
+ *
+ */
+typedef union _MCC_WRB_PAYLOAD {
+ MCC_SGE sgl[19];
+ u32 embedded[59]; /* DWORDS 57 to 115 */
+} SG_PACK MCC_WRB_PAYLOAD, *PMCC_WRB_PAYLOAD;
+
+/*
+ * This is the structure of the MCC Command WRB for commands sent to
+ * the Management Processing Unit (MPU). See section IOCTL_TYPES for
+ * usage in embedded and non-embedded modes.
+ */
+typedef struct _MCC_WRB {
+ u32 embedded:1; /* DWORD 0 */
+ u32 rsvd0:2; /* DWORD 0 */
+ u32 sge_count:5; /* DWORD 0 */
+ u32 rsvd1:16; /* DWORD 0 */
+ u32 special:8; /* DWORD 0 */
+ u32 payload_length; /* DWORD 1 */
+ u32 tag[2]; /* DWORDS 2 to 3 */
+ u32 rsvd2[1]; /* DWORDS 4 to 4 */
+ MCC_WRB_PAYLOAD payload;
+} SG_PACK MCC_WRB, *PMCC_WRB;
+
+/* This is the structure of the MCC Completion queue entry */ typedef
+struct _MCC_CQ_ENTRY {
+ u32 completion_status:16; /* DWORD 0 */
+ u32 extended_status:16; /* DWORD 0 */
+ u32 mcc_tag[2]; /* DWORDS 1 to 2 */
+ u32 rsvd0:27; /* DWORD 3 */
+ u32 consumed:1; /* DWORD 3 */
+ u32 completed:1; /* DWORD 3 */
+ u32 hpi_buffer_completion:1; /* DWORD 3 */
+ u32 async_event:1; /* DWORD 3 */
+ u32 valid:1; /* DWORD 3 */
+} SG_PACK MCC_CQ_ENTRY, *PMCC_CQ_ENTRY;
+
+/* Mailbox structures used by the MPU during bootstrap */ typedef
+struct _MCC_MAILBOX {
+ MCC_WRB wrb;
+ MCC_CQ_ENTRY cq;
+} SG_PACK MCC_MAILBOX, *PMCC_MAILBOX;
+
+#ifdef SG_PRAGMA_PACK
+#pragma pack(pop)
+#endif
+
+#endif /* __ioctl_mcc_bmap_h__ */
diff -uprN orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/post_codes_bmap.h benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/post_codes_bmap.h
--- orig/linux-2.6.24.2/drivers/message/beclib/fw/bmap/post_codes_bmap.h 1970-01-01 05:30:00.000000000 +0530
+++ benet/linux-2.6.24.2/drivers/message/beclib/fw/bmap/post_codes_bmap.h 2008-02-14 15:23:07.842200568 +0530
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2005 - 2008 ServerEngines
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or at your option any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor
+ * Boston, MA 02110-1301 USA
+ *
+ *
+ * The full GNU General Public License is included in this distribution
+ * in the file called GPL.
+ *
+ * Contact Information:
+ * linux-drivers@...verengines.com
+ *
+ * ServerEngines
+ * 209 N. Fair Oaks Ave
+ * Sunnyvale, CA 94085
+ */
+/*
+ * Autogenerated by srcgen version: 0127 */ #ifndef
+__post_codes_bmap_h__ #define __post_codes_bmap_h__ #include
+"setypes.h"
+
+#undef SG_PACK
+#if defined(SG_PRAGMA_PACK)
+#pragma pack(push, 1)
+#define SG_PACK
+#elif defined(SG_ATTRIBUTE_PACK)
+#define SG_PACK __attribute__ ((packed)) #else #define SG_PACK #endif
+
+#ifndef SG_C_ASSERT
+#define SG_C_ASSERT(_name_, _condition_) #endif
+
+#if defined(__BIG_ENDIAN)
+ /* This structure defines the format of the MPU semaphore register
+ * when used for POST. */
+typedef struct _MGMT_HBA_POST_STATUS_STRUCT {
+ union {
+ struct {
+ u32 error:1; /* DWORD 0 */
+ u32 backup_fw:1; /* DWORD 0 */
+ u32 iscsi_no_ip:1; /* DWORD 0 */
+ u32 iscsi_ip_conflict:1; /* DWORD 0 */
+ u32 option_rom_installed:1; /* DWORD 0 */
+ u32 iscsi_driver_loaded:1; /* DWORD 0 */
+ u32 rsvd0:10; /* DWORD 0 */
+ u32 stage:16; /* DWORD 0 */
+ } SG_PACK; /* unnamed struct */
+ u32 dw; /* dword union */
+ }; /* unnamed union */
+} SG_PACK MGMT_HBA_POST_STATUS_STRUCT, *PMGMT_HBA_POST_STATUS_STRUCT;
+
+SG_C_ASSERT(__sizeof__MGMT_HBA_POST_STATUS_STRUCT,
+ sizeof(MGMT_HBA_POST_STATUS_STRUCT) == 4);
+
+#else
+ /* This structure defines the format of the MPU semaphore register
+ * when used for POST. */
+typedef struct _MGMT_HBA_POST_STATUS_STRUCT {
+ union {
+ struct {
+ u32 stage:16; /* DWORD 0 */
+ u32 rsvd0:10; /* DWORD 0 */
+ u32 iscsi_driver_loaded:1; /* DWORD 0 */
+ u32 option_rom_installed:1; /* DWORD 0 */
+ u32 iscsi_ip_conflict:1; /* DWORD 0 */
+ u32 iscsi_no_ip:1; /* DWORD 0 */
+ u32 backup_fw:1; /* DWORD 0 */
+ u32 error:1; /* DWORD 0 */
+ } SG_PACK; /* unnamed struct */
+ u32 dw; /* dword union */
+ }; /* unnamed union */
+} SG_PACK MGMT_HBA_POST_STATUS_STRUCT, *PMGMT_HBA_POST_STATUS_STRUCT;
+
+SG_C_ASSERT(__sizeof__MGMT_HBA_POST_STATUS_STRUCT,
+ sizeof(MGMT_HBA_POST_STATUS_STRUCT) == 4); #endif
+
+#ifdef SG_PRAGMA_PACK
+#pragma pack(pop)
+#endif
+
+#endif /* __post_codes_bmap_h__ */
___________________________________________________________________________________
This message, together with any attachment(s), contains confidential and proprietary information of
ServerEngines Corporation and is intended only for the designated recipient(s) named above. Any unauthorized
review, printing, retention, copying, disclosure or distribution is strictly prohibited. If you are not the
intended recipient of this message, please immediately advise the sender by reply email message and
delete all copies of this message and any attachment(s). Thank you.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists