Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make AROS CDVDFS work on AmigaOS (again) #637

Closed
wants to merge 61 commits into from

Conversation

reinauer
Copy link
Contributor

  • GFLG_GADGHIGHBITS: Fix incorrect usages.
  • rom/filesys/afs: Fix issue where OpenFromLock() returns NULL on success
  • Fix for adding windows entry to grub
  • Adjust to change in keymap limiting Hi to 0x38
  • Further relax condition
  • Avoid generating empty .fd files as they have no value
  • Also filter out devices without functions
  • Allow renaming into exclusively locked directory
  • Pass the tags containing project name and lock to CLI launch
  • Set the correct mask via ohciEnableInt when enabling interrupt
  • After MUIA_String_Contents, MUIA_String_Acknowledge has same value
  • 2023 -> 2024
  • Increase priority of close function to guarantee free() working
  • Extend check during rename to allow change of capitalization of name
  • Don't translate error when it is already DOS error
  • Allow changing capitalization of name when renaming
  • Allow changing capitalization of name when renaming
  • Fix warnings
  • 64-bit fix.
  • Fix reading random memory
  • 64-bit fix
  • Silence debug
  • Listtree.mcc: Rework CreateImage workaround for 64-bits
  • Fix warnings related to C library functions
  • Add workaround for problem visible in C++ code
  • Extend CreateImage hack
  • Fix for '*' in sscanf
  • Port newer version of random.c from FreeBSD
  • Fix: Mark ata_32bit object for '32bit' argument
  • Replace enableusb option with noioapic
  • Add information at the top to avoid confusion
  • Default state of ata_32bit is disabled
  • Add separate tabs for ATA, AHCI and NVME
  • Implement support for ATA=disable argument
  • Add support for AHCI=disable and NVME=disable
  • Implement AHCI=force150/force300/force600
  • Localize strings
  • Update version
  • Update ftmanager.c
  • Catalog submodules updated.
  • Use github mirror of PCIIDS project. Main site sometimes fails.
  • CDVDFS: Trim whitespace
  • CDVDFS: Use CopyMem where possible
  • CDVDFS: Fix dbprintf / dbinit / dbuninit
  • CDVDFS: Allow use of OpenLibrary for opening libraries
  • CDVDFS: Ensure filesystem IDs are available
  • CDVDFS: Use %lx instead of %p for pointers
  • CDVDFS: Get CDVDFS working on AmigaOS
  • CDVDFS: Fix manual dependencies in GNUMakefile
  • CDVDFS: Serial Debugging on AmigaOS
  • CDVDFS: Properly cast parameters for FindToolType()
  • CDVDFS: Cleanup_CDROM: Don't dereference p_cd if it is NULL
  • CDVDFS: checkcd: Fix inverted NULL pointer check
  • CDVDFS: cdrom.c: Check pointers in Start_Play_Audio() and Stop_Play_Audio()
  • CDVDFS: device.c: Check return code of Mount_Check()
  • CDVDFS: devsupp: Secure string copies in Get_Startup()
  • CDVDFS: generic.c: Don't dereference potential NULL pointers
  • CDVDFS: hfs: file names can be 30 characters long
  • CDVDFS: generic: Prevent NULL pointer dereference in Close_Object()
  • CDVDFS: Use D(bug()); consistently where applicable
  • CDVDFS: Bring version numbers and date in sync

ezrec and others added 30 commits February 9, 2024 00:33
GFLG_GADGHIGHBITS was being used incorrectly in a few locations in Inutition and Icon libraries.

Specifically, GFLG_GADGHIGHBITS is a mask against the set of one of the following:
   GFLG_GADGHCOMP
   GFLG_GADGHBOX
   GFLG_GADGHIMAGE
   GFLG_GADGHNONE
Execute() returns information whether command was executed, not the return
code of command.
Without this change random, unallocated memory was read when using
default (coming from keymap.library) keymap and this could cause a crash.
Based on tests of several pen-drives formatted under Linux Mint to
FAT32 LBA (0x0c)
Rationale:
1) none of the other file systems does this check
2) it is currently possible to create a file in exclusively locked
directory and there is indication that in past it was blocked the same
way as renaming. Changing rename synchronize logic in both paths.
This allows executing tool from "Shell" with an argument via clicking. The
code was like this until rev. 31196. It looks like it's a side-effect of
that commit, not intention.

Note: OS3.9 as well as Scalos both allow this mode

This fixes deadwood2/AROS#64
This fix extends rev 39050. When interrupt is disabled via ohicDisableInt
is it removed from hc_PCIIntEnMask. Enabling HUBCHANGE interrupt without
setting this mask was causing the interrupt to be raised but without
code to handle, causing USB to stop issuing next interrupts.

Problem became visible when starting ASUS M2N68-AM SE2 with usb
keyboard and pendrive connected. USB interrupt was not handled correctly
and USB stack was freezing, blocking IRQ5 which also happened
to be IRQ of SATA.

This fixes deadwood2/AROS#111
At priority 0, C memory management is shutdown.
This was causing the previous errno (reported during fixcase) to be
reported as effect of Rename rather then error reported in nocase_rename()
Field background is used as storage in GetAttr call and thus must be IPTR
mgi_Prefs have frame fields of count MUIV_Frame_Count. Having
MUIV_Frame_Register as higher value than count was causing reading of
random memory in zframe->draw.

Note: loading and saving of settings for MUIV_Frame_Register is not
implemented.

This change is backward compatible. ZunePrefsNew is internal and mgi_Prefs
pointer from MUI_GlobalInfo is not even exposed in public headers.
Literals are treated as int (32-bit) by default. This causes wrong 64-bit
values for negative numbers which are transported via APTR-size fields.
Extend the literals to size of long depending on platform.
The assumption of struct ListImage and NList image structure having obj
at the same offset is not valid under 64-bits
In C code, p SysBase gives $1 = (struct ExecBase *)addr, however when
first C++ debugging information is loaded, this is change into
$1 = (ExecBase *)addr. This results in $SysBase = (ExecBase *)addr and
gdb complaining about ExecBase type not being known.

The hack makes sure that output is always $SysBase = (struct ExecBase*)addr
It now support case where address differ in number of digits and falls
back to not displaying any images instead of displaying broken text when
the hack fails
Ignore ('*') comes before width and length, not after width. Previous code
was failing where there was * and width.
This version correctly supports 64-bit systems with datasizes fixed at 32
bit integers rather than "longs" as in old version.
'enableusb' is no longer present in source code and 'noioapic' comes handy
on some configurations
deadwood and others added 28 commits February 9, 2024 00:33
Paths to the font directory should not be translated
Consistent use of CopyMem across the code base
dbprintf was changed to pass struct CDVDBase * as the first parameter.
This was not consistently fixed in the code base.

Function prototypes need to be terminated with a semicolon.
When compiling CDVDFS for AmigaOS TaggedOpenLibrary is not available
On AmigaOS these are not available. Define them conditionally.
RawDoFmt() does not support %p on AmigaOS
This fixes the following warning:

intui.c: In function 'Init_Intui':
intui.c:143:24: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
                 name = FindToolType (global->g_user_disk_object->do_ToolTypes, "ICONNAME");
                        ^~~~~~~~~~~~
g_resource_fork_extension and g_data_fork_extension are both limited
to 17 bytes. Make sure we don't copy more than 17 bytes.
There's no need to make the filename 1 character long and then pad
it out with 32 characters.
CDVDFS has a variety of debug implementations that are inconsistently used
across the files. One variant is enough.
@reinauer
Copy link
Contributor Author

Woah not sure what happened here

@reinauer reinauer closed this Feb 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants