| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | // Compile-time configuration parameters.// Other settings can be set by ini file at runtime.#pragma once#include <BlueSCSI_platform.h>// Use variables for version number#define FW_VER_NUM      "2024.04.03"#define FW_VER_SUFFIX   "dev"#define BLUESCSI_FW_VERSION FW_VER_NUM "-" FW_VER_SUFFIX// Configuration and log file paths#define CONFIGFILE  "bluescsi.ini"#define LOGFILE     "log.txt"#define CRASHFILE   "err.txt"// Log buffer size in bytes, must be a power of 2#ifndef LOGBUFSIZE#define LOGBUFSIZE 16384#endif#define LOG_SAVE_INTERVAL_MS 1000// Watchdog timeout// Watchdog will first issue a bus reset and if that does not help, crashdump.#define WATCHDOG_BUS_RESET_TIMEOUT 15000#define WATCHDOG_CRASH_TIMEOUT 30000// HDD image file format#define HDIMG_ID_POS  2                 // Position to embed ID number#define HDIMG_LUN_POS 3                 // Position to embed LUN numbers#define HDIMG_BLK_POS 5                 // Position to embed block size numbers#define MAX_FILE_PATH 64                // Maximum file name length// Image definition options#define IMAGE_INDEX_MAX 9               // Maximum number of 'IMG0' style statements parsed// SCSI config#define NUM_SCSIID  8          // Maximum number of supported SCSI-IDs (The minimum is 0)#define NUM_SCSILUN 1          // Maximum number of LUNs supported     (Currently has to be 1)#define READ_PARITY_CHECK 0    // Perform read parity check (unverified)// SCSI raw fallback configuration when no image files are detected// Presents the whole SD card as an SCSI drive#define RAW_FALLBACK_ENABLE 1#define RAW_FALLBACK_SCSI_ID 1#define RAW_FALLBACK_BLOCKSIZE 512// Default SCSI drive information (can be overridden in INI file)// Selected based on device type (fixed, removable, optical, floppy, mag-optical, tape)// Each entry has {vendor, product, version, serial}// If serial number is left empty, SD card serial number is used.#define DRIVEINFO_FIXED     {"BlueSCSI", "HARDDRIVE", PLATFORM_REVISION, ""}#define DRIVEINFO_REMOVABLE {"BlueSCSI", "REMOVABLE", PLATFORM_REVISION, ""}#define DRIVEINFO_OPTICAL   {"BlueSCSI", "CDROM",     PLATFORM_REVISION, ""}#define DRIVEINFO_FLOPPY    {"BlueSCSI", "FLOPPY",    PLATFORM_REVISION, ""}#define DRIVEINFO_MAGOPT    {"BlueSCSI", "MO_DRIVE",  PLATFORM_REVISION, ""}#define DRIVEINFO_NETWORK   {"Dayna",    "SCSI/Link", "2.0f", ""}#define DRIVEINFO_TAPE      {"BlueSCSI", "TAPE",      PLATFORM_REVISION, ""}// Default SCSI drive information when Apple quirks are enabled#define APPLE_DRIVEINFO_FIXED     {"QUANTUM",  "BlueSCSI Pico",   "1.0",  ""}#define APPLE_DRIVEINFO_REMOVABLE {"IOMEGA",   "BETA230",         "2.02", ""}#define APPLE_DRIVEINFO_OPTICAL   {"BlueSCSI", "CD-ROM CDU-55S",  "1.9a", ""}#define APPLE_DRIVEINFO_FLOPPY    {"TEAC",     "FD235HS",         "1.44", ""}#define APPLE_DRIVEINFO_MAGOPT    {"MOST",     "RMD-5200",        "1.0",  ""}#define APPLE_DRIVEINFO_NETWORK   {"Dayna",    "SCSI/Link",       "2.0f", ""}#define APPLE_DRIVEINFO_TAPE      {"BlueSCSI", "APPLE_TAPE",      "",     ""}// Default Iomega ZIP drive information#define IOMEGA_DRIVEINFO_ZIP100     {"IOMEGA", "ZIP 100", "E.08", ""}#define IOMEGA_DRIVEINFO_ZIP250     {"IOMEGA", "ZIP 250", "42.S", ""}#define IOMEGA_DRIVEINFO_JAZ        {"iomega", "jaz", "", ""}// Default delay for SCSI phases.// Can be adjusted in ini file#define DEFAULT_SCSI_DELAY_US 10#define DEFAULT_REQ_TYPE_SETUP_NS 500// Use prefetch buffer in read requests#ifndef PREFETCH_BUFFER_SIZE#define PREFETCH_BUFFER_SIZE 8192#endif/** * @filename - name of the file to be evaluated for block size * @scsiId - ID of the device we're looking to get the block size for * @default_size - if block size cant be determined use this value*/int getBlockSize(char *filename, int scsiId, int default_size);int getImgDir(int scsiId, char* dirname);int getImg(int scsiId, int img_index, char* filename);int getToolBoxSharedDir(char * dir_name);
 |