$NetBSD: patch-cb,v 1.10 2018/09/27 15:29:06 triaxx Exp $ Support for Common Access Method. --- interface/low_interface.h.orig 2008-09-11 10:43:52.000000000 +0000 +++ interface/low_interface.h @@ -26,6 +26,7 @@ #include #include +#ifdef __linux__ #include #include @@ -54,6 +55,26 @@ #include #include +#elif defined(__sun) + +#include + +#elif defined(__FreeBSD__) || defined(__DragonFly__) + +#include +#include + +#define CAM_NO_SCSI_INQUIRY +#include +#include +#include + +#elif defined(__NetBSD__) + +#include +#include +#endif + #include "cdda_interface.h" #ifndef SG_EMULATED_HOST @@ -100,17 +121,29 @@ typedef struct sg_io_hdr struct cdda_private_data { struct sg_header *sg_hd; unsigned char *sg_buffer; /* points into sg_hd */ +#if defined(__APPLE__) && defined(__MACH__) + /* don't need clock */ +#else clockid_t clock; +#endif int last_milliseconds; }; #define MAX_RETRIES 8 #define MAX_BIG_BUFF_SIZE 65536 #define MIN_BIG_BUFF_SIZE 4096 +#ifdef __linux__ #define SG_OFF sizeof(struct sg_header) +#elif defined(__FreeBSD__) || defined(__DragonFly__) +#define SG_OFF (0) +#elif defined(__NetBSD__) +#define SG_OFF sizeof(scsireq_t) +#endif extern int cooked_init_drive (cdrom_drive *d); +#if !defined(__FreeBSD__) && !defined(__DragonFly__) extern unsigned char *scsi_inquiry (cdrom_drive *d); +#endif extern int scsi_init_drive (cdrom_drive *d); #ifdef CDDA_TEST extern int test_init_drive (cdrom_drive *d);