#include <stdio.h>
#include <string.h>
#include <sys/types.h>
+#include <errno.h>
#include "config.h"
-#if defined(linux)
+#if defined(linux) || defined(__linux__)
# include <sys/ioctl.h>
# ifdef HAVE_LINUX_COMPILER_H
# include <linux/compiler.h>
# define _HAVE_CCISS
# endif
# include <asm/byteorder.h>
-# define be32toh __be32_to_cpu
-#elif defined(__FreeBSD__) && defined(HAVE_DEV_CISS_CISSIO_H)
+# ifndef be32toh
+# define be32toh __be32_to_cpu
+# endif
+#elif defined(__FreeBSD__)
# include <sys/endian.h>
-# include <dev/ciss/cissio.h>
+# include CISS_LOCATION
+# define _HAVE_CCISS
+#elif defined(__FreeBSD_kernel__)
+# include <endian.h>
+# ifdef __GLIBC__
+# include <bsd/sys/cdefs.h>
+# include <stdint.h>
+# endif
+# include CISS_LOCATION
# define _HAVE_CCISS
#endif
#ifdef _HAVE_CCISS
+#include "cciss.h"
#include "int64.h"
#include "scsicmds.h"
#include "utility.h"
+const char * cciss_cpp_cvsid = "$Id: cciss.cpp 4156 2015-10-18 12:20:40Z samm2 $"
+ CCISS_H_CVSID;
+
typedef struct _ReportLUNdata_struct
{
uint32_t LUNListLength; /* always big-endian */
unsigned char pBuf[512] = {0};
unsigned char phylun[8] = {0};
int iBufLen = 512;
- int status = -1;
int len = 0; // used later in the code.
- status = cciss_getlun(device, target, phylun, report);
+ int status = cciss_getlun(device, target, phylun, report);
if (report > 0)
printf(" cciss_getlun(%d, %d) = 0x%x; scsi3addr: %02x %02x %02x %02x %02x %02x %02x %02x\n",
device, target, status,
if ((err = ioctl(fd, CCISS_PASSTHRU, &iocommand)))
{
- fprintf(stderr, "CCISS ioctl error %d (fd %d CDBLen %d buf_size %d)\n",
+ fprintf(stderr, "CCISS ioctl error %d (fd %d CDBLen %u buf_size %u)\n",
fd, err, CDBlen, size);
}
return err;
unsigned char CDB[16]= {0};
ReportLunData_struct *luns;
int reportlunsize = sizeof(*luns) + CISS_MAX_PHYS_LUN * 8;
- int i;
int ret;
luns = (ReportLunData_struct *)malloc(reportlunsize);
pout("%02x ",*stuff++);
pout("%02x\n",*stuff++);
}
- pout("===== [%s] DATA END (%d Bytes) =====\n\n", "LUN DATA", sizeof(_ReportLUNdata_struct));
+ pout("===== [%s] DATA END (%u Bytes) =====\n\n", "LUN DATA", (unsigned)sizeof(_ReportLUNdata_struct));
}
if (target >= 0 && target < (int) be32toh(luns->LUNListLength) / 8)