Commit Graph
386 Commits
Author SHA1 Message Date
Julian Frohmüller 1a8895f940 oscdriver: add concurrency protection for shared globals and queue counters
Add spinlock driver_lock to protect queue_count, working_queue and
request_queue from concurrent access between IOCTL handler and
block device request handler.

Wrap all cross-context flag reads (stop_signal, data_drive_active,
lockup_detected, return_zeros_on_error, io_scsi_only) with READ_ONCE
and all writes with WRITE_ONCE to prevent compiler-mangled reads and
tearing. These flags are accessed from both the IOCTL control path
and the block device data path without an explicit lock.

Protect queue counter resets in START command with the spinlock.
2026-06-15 11:24:38 +02:00
Julian Frohmüller 2da45fdf15 oscdriver: handle missing SCSI commands
Add handlers for TEST UNIT READY, REQUEST SENSE, START STOP UNIT,
PREVENT ALLOW MEDIUM REMOVAL, MODE SENSE(6/10), MODE SELECT(6/10),
FORMAT UNIT, SYNCHRONIZE CACHE(10/16), VERIFY(10/16),
READ FORMAT CAPACITIES, READ DEFECT DATA(10/12), REPORT LUNS,
and REZERO UNIT.

Most return success immediately (no-op for a virtual device backed
by userspace). Write/modify commands return -EROFS. Previously all
fell through to -EINVAL, causing OS utilities to retry or time out.
2026-06-15 11:22:01 +02:00
Julian Frohmüller cf4533a5de Fix all -Wstringop-truncation, -Wstringop-overflow, and -Wformat-truncation warnings; add -Wno-unused-result flag 2026-06-14 17:01:24 +02:00
Julian Frohmüller fe756b133a Fix type mismatch, strncpy truncation, and off-by-one error in usb error prints 2026-06-14 16:46:09 +02:00
Julian Frohmüller 92228df860 Add "clean" option to build and install scripts 2026-06-14 16:44:30 +02:00
Julian Frohmüller 5474debc6f Get rid of some string truncation warnings 2026-06-01 20:07:42 +02:00
Julian Frohmüller d9f4eedf53 Get rid of more warnings in opensuperclone.c 2026-06-01 19:58:54 +02:00
Julian Frohmüller 2299622662 Fix conditional statement in process_resources_ccc 2026-06-01 19:58:23 +02:00
Julian Frohmüller e3cb372b12 Get rid of warnings for unused variables. 2026-06-01 19:35:09 +02:00
Julian Frohmüller 5edd49ead6 Disable compile-time warnings about unused parameters 2026-05-28 12:09:25 +02:00
Julian Frohmüller fce15d53a3 Get rid of compile-time warnings in OSCViewer build 2026-05-28 11:44:53 +02:00
ISpillMyDink d88384d849 Add missing libm dependency 2026-04-10 09:03:35 +02:00
ISpillMyDrink 50f8c29d42 oscviewer: add option to follor current block on auto-update 2026-04-09 17:39:25 +02:00
ISpillMyDrink da5332f1bc Merge remote-tracking branch 'refs/remotes/origin/main' 2026-04-09 17:09:47 +02:00
Julian Frohmüller 4b6f47932a Update README.md 2026-04-09 16:42:56 +02:00
ISpillMyDrink 9957a9d053 oscviewer: add default view settings to config file and settings window 2026-04-09 16:37:05 +02:00
ISpillMyDrink 059bd015a3 oscviewer: add a "Jump to Current" menu entry 2026-04-09 16:07:52 +02:00
ISpillMyDrink 2307843956 oscviewer: cache render surfaces to greatly improve performance 2026-04-09 15:57:51 +02:00
Julian Frohmüller 05f268abf5 Add a default window width and height option to configuration file. 2026-04-05 10:22:15 +02:00
Julian Frohmüller 02734b9199 Add debugger configuration for VSCode. 2026-04-05 10:01:41 +02:00
ISpillMyDink 12eb245d91 Add a "--port" command line option for direct modes 2026-03-02 11:39:56 +01:00
ISpillMyDink ed061ab18d Fix command line parsing in CLI mode 2026-03-02 11:16:41 +01:00
Julian Frohmüller 697e2b3d1a oscscript: add WD ROYL RAM patches to VSC menu 2026-02-25 13:54:55 +01:00
Julian Frohmüller 48c51a416b oscscript: move rebuild assist scripts into script root 2026-02-23 19:31:18 +01:00
Julian Frohmüller c6c083af40 oscscript: delete redundant files 2026-02-23 19:10:01 +01:00
Julian Frohmüller d19ee8ca76 oscscript: move WD ROYL module 0x02 RAM patches into script root 2026-02-23 19:04:05 +01:00
Julian Frohmüller 6bc6770f02 Update copyright year to 2026 2026-02-23 13:35:19 +01:00
Julian Frohmüller d8f225179b oscscript: simplify some scripts by using status_check wherever applicable 2026-02-23 12:00:40 +01:00
Julian Frohmüller 8d2aeb20ed oscscript: move ata_execute_diagnostic and ata_idle_immediate_unload to oscscript root 2026-02-23 11:54:29 +01:00
Julian Frohmüller 2807d24d10 oscscript: remove redundant ata_identify_device script 2026-02-23 11:53:46 +01:00
Julian Frohmüller 266146fe0f oscscript: Move status_check to good_subroutines.osc 2026-02-23 11:01:15 +01:00
Julian Frohmüller 2d6b96f5bd Normalize formatting of all scripts 2026-02-21 12:34:38 +01:00
Julian Frohmüller 68550d3209 Add .osc suffix to all script files so they get detected as OSCScript files by VSCode. 2026-02-20 20:01:59 +01:00
Julian Frohmüller 0194ced772 Update README to include information about the scripting engine 2026-02-20 13:54:08 +01:00
Julian Frohmüller 186fe6fce9 Fix typo in clone_gui.h. 2025-12-29 11:04:21 +01:00
Julian Frohmüller c2aad7be5e Move drive detection after source selection into a separate function. 2025-12-23 11:17:22 +01:00
ISpillMyDrink eca7333e7a Create default config file if none exists. 2025-12-22 15:06:01 +01:00
Julian Frohmüller 42284d9ab0 Fix release text in Github action v2.5.1-alpha1 2025-12-22 12:18:53 +01:00
Julian Frohmüller aab511b522 Update release action to Ubuntu 22.04. 2025-12-22 12:16:25 +01:00
Julian Frohmüller 25ad915e7b Load default settings from config file at program start. 2025-12-22 11:23:32 +01:00
Julian Frohmüller bfeb1cfb6c Include primary relay settings in template files. 2025-12-22 11:09:13 +01:00
Julian Frohmüller a09c6b13d0 Merge branch 'main' of https://github.com/ispillmydrink/opensuperclone 2025-12-21 18:46:56 +01:00
Julian Frohmüller 1c5d207e2e Bump OSCDriver version to 2.6.8. 2025-12-19 19:52:33 +01:00
Julian Frohmüller 8620f3626f Update changelog for OpenSuperClone 2.5.1
Updated changelog for OpenSuperClone to reflect new driver support and added recovery settings functionality.
2025-12-19 19:51:53 +01:00
Julian Frohmüller b85cc1baa1 Merge pull request #30 from piernov/fix/kernel-6.18
oscdriver: Fix for linux 6.18.0
2025-12-19 19:29:59 +01:00
ISpillMyDrink 2fa63ea709 Fix timer settings not being loaded correctly. 2025-12-19 17:07:49 +01:00
ISpillMyDrink ed8d2e3c66 Update default SSD template. 2025-12-19 16:59:59 +01:00
ISpillMyDrink 6eaa06e8fd Actually load the SSD configuration when an SSD is detected. 2025-12-19 16:40:45 +01:00
ISpillMyDrink cef15ffcbb Check if source drive is an SSD and recommend optimized settings. 2025-12-19 16:36:08 +01:00
ISpillMyDrink 69a35a260f Check if a template for the source drive is present and ask to load it if so. 2025-12-19 15:56:43 +01:00