patch-2.2.18 linux/drivers/scsi/cpqioctl.c
Next file: linux/drivers/scsi/eata_dma.c
Previous file: linux/drivers/scsi/cpqfcTSworker.c
Back to the patch index
Back to the overall index
- Lines: 77
- Date:
Fri Sep 15 22:44:39 2000
- Orig file:
v2.2.17/drivers/scsi/cpqioctl.c
- Orig date:
Thu Jan 1 01:00:00 1970
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/drivers/scsi/cpqioctl.c linux/drivers/scsi/cpqioctl.c
@@ -0,0 +1,76 @@
+// Test program for CPQFCTS ioctl calls
+// build with:
+// gcc -o cpqioctl cpqioctl.c
+// ld -o cpqioctl /lib/crt0.o cpqioctl.o -lc
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <linux/types.h>
+#include "../../include/scsi/scsi.h"
+#include "cpqfcTSioctl.h"
+
+typedef struct scsi_fctargaddress {
+ unsigned long host_port_id;
+ unsigned char host_wwn[8];
+} Scsi_FCTargAddress;
+
+int main(int argc, char **argv) {
+
+ int fd, i;
+ Scsi_FCTargAddress targ;
+ int uselect=0;
+
+
+
+ if ( argc < 2 ) {
+ printf("usage: cpqioctl <Devfile>\n");
+ exit(1);
+ }
+
+ if ( (fd = open(argv[1], O_RDONLY)) == -1) {
+ perror("open");
+ exit(1);
+ }
+
+ if ( ioctl(fd, SCSI_IOCTL_FC_TARGET_ADDRESS, &targ) ) {
+ perror("ioctl");
+ exit(1);
+ }
+
+
+ printf("portid: %08x. wwn: ", targ.host_port_id);
+
+ for (i=0;i<8;i++) printf(" %02x", targ.host_wwn[i]);
+ printf("\n");
+
+ while( uselect != 27 ) // not ESC key
+ {
+ printf("\n IOCTL \n");
+ printf( "1. Get PCI info\n");
+ printf( "2. Send Passthru\n");
+ printf( " ==> ");
+ scanf("%c", &uselect);
+
+ switch( uselect )
+ {
+ case '1':
+ {
+ cciss_pci_info_struct pciinfo;
+
+ if( ioctl( fd, CCPQFCTS_GETPCIINFO ,&pciinfo ))
+ perror("ioctl");
+ else
+ printf( "\nPCI bus %d, dev_fn %d, board_id %Xh\n",
+ pciinfo.bus, pciinfo.dev_fn, pciinfo.board_id);
+ }
+
+ }
+ }
+
+
+ close(fd);
+ return 0;
+}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)