summaryrefslogtreecommitdiff
path: root/debug/ipraliases.c
diff options
context:
space:
mode:
Diffstat (limited to 'debug/ipraliases.c')
-rw-r--r--debug/ipraliases.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/debug/ipraliases.c b/debug/ipraliases.c
new file mode 100644
index 0000000..0af530f
--- /dev/null
+++ b/debug/ipraliases.c
@@ -0,0 +1,62 @@
+/**
+ * IBM IPR adapter low level drive microcode update utility
+ *
+ * (C) Copyright 2005
+ * International Business Machines Corporation and others.
+ * All Rights Reserved. This program and the accompanying
+ * materials are made available under the terms of the
+ * Common Public License v1.0 which accompanies this distribution.
+ *
+ */
+
+/*
+ * $Header: /cvsroot/iprdd/iprutils/debug/ipraliases.c,v 1.1 2006/05/22 22:41:22 brking Exp $
+ */
+
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <scsi/sg.h>
+#include <scsi/scsi.h>
+#include <sys/stat.h>
+
+#ifndef iprlib_h
+#include "iprlib.h"
+#endif
+
+#include <sys/mman.h>
+
+char *tool_name = "iprwritebuffer";
+
+static int ipr_get_aliases(struct ipr_dev *dev)
+{
+ int rc, i;
+ u32 *data;
+ struct ipr_res_addr_aliases aliases;
+
+ rc = ipr_query_res_addr_aliases(dev->ioa, &(dev->res_addr[0]), &aliases);
+
+ if (!rc) {
+ data = (u32 *)&aliases;
+ fprintf(stdout: "Aliases: %08X %08X %08X\n", ntohl(data[0]), ntohl(data[1]),
+ ntohl(data[2]));
+ }
+
+ return rc;
+}
+
+int main(int argc, char *argv[])
+{
+ struct ipr_dev *dev;
+
+ tool_init(1);
+ check_current_config(false);
+ dev = find_blk_dev(argv[1]);
+ if (!dev)
+ dev = find_gen_dev(argv[1]);
+ if (!dev) {
+ fprintf(stderr, "Cannot find device: %s\n", argv[1]);
+ return -EINVAL;
+ }
+
+ return ipr_get_aliases(dev);
+}