10512 Commits
Author SHA1 Message Date
LeencyandClaude Opus 5 f7dd4033ba kernel/net: honour the window scale factor advertised by the peer (#619)
Build system / Build (es_ES) (push) Successful in 2m21s
Build system / Build (en_US) (push) Successful in 2m24s
Build system / Build (ru_RU) (push) Successful in 2m28s
Build system / Publish Images (push) Successful in 3m24s
Summary: the received window scale option was stored into SND_SCALE, which
the connection setup code then immediately overwrote with zero, so every
peer window was interpreted unscaled.

Details:
RFC 1323 negotiation is completed in two places -- the SYN_RECEIVED branch
and the active-open branch of tcp_input. Both do

        mov     ax, word[ebx + TCP_SOCKET.requested_s_scale]
        mov     word[ebx + TCP_SOCKET.SND_SCALE], ax

relying on the declared order of the four adjacent bytes SND_SCALE,
RCV_SCALE, requested_s_scale, request_r_scale to move both factors at once.
requested_s_scale, however, was never filled in: the option parser wrote the
peer's shift count into SND_SCALE directly, and that value was then clobbered
by the word move with the zero left in requested_s_scale by socket_alloc.

The result was that SND_SCALE ended up 0 on every connection while
TF_RCVD_SCALE was set, so a peer advertising, say, 64 KiB with a shift of 7
was read as advertising 512 bytes. Sending to any modern host was throttled
to a fraction of the real window.

The parser now stores into requested_s_scale, where the setup code expects
it, and clamps the value to TCP_max_winshift (14) as required by RFC 1323 --
a peer sending a larger shift must not be allowed to make our SND_WND
computation shift out of range.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #619
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-30 02:26:39 +00:00
b00bl1k 0ca124d6cb Update CONTRIBUTING guidelines (#598)
Build system / Build (en_US) (push) Successful in 2m12s
Build system / Build (ru_RU) (push) Successful in 2m20s
Build system / Build (es_ES) (push) Successful in 2m23s
Build system / Publish Images (push) Successful in 1m58s
It would be helpful for reviewers if contributors included an `Assisted-by` tag in commits prepared with the help of AI tools.

Reviewed-on: #598
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: Alexey Ryabov <alex@b00bl1k.ru>
2026-07-25 07:35:46 +00:00
Burer 7365a98326 apps/cmm: take the c-- programs and the compiler config from their repositories (#585)
Build system / Build (es_ES) (push) Successful in 2m32s
Build system / Build (ru_RU) (push) Successful in 2m40s
Build system / Build (en_US) (push) Successful in 2m46s
Build system / Publish Images (push) Successful in 2m27s
Reviewed-on: #585
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
2026-07-25 07:27:02 +00:00
Matou1306 9941a5dfc9 fs/ext: fix bug in ext_setFileEnd (#595)
Build system / Build (es_ES) (push) Successful in 2m15s
Build system / Build (en_US) (push) Successful in 2m19s
Build system / Build (ru_RU) (push) Successful in 2m22s
Build system / Publish Images (push) Successful in 2m28s
Discovered this bug when working on truncating a file with EXTENTS flag.
Basically ebx was getting cloberred which resulted in loading an incorrect address into eax.

Reviewed-on: #595
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: Matou <mathieubotros@gmail.com>
2026-07-25 06:31:49 +00:00
Leency 041029b406 kernel/AHCI: use IRQ instead of delay (#597)
Build system / Build (ru_RU) (push) Successful in 2m16s
Build system / Build (en_US) (push) Successful in 2m21s
Build system / Build (es_ES) (push) Successful in 2m24s
Build system / Publish Images (push) Successful in 1m53s
This change was proceeded by request of Rhimad, author of original AHCI driver.
Tested on real hardware.Reviewed-on: #597
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: rgimad <3+rgimad@noreply.localhost>
2026-07-23 19:28:52 +00:00
LeencyandBurer 7c4d3f57e6 apps/bbench - CPU, graphics, memory and disk benchmark for KolibriOS (#561)
Build system / Build (en_US) (push) Successful in 2m19s
Build system / Build (es_ES) (push) Successful in 2m22s
Build system / Build (ru_RU) (push) Successful in 2m30s
Build system / Publish Images (push) Successful in 2m32s
- Add `bbench` to IMG and System Panel
  - Universal benchmark with 17 tests for CPU, graphics, memory and disk
  - Tests can be toggled and configured
  - Generates derailed reports in HTML
- Remove `MGB` and `FSPEED` from System Panel, move them from IMG to ISO

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #561
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-23 13:51:18 +00:00
LeencyandBurer 00fb7afe33 libs/libimg: fix progressive jpeg 4:2:0 shear when width mod 16 = 8 (#590)
Build system / Build (en_US) (push) Successful in 3m5s
Build system / Build (es_ES) (push) Successful in 3m5s
Build system / Build (ru_RU) (push) Successful in 3m8s
Build system / Publish Images (push) Successful in 2m3s
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #590
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: IgorA <22+igora@noreply.localhost>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-22 08:09:55 +00:00
Leency db846b5eee AddDevice: class EF subclass 04 protocol 01
Test PR / Build (en_US) (pull_request) Successful in 1m54s
Test PR / Build (es_ES) (pull_request) Successful in 1m59s
Test PR / Build (ru_RU) (pull_request) Successful in 2m7s
Build system / Build (es_ES) (push) Successful in 2m6s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Build (en_US) (push) Successful in 2m20s
Build system / Publish Images (push) Successful in 2m32s
2026-07-21 17:51:53 +00:00
Leency 686f18772a final update 2026-07-21 17:51:53 +00:00
Leency 9b7292f3e7 update 2 2026-07-21 17:51:53 +00:00
Leency e41362fb04 full support Huawei E3372h-153 modem 2026-07-21 17:51:53 +00:00
Leency bbc0f1262c usbnet: upload drivers usbcdc and usbrndis 2026-07-21 17:51:53 +00:00
Leency 5fb16b1d81 data/common: stl=/sys/3d/view3ds (#591)
Build system / Build (en_US) (push) Successful in 2m15s
Build system / Build (ru_RU) (push) Successful in 2m18s
Build system / Build (es_ES) (push) Successful in 2m22s
Build system / Publish Images (push) Successful in 2m22s
Reviewed-on: #591
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-21 16:34:17 +00:00
LeencyandBurer 8a48f089d8 libs/http.obj: fix content_received overcount on chunked transfers (#569)
Build system / Build (en_US) (push) Successful in 2m25s
Build system / Build (ru_RU) (push) Successful in 2m27s
Build system / Build (es_ES) (push) Successful in 2m30s
Build system / Publish Images (push) Successful in 2m46s
For chunked responses HTTP_receive added the whole buffer tail to
content_received every time it consumed a chunkline. When several
chunks arrived in one TCP segment, the same bytes were counted once
per chunkline (observed: content_received = 42 MB for an 83 KB page);
the value only became exact at got_all_data. A client trusting the
counter mid-transfer read far past the buffer and page-faulted.
In plain buffered mode recompute the exact value from the pointers
instead: min(chunk_ptr, write_ptr) - content_ptr, the same formula
.got_all_data_chunked uses. Data below chunk_ptr is decoded and
contiguous; bytes in [chunk_ptr, write_ptr) are still raw (unconsumed
chunkline + partial chunk). Stream/ring modes keep the running add:
there data is consumed as it arrives, so the incremental count is
correct.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #569
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-21 10:02:50 +00:00
14162d4139 apps/kiv: loading icons from shared memory, libs/libimg: crop function (#573)
Build system / Build (en_US) (push) Successful in 2m20s
Build system / Build (ru_RU) (push) Successful in 2m27s
Build system / Build (es_ES) (push) Successful in 2m31s
Build system / Publish Images (push) Successful in 2m27s
add 3 icons: save as, edit in other app, crop
libimg: add new function 'img_crop'

---------

Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Reviewed-on: #573
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: IgorA <aie85playm@gmail.com>
2026-07-21 07:55:52 +00:00
Leency 3b854ef2c6 kernel: fix extended_primary_loader build (undefined low_memory_error)
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 36s
Test PR / Build (en_US) (pull_request) Successful in 3m8s
Test PR / Build (es_ES) (pull_request) Successful in 2m47s
Test PR / Build (ru_RU) (pull_request) Successful in 1m28s
Build system / Build (es_ES) (push) Successful in 2m23s
Build system / Build (en_US) (push) Successful in 2m27s
Build system / Build (ru_RU) (push) Successful in 2m33s
Build system / Publish Images (push) Successful in 2m21s
2026-07-21 07:39:19 +00:00
Leency 2c5f6bc39a fixes 2026-07-21 07:39:19 +00:00
Leency 09af6357d4 kernel: refine boot screen options, show message that <=8 MB memory is not enough 2026-07-21 07:39:19 +00:00
Leency 4b4bd9bdde tinygl lib: fix black-color artifacts
Test PR / Build (es_ES) (pull_request) Successful in 3m38s
Test PR / Build (en_US) (pull_request) Successful in 3m43s
Test PR / Build (ru_RU) (pull_request) Successful in 1m33s
Build system / Build (en_US) (push) Successful in 2m50s
Build system / Build (es_ES) (push) Successful in 2m55s
Build system / Build (ru_RU) (push) Successful in 2m57s
Build system / Publish Images (push) Successful in 2m25s
2026-07-19 19:28:52 +00:00
Burerandkolibri-bot f373a738d7 chore/submodules: bump cmm to upstream (#581)
Build system / Build (ru_RU) (push) Successful in 2m38s
Build system / Build (en_US) (push) Successful in 2m44s
Build system / Build (es_ES) (push) Successful in 2m51s
Build system / Publish Images (push) Successful in 2m18s
Co-authored-by: kolibri-bot <bot@kolibrios.org>
Reviewed-on: #581
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-19 16:23:45 +00:00
Burer c7f0da5cd6 ci/cd: check submodules hourly, and let the bump PR actually get tested (#577)
Build system / Build (en_US) (push) Successful in 2m12s
Build system / Build (ru_RU) (push) Successful in 2m16s
Build system / Build (es_ES) (push) Successful in 2m18s
Build system / Publish Images (push) Successful in 1m55s
Reviewed-on: #577
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-19 15:39:09 +00:00
LeencyandBurer 8c48f1d18b apps/fplay: major player updates, performance, usability and UI improvements, bugfixes (#560)
Build system / Build (en_US) (push) Successful in 2m55s
Build system / Build (es_ES) (push) Successful in 3m1s
Build system / Build (ru_RU) (push) Successful in 3m8s
Build system / Publish Images (push) Successful in 1m50s
Very briefly:
- feat: add playback timer and MP3 album art support
- feat: async file reading with adaptive cache for smoother playback
- feat: smart frame skipping (preserves sync, prevents lags on slow drives)
- feat: add OSD volume and Tab info overlay
- feat: mouse wheel volume control, and basic hotkeys
- feat: support >2GB files, automatic HW acceleration check
- fix: crash/memory corruption on videos without audio or with unknown duration
- fix: freeze issues and audio-video desync after seeking
- fix: correct playback speed for silent videos and playback of files with corrupted timestamps
- fix: auto-hide volume slider in narrow windows and restore window controls layout

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #560
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-19 06:32:00 +00:00
LeencyandBurer bb58df2d87 apps/pcidev: calculate window height based on device count (#562)
Build system / Build (en_US) (push) Successful in 3m35s
Build system / Build (es_ES) (push) Successful in 3m50s
Build system / Build (ru_RU) (push) Successful in 3m53s
Build system / Publish Images (push) Successful in 3m30s
Currently: pcidev gets all screen height
After fix: pcidev pre-calculate window height based on device count

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #562
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-19 06:18:32 +00:00
LeencyandBurer 3922240df3 libimg/png: fix page fault when unpacked image data ends at page boundary (#568)
Build system / Build (es_ES) (push) Successful in 3m35s
Build system / Build (ru_RU) (push) Successful in 3m42s
Build system / Build (en_US) (push) Successful in 3m48s
Build system / Publish Images (push) Successful in 2m13s
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #568
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: IgorA <22+igora@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-18 10:54:25 +00:00
Matou1306 42b2a07033 fs/ext: Implement features 64-bit, metadata_csum, and metadata_csum_seed (#506)
Build system / Build (en_US) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Build (es_ES) (push) Successful in 2m18s
Build system / Publish Images (push) Successful in 1m56s
Implemented reading filesystems with 64 bit feature for partitions < 16TB (for standard 4kb block size)

Reading support for all ext4 filesystems built with default features.
Mount filesystems with metadata_csum / metadata_csum_seed and check csum, in case it doesn't match the mount fails.

Reviewed-on: #506
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Matou <mathieubotros@gmail.com>
2026-07-17 10:25:14 +00:00
LeencyandBurer 91be820f96 apps/updf: update 2.1 (#559)
Build system / Build (ru_RU) (push) Successful in 2m9s
Build system / Build (en_US) (push) Successful in 2m14s
Build system / Build (es_ES) (push) Successful in 2m16s
Build system / Publish Images (push) Successful in 3m9s
- Supersampling for crisp text, with automatic disabling on low-end CPUs (<1 GHz via fn 18.5)
- snap to a clear 100% (±7%)
- Zoom field in the toolbar with manual percentage input
- UI tweaks/bug fixes

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #559
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-17 04:06:39 +00:00
Burer 7da3b2e5a4 apps/cmm: include compiler as submodule (#572)
Build system / Build (en_US) (push) Successful in 3m44s
Build system / Build (es_ES) (push) Successful in 3m43s
Build system / Build (ru_RU) (push) Successful in 3m46s
Build system / Publish Images (push) Successful in 1m47s
Reviewed-on: #572
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-15 12:39:40 +00:00
Leency 7cf136e214 apps/view3ds: add STL support based on convert_stl_3ds.inc by IgorA (#566)
Build system / Build (en_US) (push) Successful in 2m39s
Build system / Build (ru_RU) (push) Successful in 2m45s
Build system / Build (es_ES) (push) Successful in 2m47s
Build system / Publish Images (push) Successful in 1m49s
Reviewed-on: #566
Reviewed-by: IgorA <22+igora@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-14 04:59:27 +00:00
Leency e641f6c400 drivers/audio: add es1371, fix hang in infinity (#571)
Build system / Build (en_US) (push) Successful in 3m51s
Build system / Build (es_ES) (push) Successful in 4m6s
Build system / Build (ru_RU) (push) Successful in 4m16s
Build system / Publish Images (push) Successful in 2m59s
- add es1371 sound driver
- fix hang in infinity
- remove garbage ensoniq.asm
- add "Multimedia audio controller detected with PciId=VEN:DEV", same as vidintel does

Tested with 3 cards.

Reviewed-on: #571
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-14 04:53:19 +00:00
Leency d9b207867c data/icons.ini: transform format to icon2ext.ini (fix #226) (#534)
Build system / Build (en_US) (push) Successful in 2m37s
Build system / Build (ru_RU) (push) Successful in 2m38s
Build system / Publish Images (push) Successful in 2m19s
Build system / Build (es_ES) (push) Successful in 2m41s
Before:
```ini
doc=3
docx=3
exc=3
inf=3
log=3
ob07=3
ob7=3
odt=3
rtf=3
txt=3
wtx=3
```
Now:
```ini
3=doc,docx,exc,inf,log,ob07,odt,rtf,txt,wtx
```

Reviewed-on: #534
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-12 06:00:32 +00:00
LeencyandBurer 50d0d2e347 kernel/taskman: free leaked handle-table objects on process exit (#567)
Build system / Build (es_ES) (push) Successful in 2m9s
Build system / Build (en_US) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m16s
Build system / Publish Images (push) Successful in 1m45s
I wrote an autotest for Netsurf. After 130 test run the system could not
create any new process anymore. Now this is fixed. Result:
916 OK, 0 CRASH, 0 HANG

Futexes (sysfn 77) live in the per-process handle table (PROC.htab)
and are allocated from the kernel's small-object heap via
create_object. The only code path that ever frees one is
destroy_object, which runs solely on an explicit FUTEX_DESTROY call --
and real programs never make it: newlib-based applications create a
dozen or so futexes at startup for their internal locks (malloc,
stdio) and simply exit, expecting the kernel to clean up. Nothing
does: destroy_process tears down HDLLs and page tables but never
walks the handle table.

Each leaked futex pins 48 bytes of the kernel malloc arena, and that
arena is a single fixed 128 KB block (init_malloc has no grow path).
After roughly two thousand leaked handles -- a few hundred to a few
thousand application launches within one uptime -- kernel malloc()
starts failing system-wide. The first visible casualty is
load_library: it can no longer allocate a DLLDESCR, so every dll.obj
load in every new process fails from that point on ("cannot load
library"), which is easy to mistake for a userland problem.

Reproduced by repeatedly launching a newlib application: the arena
filled with ~1750 48-byte chunks carrying the 'FUTX' magic (confirmed
by dumping the live arena; mst.topsize had dropped to 32 bytes with
free physical memory and kernel heap space still abundant), and dll
loading died after ~130 launches.

Fix: in destroy_process, after destroy_all_hdlls, walk the process's
handle table and free every live object. Free slots hold small
free-list indices and the reserved stdin/stdout/stderr handles hold
small values, so a bounds check against OS_BASE skips them; live
slots hold kernel pointers and are additionally verified by the
'FUTX' magic. If other object kinds are ever added to the handle
table, they will need their own destructors here -- the magic check
makes this walk skip them safely rather than crash.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #567
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-11 18:44:32 +00:00
Leency c6b6615f84 data/icons18.png: reduce number of colors without visible degradation (#565)
Build system / Build (es_ES) (push) Successful in 2m7s
Build system / Publish Images (push) Successful in 2m3s
Build system / Build (en_US) (push) Successful in 2m14s
Build system / Build (ru_RU) (push) Successful in 2m17s
Colors count 1285 > 1045
Thanks Burer for creating decolor.htm tool

Reviewed-on: #565
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-11 16:36:27 +00:00
Leency c8d95df883 kernel/timers: fix priority-inversion livelock in timer_hs/cancel_timer_hs (#564)
Build system / Build (es_ES) (push) Successful in 2m4s
Build system / Build (en_US) (push) Successful in 2m7s
Build system / Build (ru_RU) (push) Successful in 2m14s
Build system / Publish Images (push) Successful in 2m20s
I wrote an autotest that runs Netsurf a lot of times. While running this
test I always faced the hang issue. First thought was about network
and sockets but QEMU debug through telnet revealed the issue in timers.
Now there is no hang after this fix.

timer_hs and cancel_timer_hs hold the global timer-list lock
(lock_timer_list/unlock_timer_list) across a short critical section
of plain list-pointer stores, without disabling interrupts. If the
owning thread is preempted inside that window, it can never be
scheduled again while a higher-priority thread is runnable: the
scheduler is strictly priority-based and osloop's check_timers (top
priority) busy-waits for the same lock via change_task, which never
descends to a lower-priority ring while its own ring has a runnable
thread. The result is a permanent, whole-system livelock -- not a
one-off race, but a deterministic outcome whenever the preemption
lands inside the section.

Reproduced by driving thousands of blocking TCP connects (each one
calls timer_hs for its connect timeout) through a browser under QEMU,
where interrupts tend to land on translation-block boundaries right
after the lock's cmpxchg. Confirmed via the QEMU monitor: osloop
spinning forever in lock_timer_list while the lock owner sat, fully
preempted, one instruction into timer_hs's critical section.

Fix: wrap the lock/insert-or-remove/unlock sequence in
timer_hs and cancel_timer_hs with pushfd/cli ... popfd, making it
atomic with respect to preemption. The wait loop inside
lock_timer_list is unaffected -- change_task manages IF on its own,
so spinning there with interrupts off cannot itself hang anything.

Reviewed-on: #564
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-committed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-11 14:33:15 +00:00
DoczomandBurer 6d02b10132 apps/macros.inc: add new macro "format" (#538)
Build system / Build (es_ES) (push) Successful in 2m38s
Build system / Build (en_US) (push) Successful in 2m46s
Build system / Build (ru_RU) (push) Successful in 2m49s
Build system / Publish Images (push) Successful in 1m47s
A new macro "format" has been added, adding the implementation of MENUET01, MENUET02 and KX formats.
task: #245

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #538
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-07-10 15:01:24 +03:00
Doczom 13a9b877f3 App/mp3info: fixed Page fault error #546 (#553)
Build system / Build (es_ES) (push) Successful in 11m53s
Build system / Build (ru_RU) (push) Successful in 11m56s
Build system / Build (en_US) (push) Successful in 12m1s
Build system / Publish Images (push) Successful in 1m51s
Fixed an error when opening a program without transferring the file path.

#546

Reviewed-on: #553
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-07-06 10:50:35 +00:00
Leency 1ef640de56 apps/updf: update 2.0 based on mupdf 1.19.0 (#552)
Build system / Build (en_US) (push) Successful in 2m14s
Build system / Build (es_ES) (push) Successful in 2m20s
Build system / Build (ru_RU) (push) Successful in 2m24s
Build system / Publish Images (push) Successful in 1m50s
- continuous scrolling through pages
- add scroll-bar
- drag page by holding right mouse button
- colored icons
- select and copy text in UTF-8
- much faster and more capable
- ui improvements

Reviewed-on: #552
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-06 06:25:26 +00:00
Matou1306 91f5df9c53 fs/ext: Fix encoding for surrogate pairs (#535)
Build system / Build (en_US) (push) Successful in 2m15s
Build system / Build (ru_RU) (push) Successful in 2m17s
Build system / Build (es_ES) (push) Successful in 2m22s
Build system / Publish Images (push) Successful in 1m56s
Replaced `utf8to16` calls with `unicode.utfX.encode/decode`.
Created umka test 87 similar to xfs' t011

Reviewed-on: #535
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Matou <mathieubotros@gmail.com>
Co-committed-by: Matou <mathieubotros@gmail.com>
2026-07-06 05:39:57 +00:00
Leency adc9753e1f drivers/audio: add C-Media CMI8738/CMI8338 audio driver (#550)
Build system / Build (es_ES) (push) Successful in 2m46s
Build system / Build (ru_RU) (push) Successful in 2m49s
Build system / Build (en_US) (push) Successful in 2m52s
Build system / Publish Images (push) Successful in 2m31s
Probably the most popular sound CARD in the world.
Driver is tested on real sound cards on my side and by Jeffrey hidnplayr.

Reviewed-on: #550
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-05 16:58:36 +00:00
Burer 1f8cd12dfc libs/newlib: add POSIX mkdir, rmdir and NAME_MAX (#545)
Build system / Build (en_US) (push) Successful in 4m39s
Build system / Build (es_ES) (push) Successful in 4m41s
Build system / Build (ru_RU) (push) Successful in 4m45s
Build system / Publish Images (push) Successful in 1m48s
- add real `mkdir()` (`sys/mkdir.c`) that strips a trailing `/` rejected by the `_ksys_mkdir`
- add real `rmdir()` (`sys/rmdir.c`) wrapping `_ksys_rmdir`
- define `NAME_MAX` in `<limits.h>`

Reviewed-on: #545
Reviewed-by: Егор Ярин <y.yarin@inbox.ru>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
2026-07-03 17:16:31 +00:00
Egor00f 54f9fa3348 libc.obj: update opendir && implement _ksys_read_dir (#514)
Build system / Build (en_US) (push) Successful in 3m33s
Build system / Build (es_ES) (push) Successful in 3m35s
Build system / Build (ru_RU) (push) Successful in 3m38s
Build system / Publish Images (push) Successful in 1m43s
fix memory leak in `opendir`.

and additionally implement `_ksys_read_dir`
and at the same time the magic numbers were removed

Reviewed-on: #514
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-07-03 11:30:15 +00:00
Burer 1339308c3c fs/lfn: report virtual folders (/ and devices) as folders (#544)
Build system / Build (en_US) (push) Successful in 2m0s
Build system / Build (ru_RU) (push) Successful in 2m9s
Build system / Build (es_ES) (push) Successful in 2m12s
Build system / Publish Images (push) Successful in 1m48s
- set folder attribute (0x10) for get-info on / and on devices
- split root get-info (subfn 5) from read-folder (subfn 1)
- zero the full BDFE header so timestamps/size aren't leftover garbage

Reviewed-on: #544
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-07-03 07:51:53 +00:00
LeencyandBurer 8f6cabd4db data/syspanel: general update (#531)
Build system / Build (en_US) (push) Successful in 2m4s
Build system / Build (es_ES) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Publish Images (push) Successful in 2m19s
- `kbd` moved to **[Configuration]** section
- `test` and `clipview` removed from syspanel, still available in IMG
- `dbgboard` added
- Section rename **[Testing]** => **[Diagnostics]**
- **Autorun** editor switched from `tinypad` to `cedit`
- Entries regrouped by category in every section
- Restored **EN** <=> **RU** parity - identical entries, order, and target programs
- Cleaner **EN** labels (**Video Mode**, **Network Devices**, **System Settings**, **PCI Devices**, ...)
- **ES** localization added

<img alt="image.png" src="attachments/4299f082-3cc3-4f45-a03c-dfdd85f57b9c">

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #531
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-02 07:49:30 +00:00
LeencyandBurer f5fa7aae30 apps/tmpdisk: version 0.80 (#516)
Build system / Build (es_ES) (push) Successful in 2m40s
Build system / Build (en_US) (push) Successful in 2m44s
Build system / Build (ru_RU) (push) Successful in 2m48s
Build system / Publish Images (push) Successful in 2m2s
cmm/libs/string:
- fix printing "%i"/"%d" instead of "0"

cmm/libs/gui:
- proper centering of text on button

tmpdisk:
- updated UI (thanks @Burer)
- mem size decreased from 800 Kb to 190 Kb
- app size decreased by 2 IMG sectors
- fix editbox incorrect data in come cases, fix other minor issues
- code refactoring
- spanish localization

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #516
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-30 20:07:35 +00:00
Burer 07beb60fc9 libs/newlib: make ksys_draw_bitmap_palette work with -fomit-frame-pointer (#536)
Build system / Build (en_US) (push) Successful in 3m45s
Build system / Build (ru_RU) (push) Successful in 3m49s
Build system / Build (es_ES) (push) Successful in 3m51s
Build system / Publish Images (push) Successful in 1m49s
Reviewed-on: #536
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-30 13:07:55 +00:00
Doczom 74caa48bee drivers/sdhci: fixed sdhci_slot_init and sdhci_init functions (#526)
Build system / Build (es_ES) (push) Successful in 1m59s
Build system / Build (ru_RU) (push) Successful in 2m4s
Build system / Build (en_US) (push) Successful in 2m8s
Build system / Publish Images (push) Successful in 1m59s
The algorithm for calculating the frequency divider has been fixed and the processing of devices with multiple slots has been fixed.

Reviewed-on: #526
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-30 06:21:14 +00:00
Burer f8e91b734c apps/flpybird: framebuffer, code refactoring, optimized data (#533)
Build system / Build (ru_RU) (push) Successful in 2m1s
Build system / Build (en_US) (push) Successful in 2m5s
Build system / Build (es_ES) (push) Successful in 2m8s
Build system / Publish Images (push) Successful in 5m48s
- use framebuffer to prevent flickering
- unify all code to snake_case
- optimize data to fit into 5*512 bytes (thanks to @Leency)

Reviewed-on: #533
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-30 05:35:48 +00:00
Burer 89a7cd62e1 apps/launcher: game launcher for wolf3d, doom and quake
Test PR / Build (en_US) (pull_request) Successful in 3m2s
Test PR / Build (es_ES) (pull_request) Successful in 3m6s
Test PR / Build (ru_RU) (pull_request) Successful in 3m6s
Build system / Build (es_ES) (push) Successful in 2m38s
Build system / Build (en_US) (push) Successful in 2m39s
Build system / Build (ru_RU) (push) Successful in 2m42s
Build system / Publish Images (push) Successful in 4m56s
FASM launcher that starts wolf3d/doom/quake with the chosen window size and
mode via CLI args. Wire it into autobuild and the games menu; doom is now
built from source, so drop the prebuilt binary.
2026-06-30 04:45:04 +00:00
Burer 059904552c apps/quake: fullscreen, fix OOM, clamp resolution to renderer limits
- grow the heap to fit the z-buffer and surface cache for the requested
  resolution
- clamp -winsize to MAXWIDTH x MAXHEIGHT so a large window cannot overrun
  the software renderer''s static tables
2026-06-30 04:45:04 +00:00
Burer 92f66e474f apps/doom: SDL render rework, sfx and config/CWD fixes, autobuild
- render the fixed 320x200 frame to a 24bpp surface and SoftStretch it to
  an arbitrary window size (-winsize); drop the old blocky integer scaler
- fix sfx: take the slice size from the obtained SDL audio spec
- set CWD to the executable dir so the WAD is found when run from launcher
- read config from DOOMRC.TXT next to the WAD
- add to autobuild
2026-06-30 04:45:04 +00:00
Burer ec5bd2967a apps/wolf3d: windowed default, fix viewport shift, center menus
- use bufferPitch instead of screenWidth for the view offset on
  non-standard window sizes
- default to windowed and honor --windowed/--fullscreen so the launcher
  controls the mode (the SDL backend now acts on SDL_FULLSCREEN, which
  used to be ignored)
- center the logical 320x200 layer (menus, title/intro, fonts, fullscreen
  pics) when the resolution is not an exact multiple of 320x200; the 3D
  view and in-game HUD stay full-screen
2026-06-30 04:45:04 +00:00