1
0
mirror of https://github.com/deadw00d/AROS.git synced 2026-03-17 17:09:26 +00:00
Commit Graph

48704 Commits

Author SHA1 Message Date
656e633bc8 Adjust pc-i386 debug code to changes in exec/debug 2025-11-29 08:15:14 +01:00
b238687fcf Enforce gnu11 C standard for GMP so it compiles with gcc 15 too. 2025-11-28 21:04:54 +01:00
19d6fde03a Fix fd2inline build with gcc 15. Also tested with gcc 11. 2025-11-28 21:00:19 +01:00
8fdb3590bb Protect against empty screen
Moving USB mouse during booting was causing a crash in intuition. Input
events were pumped before screen was opened. Same thing could happen during
resolution change. Other places in input handler already check if screen
is actually available.
2025-11-25 10:44:26 +01:00
7090535e8b Change resolution as effect of setting ModeID only when using fakegfxhidd
This support is needed for Gfx_Show but when enabled together with
Gfx_ShowViewPorts it causes graphics glitches on screens under visible
screen.
2025-11-24 19:25:50 +01:00
64361b7d5b Update required packages
xorriso and mtools are needed for new way of building ISO
2025-11-24 18:36:40 +01:00
9c176f4b4d Disallow FillRect beyond bounds of framebuffer
Generic Gfx_Show implementation clears the "unused" framebuffer when
switching to lower resolution. However in reality it's still the same
memory simply with different stride, so drawing "beyond" the visible
dimensions simply draws on visible framebufffer but with translated
coordinates.
2025-11-24 18:36:04 +01:00
de9b1f931d Change resolution as result of setting ModeID on framebuffer bitmap
This is required for generic implementation of Gfx_Show to work correctly.
Gfx_Show is used when in software cursor mode.
2025-11-24 18:33:30 +01:00
a7e64933ab Fallback to software cursor to QEMU
QEMU report support hardware cursor, but that support is broken (capturing
cursor stops drawing it and when in absolute mode (table) cursor position
(which is a native X/Wayland cursor in such case) does not match position
reported to AROS). Use software cursor via fakegfxhidd in case of QEMU and
hardware cursor for VMWare and VirtualBox.
2025-11-24 18:31:51 +01:00
d9f7b50bf3 Fix SVGA_CMD_DEFINE_CURSOR so that it is processed by card engine
Minimal implementation based on QEMU expectations. Still disabled because
even though QEMU reports hardware cursor support, that support does not
work correctly with either gtk or sdl UIs

Note: code for setting up andMask is missing. For now it is zeroed
resulting in black background under cursor.
2025-11-24 16:59:33 +01:00
e26f160881 BitMap_ClassPtr is not a gettable attribute
Use OOP_CLASS macro like other drivers are doing, so that passing "friend"
actually works and assings a correct bitmap
2025-11-21 13:49:43 +01:00
5b353efd52 Remove reset handler when freeing driver data
Otherwise the node becomes invalid but is still kept in the handlers list
and next time something accesses this list, it stumbles on random memory.

Implementation copied from VIA-AC97 driver.
2025-11-15 18:41:41 +01:00
dc9bfc2474 String assigned to fields of ZunePrefsNew must be persistent
Always use string retrieved by GetConfigString because it guarantees
that the string is persistand. Using string passed in msg->string might
will end up with ZunePrefsNew field pointing to a different memory then
the matching option in dataspace (which makes a copy) and if the called
releases the string, ZunePrefsNew will be pointing to unallocated memory.

Visible as random "font names" for MUIV_Font_Title when openings
applications
2025-11-13 09:20:30 +01:00
53639ee4b2 Workaround issue with Wanderer process running out of signals
With recent change to muimaster it now opened one more message port per
application. Wanderer was implemented to created three applications:
main, copy and requster. After muimaster changes is not enough free
signals to open third application. The workaround in this commit uses
one of the existing two applications to show the requester and removes
the need for third "requester" application.
2025-11-12 18:18:09 +01:00
b5b4fb0988 Regresion fix: Fill ZuneNewPrefs with loaded, not default data
Previous code was rejecting loaded data for strings. Visible in:
a) group frame font different than configured
b) string background color different than configured
2025-11-12 15:21:50 +01:00
a648d94a14 Move operations on dataspace to end of function
This way code looks like original code and it looks the same way
for all SetX methods.
2025-11-12 15:03:00 +01:00
506b0436b4 Cache unicode data in portsources
unicode.org is not reliable and timeouts frequenty
2025-11-10 17:41:57 +01:00
049e1cc863 Use stdc.static to provide memset and memcpy in m68k build 2025-11-09 19:50:44 +01:00
e472460041 Update translations from ATT 2025-11-09 18:31:04 +01:00
8b511db877 debug.library needs access to private SDK for kernel protos 2025-11-09 17:24:09 +01:00
989318b4a7 Revert to using standard debug statements 2025-11-09 17:17:19 +01:00
a5e069cdfc update copyright on touched files. 2025-11-09 17:01:04 +01:00
e1397fb4c5 update copyright 2025-11-09 17:01:04 +01:00
887e77c0a5 Fix build - dont use the vararg function versions. 2025-11-09 17:01:04 +01:00
5b9a370966 make sure strcpy behaves as expected. 2025-11-09 17:01:04 +01:00
cacf1df865 correct autodoc comments. 2025-11-09 17:01:04 +01:00
ab64ab7622 delete old version of file. 2025-11-09 17:01:04 +01:00
c6b372fba2 s/KrnBacktraceFromRBP/KrnBacktraceFromFrame 2025-11-09 17:01:04 +01:00
5af022d0d8 make sure inputclass.hidd is loaded 2025-11-09 17:01:04 +01:00
80936f2803 add a few variations of execs crash test 2025-11-09 17:01:04 +01:00
ba7a1a6c50 Print a backtrace when an exception occurs. 2025-11-09 17:01:04 +01:00
ebb34df2a2 register a call back with the kernel, to resolve symbols. 2025-11-09 17:01:04 +01:00
f5cbf9c0d9 kernel: Add symbol resolver and backtrace support
Introduced new APIs for kernel-level symbol resolution and stack tracing:

 - KrnRegisterSymResolver() / KrnUnregisterSymResolver(): manage a global
   callback for translating instruction addresses into symbols.
 - KrnBacktraceFromRBP(): walk the call stack using frame pointers.
 - KrnPrintBacktrace(): print a formatted backtrace using the resolver.

These functions enable debug.library to provide symbolic crash and
exception backtraces in kernel and supervisor mode.
2025-11-09 17:01:04 +01:00
1c7dbc3028 show the full MSI information. 2025-11-09 16:57:48 +01:00
a67c56c177 move the APIC debug to a support function, and call it from there. 2025-11-09 16:57:48 +01:00
72a32241e7 if APIC data is available, dump it 2025-11-09 16:57:47 +01:00
8229331b82 only dump the context fpu details in core_DumpFPUState 2025-11-09 16:57:47 +01:00
d94955b5c8 dump the fpu registers. 2025-11-09 16:57:47 +01:00
794c34bcbc typo 2025-11-09 16:57:47 +01:00
bf8e63f860 add kernel trap handlers that dump debug for all cpu exceptions. 2025-11-09 16:57:47 +01:00
7a6821cc78 x86_64/kernel: fix TSS descriptor construction and clean up GDT setup
- Added core_SetupTSS() helper to properly initialize 64-bit TSS descriptors.
- Fixed incorrect per-CPU TSS limit (was multiplied by APIC_Max).
- Ensured descriptors use correct type=0x9 (Available 64-bit TSS),
  P=1, L=0, D=0, G=0.
- Removed obsolete KERNEL_ORIG_TSS macro and redundant code.

This refactor improves correctness and clarity of per-CPU GDT/TSS setup
and avoids potential #GP faults when reloading TR under EFI.
2025-11-09 16:57:47 +01:00
dd1fd19af3 adjust/correct debug 2025-11-09 16:57:47 +01:00
2ea3d78da0 bump version 2025-11-09 16:57:47 +01:00
58b2cbda83 adapt to use the new input subsystem pushevent method. 2025-11-09 16:57:47 +01:00
2a868aa0bc introduce a new PushEvent method to the input subsystem class. overload the mouse subsystems PushEvent to extend the data if necessary. 2025-11-09 16:56:39 +01:00
bd71779306 minor debug adjustments, and formatting correction. 2025-11-09 16:56:39 +01:00
6bf55c60bf silence debug.. 2025-11-09 16:56:39 +01:00
33da7fb6eb make sure GCC knows about the effect of the xchg. 2025-11-09 16:56:39 +01:00
899c4cbb74 x86-64: Fix CPUID register corruption causing boot failure on Ryzen CPUs
The kick() function was reusing the same variables (v1-v4) for multiple
CPUID calls, which caused the compiler to optimize incorrectly and check
the EDX register from CPUID leaf 0x80000000 instead of 0x80000001 when
testing for Long Mode support (bit 29).

This manifested as a spurious "processor is not x86-64 compatible" error
on Ryzen CPUs, even though the CPUs fully support x86-64. The issue was
visible in the disassembly where the code loaded from the wrong stack
location (-0xc0 instead of -0xa8) when checking the LM bit.

# Use separate variable sets (eax0/ebx0/ecx0/edx0 and eax1/ebx1/ecx1/edx1)
  for each CPUID call to prevent register value confusion
# Add block scope for EFER MSR variables to avoid conflicts
# Remove redundant third CPUID call in failure path since we already have
  the values from the second call
# Improve cpuid2() implementation with explicit register preservation and
  memory clobbers to prevent similar optimization issues

The cpuid2() changes add proper register constraints and use local variables
before dereferencing pointers, ensuring the compiler generates correct code
regardless of optimization level or target CPU.

Fixes boot on AMD Ryzen and potentially other CPUs where this compiler
optimization pattern occurred
2025-11-09 16:56:39 +01:00
bde4180c1d only print 0x80000001 if the CPU reports having it, otherwise print the 0x80000000 output. 2025-11-09 16:56:38 +01:00