AIX 4.3 SCSI ioctl command with IBM 6228

From: Joseph Krauze (jkrauze_at_ccs.neu.edu)
Date: 09/29/03


Date: Mon, 29 Sep 2003 14:29:18 -0400

Hello,

I have a small utility that sends inquiry command to a fiber channel card
using an ioctl call. I open succeeding rhdisk files with openx in
diagnostic mode. I then continue to call ioctl(fd, DKIOCMD, mystruct),
where mystruct is of type struct sc_iocmd, and DKIOCMD implies a
diagnostic inquiry.

The problem is that I am getting an invalid return value, EINVAL, which
tells me that either one of my parameters is wrong and/or the combination
of the arguments is wrong. This could mean that my structure is not filled in
correctly which I have already considered but does not seem to be the
case.

The thing is that this utility has worked in the past with other cards.
With the IBM 6228 it ceases to work. I understand that the IBM 6228 is 64
bit and the sc_iocmd struct is 32 bit but I wouldn't think it should cause
a problem. I also tried using ioctlx() instead and no progress has been
made. The 64-bit sc_cmd struct is resevred for the kernel domain only.

Any ideas or comments?

Thanks,
Joe K.