#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>
# ifndef be32toh
# define be32toh __be32_to_cpu
# endif
-#elif defined(__FreeBSD__) && defined(HAVE_DEV_CISS_CISSIO_H)
+#elif defined(__FreeBSD__)
# include <sys/endian.h>
-# include <dev/ciss/cissio.h>
+# include CISS_LOCATION
# define _HAVE_CCISS
-#elif defined(__FreeBSD_kernel__) && defined(HAVE_DEV_CISS_CISSIO_H)
+#elif defined(__FreeBSD_kernel__)
# include <endian.h>
-# include <dev/ciss/cissio.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_c_cvsid="$Id: cciss.cpp,v 1.9 2008/07/30 20:42:53 chrfranke Exp $"
-CONFIG_H_CVSID INT64_H_CVSID SCSICMDS_H_CVSID UTILITY_H_CVSID;
+const char * cciss_cpp_cvsid = "$Id: cciss.cpp 3945 2014-07-13 15:29:05Z chrfranke $"
+ CCISS_H_CVSID;
typedef struct _ReportLUNdata_struct
{