summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klausmann <klausman@gentoo.org>2010-01-13 17:53:58 +0000
committerTobias Klausmann <klausman@gentoo.org>2010-01-13 17:53:58 +0000
commit1fc24ac20bfc2070315c077f1b884c13d1e2f46f (patch)
tree7de75524894b0ccdc8dad9a870d54794eb211ec8 /sys-apps/arrayprobe
parentStable for HPPA (bug #299971). (diff)
downloadhistorical-1fc24ac20bfc2070315c077f1b884c13d1e2f46f.tar.gz
historical-1fc24ac20bfc2070315c077f1b884c13d1e2f46f.tar.bz2
historical-1fc24ac20bfc2070315c077f1b884c13d1e2f46f.zip
Added 2.0-r2 inclduing a patch to make arrayprobe independent of the kernel sources.
Package-Manager: portage-2.1.7.16/cvs/Linux x86_64
Diffstat (limited to 'sys-apps/arrayprobe')
-rw-r--r--sys-apps/arrayprobe/ChangeLog10
-rw-r--r--sys-apps/arrayprobe/Manifest15
-rw-r--r--sys-apps/arrayprobe/arrayprobe-2.0-r2.ebuild (renamed from sys-apps/arrayprobe/arrayprobe-2.0-r1.ebuild)5
-rw-r--r--sys-apps/arrayprobe/files/2.0-ida_headers.patch647
4 files changed, 663 insertions, 14 deletions
diff --git a/sys-apps/arrayprobe/ChangeLog b/sys-apps/arrayprobe/ChangeLog
index 2c429e848a30..30bc91fc31aa 100644
--- a/sys-apps/arrayprobe/ChangeLog
+++ b/sys-apps/arrayprobe/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-apps/arrayprobe
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/arrayprobe/ChangeLog,v 1.4 2010/01/13 12:13:17 chainsaw Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/arrayprobe/ChangeLog,v 1.5 2010/01/13 17:53:57 klausman Exp $
+
+*arrayprobe-2.0-r2 (13 Jan 2010)
+
+ 13 Jan 2010; Tobias Klausmann <klausman@gentoo.org>
+ +files/2.0-ida_headers.patch, -arrayprobe-2.0-r1.ebuild,
+ +arrayprobe-2.0-r2.ebuild:
+ Added 2.0-r2 inclduing a patch to make arrayprobe independent of the
+ kernel sources.
*arrayprobe-2.0-r1 (13 Jan 2010)
diff --git a/sys-apps/arrayprobe/Manifest b/sys-apps/arrayprobe/Manifest
index ce9cabe0b5fa..a3a270b49ab2 100644
--- a/sys-apps/arrayprobe/Manifest
+++ b/sys-apps/arrayprobe/Manifest
@@ -1,16 +1,7 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
+AUX 2.0-ida_headers.patch 16391 RMD160 f3dfaa2b05d62cdb90fe48d58fb1f81279355277 SHA1 bb27fe466aec3fce260a35d863be457ea1e21181 SHA256 3d15c33bd0f27754a631f8afdcfb7c4c4ca7ef03b6b425f1f3cada1fcb6d4d56
AUX 2.0-malloc-strlen.patch 1152 RMD160 a616f0903f083777220c673a250c59a3e8e97de0 SHA1 05c0cf59555b05aee1edf91acc5a691e7484cbcf SHA256 6e2db6d203650800b392b600f592bf51bd27ddaf6fa0596415daf5f09a72b481
DIST arrayprobe-2.0.tar.gz 83831 RMD160 c60bd0d26c8517836ae71d09b6e2e71b3405810f SHA1 0a13cfe1339ee88c65202ee8a5cc42eca18f5627 SHA256 ccb560b5c7e8b378d110cad6e9245884e7e673acfa3c4016ef33acd699f1f4d0
-EBUILD arrayprobe-2.0-r1.ebuild 726 RMD160 96f16b19bba3423d718d25d7ea454ca0441f523a SHA1 d6d2bfd059acba801d10d99a0d24e4612720afa2 SHA256 4f17d07acf82bbf099dba4c3c989c9b2495192357f6a04c1bdf52bb5309bf72d
+EBUILD arrayprobe-2.0-r2.ebuild 803 RMD160 273c593bccbcec2410beec184c14098c28e6d0e6 SHA1 ad077827d0165e0de5f1f01000b8e20f87882c32 SHA256 d669227a20877f24e3639d22a83a8fdf5fc5f5c6cac3879d913c0e9c01dea96c
EBUILD arrayprobe-2.0.ebuild 613 RMD160 f859c95a26b4abd9b63ba8a84a91cdd436ad63e3 SHA1 4a80e5c370f66c0c4082bdb9dd45e40331e7ac82 SHA256 ad3159ef306f26e18f3553cda0ccd6d807f5f0a06157fb0a50ebcb5632350ff7
-MISC ChangeLog 900 RMD160 6dc8cd89a4ea23ee9cefc03a5c382dbb9ed9e47d SHA1 29d1939d3fe77b3b0894b89a6347b566c4cca2e3 SHA256 904455afb68004d42c5e3f27963731ea48094ba02d5de0ebbad72eb9402aacf5
+MISC ChangeLog 1166 RMD160 13806d2656ee5ad1127dd5d98a2621e71d186b34 SHA1 8e023d01a0a73b802d8adf075e79f762b53057a3 SHA256 15ca1d6cf9aa52c4c18b77883f4feb98ac8d05931f5b568bbc29e217078ba370
MISC metadata.xml 254 RMD160 823c99a514af57fe285c45f08538b7cc18e6342a SHA1 de5f6d0faac7d5f11daa399f9e875c30cac2ce64 SHA256 2817a53a07dd68fef8ec5467cb1a8441e87d77bd7eaf8ce9971de1adfbab7bdc
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.14 (GNU/Linux)
-
-iEYEARECAAYFAktNuHkACgkQp5vW4rUFj5qnpQCgvPAiBO9qkEYyjEk3Aq57Ptca
-PScAnjyOoXXKsHhgYYLv9bcaG5FpGn04
-=Cx5R
------END PGP SIGNATURE-----
diff --git a/sys-apps/arrayprobe/arrayprobe-2.0-r1.ebuild b/sys-apps/arrayprobe/arrayprobe-2.0-r2.ebuild
index 0b7b1e74a2b5..c15230e7f89a 100644
--- a/sys-apps/arrayprobe/arrayprobe-2.0-r1.ebuild
+++ b/sys-apps/arrayprobe/arrayprobe-2.0-r2.ebuild
@@ -1,8 +1,9 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/arrayprobe/arrayprobe-2.0-r1.ebuild,v 1.1 2010/01/13 12:13:17 chainsaw Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/arrayprobe/arrayprobe-2.0-r2.ebuild,v 1.1 2010/01/13 17:53:57 klausman Exp $
inherit eutils
+inherit autotools
DESCRIPTION="CLI utility that reports the status of a HP (Compaq) array controller (both IDA & CCISS supported)."
HOMEPAGE="http://www.strocamp.net/opensource/arrayprobe.php"
@@ -17,6 +18,8 @@ src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/${PV}-malloc-strlen.patch"
+ epatch "${FILESDIR}/${PV}-ida_headers.patch"
+ eautoreconf
}
src_install() {
diff --git a/sys-apps/arrayprobe/files/2.0-ida_headers.patch b/sys-apps/arrayprobe/files/2.0-ida_headers.patch
new file mode 100644
index 000000000000..fbdb20b87ea6
--- /dev/null
+++ b/sys-apps/arrayprobe/files/2.0-ida_headers.patch
@@ -0,0 +1,647 @@
+diff -Naur arrayprobe-2.0.old/cciss_events.h arrayprobe-2.0/cciss_events.h
+--- arrayprobe-2.0.old/cciss_events.h 2005-12-27 10:51:29.000000000 +0100
++++ arrayprobe-2.0/cciss_events.h 2010-01-13 15:46:53.000000000 +0100
+@@ -27,8 +27,12 @@
+ #define QWORD __u64
+
+ /* from cciss_cmd.h */
++#ifndef CISS_MAX_LUN
+ #define CISS_MAX_LUN 16
++#endif
++#ifndef CISS_MAX_PHYS_LUN
+ #define CISS_MAX_PHYS_LUN 1024
++#endif
+
+ #define CompareEvent(event,par_class,par_subclass,par_detail) \
+ ((event.class.class==par_class) && \
+diff -Naur arrayprobe-2.0.old/configure.ac arrayprobe-2.0/configure.ac
+--- arrayprobe-2.0.old/configure.ac 2006-01-03 13:58:31.000000000 +0100
++++ arrayprobe-2.0/configure.ac 2010-01-13 15:42:49.000000000 +0100
+@@ -19,38 +19,6 @@
+ dnl Check for compile.h (2.6.x kernels only?
+ AC_CHECK_HEADERS(linux/compiler.h)
+
+-dnl Check for kernel sources
+-AC_MSG_CHECKING(for kernel sources)
+-found_kernel_dir=""
+-for kernel_dir in /usr/src/linux /usr/src/linux-2.4
+-do
+- if test -d $kernel_dir/drivers/block ; then
+- CFLAGS="$CFLAGS -I$kernel_dir/include -I$kernel_dir/drivers/block"
+- CPPFLAGS="$CPPFLAGS -I$kernel_dir/include -I$kernel_dir/drivers/block"
+- found_kernel_dir="$kernel_dir"
+- fi
+-done
+-
+-if test "$found_kernel_dir" != "" ; then
+- AC_MSG_RESULT(found $found_kernel_dir )
+-else
+- AC_MSG_ERROR(Kernel sources not found)
+-fi
+-
+-dnl Check Headers
+-AC_CHECK_HEADERS(ida_ioctl.h ida_cmd.h cpqarray.h,,
+- AC_MSG_ERROR(You need to have the complete kernel sources.),[[#include <linux/compiler.h>
+- #include <unistd.h>]])
+-
+-dnl Check version of SmartArray driver
+-AC_MSG_CHECKING(SmartArray driver version)
+-AC_EGREP_HEADER(blk_cnt, ida_ioctl.h,AC_MSG_RESULT(ok),
+- AC_MSG_ERROR(You need to have the SmartArray driver version 1.0.1 or higher installed.))
+-
+-dnl Check for CCISS header file
+-AC_CHECK_HEADERS(linux/cciss_ioctl.h,,
+- AC_MSG_ERROR(You need to have the CCISS driver in the kernel.),[[#include <linux/compiler.h>]])
+-
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+
+diff -Naur arrayprobe-2.0.old/cpqarray.h arrayprobe-2.0/cpqarray.h
+--- arrayprobe-2.0.old/cpqarray.h 1970-01-01 01:00:00.000000000 +0100
++++ arrayprobe-2.0/cpqarray.h 2010-01-13 15:40:11.000000000 +0100
+@@ -0,0 +1,126 @@
++/*
++ * Disk Array driver for Compaq SMART2 Controllers
++ * Copyright 1998 Compaq Computer Corporation
++ *
++ * 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, GOOD TITLE or
++ * NON INFRINGEMENT. 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., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Questions/Comments/Bugfixes to iss_storagedev@hp.com
++ *
++ * If you want to make changes, improve or add functionality to this
++ * driver, you'll probably need the Compaq Array Controller Interface
++ * Specificiation (Document number ECG086/1198)
++ */
++#ifndef CPQARRAY_H
++#define CPQARRAY_H
++
++#ifdef __KERNEL__
++#include <linux/blkdev.h>
++#include <linux/slab.h>
++#include <linux/proc_fs.h>
++#include <linux/timer.h>
++#endif
++
++#include "ida_cmd.h"
++
++#define IO_OK 0
++#define IO_ERROR 1
++#define NWD 16
++#define NWD_SHIFT 4
++
++#define IDA_TIMER (5*HZ)
++#define IDA_TIMEOUT (10*HZ)
++
++#define MISC_NONFATAL_WARN 0x01
++
++typedef struct {
++ unsigned blk_size;
++ unsigned nr_blks;
++ unsigned cylinders;
++ unsigned heads;
++ unsigned sectors;
++ int usage_count;
++} drv_info_t;
++
++#ifdef __KERNEL__
++
++struct ctlr_info;
++typedef struct ctlr_info ctlr_info_t;
++
++struct access_method {
++ void (*submit_command)(ctlr_info_t *h, cmdlist_t *c);
++ void (*set_intr_mask)(ctlr_info_t *h, unsigned long val);
++ unsigned long (*fifo_full)(ctlr_info_t *h);
++ unsigned long (*intr_pending)(ctlr_info_t *h);
++ unsigned long (*command_completed)(ctlr_info_t *h);
++};
++
++struct board_type {
++ __u32 board_id;
++ char *product_name;
++ struct access_method *access;
++};
++
++struct ctlr_info {
++ int ctlr;
++ char devname[8];
++ __u32 log_drv_map;
++ __u32 drv_assign_map;
++ __u32 drv_spare_map;
++ __u32 mp_failed_drv_map;
++
++ char firm_rev[4];
++ int ctlr_sig;
++
++ int log_drives;
++ int phys_drives;
++
++ struct pci_dev *pci_dev; /* NULL if EISA */
++ __u32 board_id;
++ char *product_name;
++
++ void __iomem *vaddr;
++ unsigned long paddr;
++ unsigned long io_mem_addr;
++ unsigned long io_mem_length;
++ int intr;
++ int usage_count;
++ drv_info_t drv[NWD];
++ struct proc_dir_entry *proc;
++
++ struct access_method access;
++
++ cmdlist_t *reqQ;
++ cmdlist_t *cmpQ;
++ cmdlist_t *cmd_pool;
++ dma_addr_t cmd_pool_dhandle;
++ unsigned long *cmd_pool_bits;
++ struct request_queue *queue;
++ spinlock_t lock;
++
++ unsigned int Qdepth;
++ unsigned int maxQsinceinit;
++
++ unsigned int nr_requests;
++ unsigned int nr_allocs;
++ unsigned int nr_frees;
++ struct timer_list timer;
++ unsigned int misc_tflags;
++};
++
++#define IDA_LOCK(i) (&hba[i]->lock)
++
++#endif
++
++#endif /* CPQARRAY_H */
+diff -Naur arrayprobe-2.0.old/ida_cmd.h arrayprobe-2.0/ida_cmd.h
+--- arrayprobe-2.0.old/ida_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ arrayprobe-2.0/ida_cmd.h 2010-01-13 15:40:29.000000000 +0100
+@@ -0,0 +1,349 @@
++/*
++ * Disk Array driver for Compaq SMART2 Controllers
++ * Copyright 1998 Compaq Computer Corporation
++ *
++ * 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, GOOD TITLE or
++ * NON INFRINGEMENT. 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., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Questions/Comments/Bugfixes to iss_storagedev@hp.com
++ *
++ */
++#ifndef ARRAYCMD_H
++#define ARRAYCMD_H
++
++/*#include <asm/types.h>*/
++#if 0
++#include <linux/blkdev.h>
++#endif
++
++/* for the Smart Array 42XX cards */
++#define S42XX_REQUEST_PORT_OFFSET 0x40
++#define S42XX_REPLY_INTR_MASK_OFFSET 0x34
++#define S42XX_REPLY_PORT_OFFSET 0x44
++#define S42XX_INTR_STATUS 0x30
++
++#define S42XX_INTR_OFF 0x08
++#define S42XX_INTR_PENDING 0x08
++
++#define COMMAND_FIFO 0x04
++#define COMMAND_COMPLETE_FIFO 0x08
++#define INTR_MASK 0x0C
++#define INTR_STATUS 0x10
++#define INTR_PENDING 0x14
++
++#define FIFO_NOT_EMPTY 0x01
++#define FIFO_NOT_FULL 0x02
++
++#define BIG_PROBLEM 0x40
++#define LOG_NOT_CONF 2
++
++#pragma pack(1)
++typedef struct {
++ __u32 size;
++ __u32 addr;
++} sg_t;
++
++#define RCODE_NONFATAL 0x02
++#define RCODE_FATAL 0x04
++#define RCODE_INVREQ 0x10
++typedef struct {
++ __u16 next;
++ __u8 cmd;
++ __u8 rcode;
++ __u32 blk;
++ __u16 blk_cnt;
++ __u8 sg_cnt;
++ __u8 reserved;
++} rhdr_t;
++
++#define SG_MAX 32
++typedef struct {
++ rhdr_t hdr;
++ sg_t sg[SG_MAX];
++ __u32 bp;
++} rblk_t;
++
++typedef struct {
++ __u8 unit;
++ __u8 prio;
++ __u16 size;
++} chdr_t;
++
++#define CMD_RWREQ 0x00
++#define CMD_IOCTL_PEND 0x01
++#define CMD_IOCTL_DONE 0x02
++
++typedef struct cmdlist {
++ chdr_t hdr;
++ rblk_t req;
++ __u32 size;
++ int retry_cnt;
++ __u32 busaddr;
++ int ctlr;
++ struct cmdlist *prev;
++ struct cmdlist *next;
++ struct request *rq;
++ int type;
++} cmdlist_t;
++
++#define ID_CTLR 0x11
++typedef struct {
++ __u8 nr_drvs;
++ __u32 cfg_sig;
++ __u8 firm_rev[4];
++ __u8 rom_rev[4];
++ __u8 hw_rev;
++ __u32 bb_rev;
++ __u32 drv_present_map;
++ __u32 ext_drv_map;
++ __u32 board_id;
++ __u8 cfg_error;
++ __u32 non_disk_bits;
++ __u8 bad_ram_addr;
++ __u8 cpu_rev;
++ __u8 pdpi_rev;
++ __u8 epic_rev;
++ __u8 wcxc_rev;
++ __u8 marketing_rev;
++ __u8 ctlr_flags;
++ __u8 host_flags;
++ __u8 expand_dis;
++ __u8 scsi_chips;
++ __u32 max_req_blocks;
++ __u32 ctlr_clock;
++ __u8 drvs_per_bus;
++ __u16 big_drv_present_map[8];
++ __u16 big_ext_drv_map[8];
++ __u16 big_non_disk_map[8];
++ __u16 task_flags;
++ __u8 icl_bus;
++ __u8 red_modes;
++ __u8 cur_red_mode;
++ __u8 red_ctlr_stat;
++ __u8 red_fail_reason;
++ __u8 reserved[403];
++} id_ctlr_t;
++
++typedef struct {
++ __u16 cyl;
++ __u8 heads;
++ __u8 xsig;
++ __u8 psectors;
++ __u16 wpre;
++ __u8 maxecc;
++ __u8 drv_ctrl;
++ __u16 pcyls;
++ __u8 pheads;
++ __u16 landz;
++ __u8 sect_per_track;
++ __u8 cksum;
++} drv_param_t;
++
++#define ID_LOG_DRV 0x10
++typedef struct {
++ __u16 blk_size;
++ __u32 nr_blks;
++ drv_param_t drv;
++ __u8 fault_tol;
++ __u8 reserved;
++ __u8 bios_disable;
++} id_log_drv_t;
++
++#define ID_LOG_DRV_EXT 0x18
++typedef struct {
++ __u32 log_drv_id;
++ __u8 log_drv_label[64];
++ __u8 reserved[418];
++} id_log_drv_ext_t;
++
++#define SENSE_LOG_DRV_STAT 0x12
++typedef struct {
++ __u8 status;
++ __u32 fail_map;
++ __u16 read_err[32];
++ __u16 write_err[32];
++ __u8 drv_err_data[256];
++ __u8 drq_timeout[32];
++ __u32 blks_to_recover;
++ __u8 drv_recovering;
++ __u16 remap_cnt[32];
++ __u32 replace_drv_map;
++ __u32 act_spare_map;
++ __u8 spare_stat;
++ __u8 spare_repl_map[32];
++ __u32 repl_ok_map;
++ __u8 media_exch;
++ __u8 cache_fail;
++ __u8 expn_fail;
++ __u8 unit_flags;
++ __u16 big_fail_map[8];
++ __u16 big_remap_map[128];
++ __u16 big_repl_map[8];
++ __u16 big_act_spare_map[8];
++ __u8 big_spar_repl_map[128];
++ __u16 big_repl_ok_map[8];
++ __u8 big_drv_rebuild;
++ __u8 reserved[36];
++} sense_log_drv_stat_t;
++
++#define START_RECOVER 0x13
++
++#define ID_PHYS_DRV 0x15
++typedef struct {
++ __u8 scsi_bus;
++ __u8 scsi_id;
++ __u16 blk_size;
++ __u32 nr_blks;
++ __u32 rsvd_blks;
++ __u8 drv_model[40];
++ __u8 drv_sn[40];
++ __u8 drv_fw[8];
++ __u8 scsi_iq_bits;
++ __u8 compaq_drv_stmp;
++ __u8 last_fail;
++ __u8 phys_drv_flags;
++ __u8 phys_drv_flags1;
++ __u8 scsi_lun;
++ __u8 phys_drv_flags2;
++ __u8 reserved;
++ __u32 spi_speed_rules;
++ __u8 phys_connector[2];
++ __u8 phys_box_on_bus;
++ __u8 phys_bay_in_box;
++} id_phys_drv_t;
++
++#define BLINK_DRV_LEDS 0x16
++typedef struct {
++ __u32 blink_duration;
++ __u32 reserved;
++ __u8 blink[256];
++ __u8 reserved1[248];
++} blink_drv_leds_t;
++
++#define SENSE_BLINK_LEDS 0x17
++typedef struct {
++ __u32 blink_duration;
++ __u32 btime_elap;
++ __u8 blink[256];
++ __u8 reserved1[248];
++} sense_blink_leds_t;
++
++#define IDA_READ 0x20
++#define IDA_WRITE 0x30
++#define IDA_WRITE_MEDIA 0x31
++#define RESET_TO_DIAG 0x40
++#define DIAG_PASS_THRU 0x41
++
++#define SENSE_CONFIG 0x50
++#define SET_CONFIG 0x51
++typedef struct {
++ __u32 cfg_sig;
++ __u16 compat_port;
++ __u8 data_dist_mode;
++ __u8 surf_an_ctrl;
++ __u16 ctlr_phys_drv;
++ __u16 log_unit_phys_drv;
++ __u16 fault_tol_mode;
++ __u8 phys_drv_param[16];
++ drv_param_t drv;
++ __u32 drv_asgn_map;
++ __u16 dist_factor;
++ __u32 spare_asgn_map;
++ __u8 reserved[6];
++ __u16 os;
++ __u8 ctlr_order;
++ __u8 extra_info;
++ __u32 data_offs;
++ __u8 parity_backedout_write_drvs;
++ __u8 parity_dist_mode;
++ __u8 parity_shift_fact;
++ __u8 bios_disable_flag;
++ __u32 blks_on_vol;
++ __u32 blks_per_drv;
++ __u8 scratch[16];
++ __u16 big_drv_map[8];
++ __u16 big_spare_map[8];
++ __u8 ss_source_vol;
++ __u8 mix_drv_cap_range;
++ struct {
++ __u16 big_drv_map[8];
++ __u32 blks_per_drv;
++ __u16 fault_tol_mode;
++ __u16 dist_factor;
++ } MDC_range[4];
++ __u8 reserved1[248];
++} config_t;
++
++#define BYPASS_VOL_STATE 0x52
++#define SS_CREATE_VOL 0x53
++#define CHANGE_CONFIG 0x54
++#define SENSE_ORIG_CONF 0x55
++#define REORDER_LOG_DRV 0x56
++typedef struct {
++ __u8 old_units[32];
++} reorder_log_drv_t;
++
++#define LABEL_LOG_DRV 0x57
++typedef struct {
++ __u8 log_drv_label[64];
++} label_log_drv_t;
++
++#define SS_TO_VOL 0x58
++
++#define SET_SURF_DELAY 0x60
++typedef struct {
++ __u16 delay;
++ __u8 reserved[510];
++} surf_delay_t;
++
++#define SET_OVERHEAT_DELAY 0x61
++typedef struct {
++ __u16 delay;
++} overhead_delay_t;
++
++#define SET_MP_DELAY
++typedef struct {
++ __u16 delay;
++ __u8 reserved[510];
++} mp_delay_t;
++
++#define PASSTHRU_A 0x91
++typedef struct {
++ __u8 target;
++ __u8 bus;
++ __u8 lun;
++ __u32 timeout;
++ __u32 flags;
++ __u8 status;
++ __u8 error;
++ __u8 cdb_len;
++ __u8 sense_error;
++ __u8 sense_key;
++ __u32 sense_info;
++ __u8 sense_code;
++ __u8 sense_qual;
++ __u32 residual;
++ __u8 reserved[4];
++ __u8 cdb[12];
++} scsi_param_t;
++
++#define RESUME_BACKGROUND_ACTIVITY 0x99
++#define SENSE_CONTROLLER_PERFORMANCE 0xa8
++#define FLUSH_CACHE 0xc2
++#define COLLECT_BUFFER 0xd2
++#define READ_FLASH_ROM 0xf6
++#define WRITE_FLASH_ROM 0xf7
++#pragma pack()
++
++#endif /* ARRAYCMD_H */
+diff -Naur arrayprobe-2.0.old/ida_ioctl.h arrayprobe-2.0/ida_ioctl.h
+--- arrayprobe-2.0.old/ida_ioctl.h 1970-01-01 01:00:00.000000000 +0100
++++ arrayprobe-2.0/ida_ioctl.h 2010-01-13 15:44:46.000000000 +0100
+@@ -0,0 +1,87 @@
++/*
++ * Disk Array driver for Compaq SMART2 Controllers
++ * Copyright 1998 Compaq Computer Corporation
++ *
++ * 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, GOOD TITLE or
++ * NON INFRINGEMENT. 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., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Questions/Comments/Bugfixes to iss_storagedev@hp.com
++ *
++ */
++#ifndef IDA_IOCTL_H
++#define IDA_IOCTL_H
++
++#include "ida_cmd.h"
++#include "cpqarray.h"
++
++#define IDAGETDRVINFO 0x27272828
++#define IDAPASSTHRU 0x28282929
++#define IDAGETCTLRSIG 0x29293030
++#define IDAREVALIDATEVOLS 0x30303131
++#define IDADRIVERVERSION 0x31313232
++#define IDAGETPCIINFO 0x32323333
++
++typedef struct _ida_pci_info_struct
++{
++ unsigned char bus;
++ unsigned char dev_fn;
++ __u32 board_id;
++} ida_pci_info_struct;
++/*
++ * Normally, the ioctl determines the logical unit for this command by
++ * the major,minor number of the fd passed to ioctl. If you need to send
++ * a command to a different/nonexistant unit (such as during config), you
++ * can override the normal behavior by setting the unit valid bit. (Normally,
++ * it should be zero) The controller the command is sent to is still
++ * determined by the major number of the open device.
++ */
++
++#define UNITVALID 0x80
++typedef struct {
++ __u8 cmd;
++ __u8 rcode;
++ __u8 unit;
++ __u32 blk;
++ __u16 blk_cnt;
++
++/* currently, sg_cnt is assumed to be 1: only the 0th element of sg is used */
++ struct {
++ void *addr;
++ size_t size;
++ } sg[SG_MAX];
++ int sg_cnt;
++
++ union ctlr_cmds {
++ drv_info_t drv;
++ unsigned char buf[1024];
++
++ id_ctlr_t id_ctlr;
++ drv_param_t drv_param;
++ id_log_drv_t id_log_drv;
++ id_log_drv_ext_t id_log_drv_ext;
++ sense_log_drv_stat_t sense_log_drv_stat;
++ id_phys_drv_t id_phys_drv;
++ blink_drv_leds_t blink_drv_leds;
++ sense_blink_leds_t sense_blink_leds;
++ config_t config;
++ reorder_log_drv_t reorder_log_drv;
++ label_log_drv_t label_log_drv;
++ surf_delay_t surf_delay;
++ overhead_delay_t overhead_delay;
++ mp_delay_t mp_delay;
++ scsi_param_t scsi_param;
++ } c;
++} ida_ioctl_t;
++
++#endif /* IDA_IOCTL_H */
+diff -Naur arrayprobe-2.0.old/probe.c arrayprobe-2.0/probe.c
+--- arrayprobe-2.0.old/probe.c 2006-01-03 14:11:17.000000000 +0100
++++ arrayprobe-2.0/probe.c 2010-01-13 15:45:22.000000000 +0100
+@@ -33,10 +33,9 @@
+ #include <getopt.h>
+ #include <errno.h>
+
+-#include <linux/compiler.h>
+ #include <linux/cciss_ioctl.h>
+
+-#include <ida_ioctl.h>
++#include "ida_ioctl.h"
+
+ #include "cciss_events.h"
+