Commit Graph

3002 Commits

Author SHA1 Message Date
Bananymous cc04bd0f06 LibC/Kernel: Implement ttyname_r 2025-07-31 22:47:40 +03:00
Bananymous e72e1e4e43 LibC: Add _SC_NPROCESSORS_{CONF,ONLN) 2025-07-31 22:47:40 +03:00
Bananymous 987cc3c237 3000th COMMIT: ports: Add halflife port 2025-07-31 22:47:34 +03:00
Bananymous 935f69e011 ports: Add freetype port 2025-07-31 22:47:29 +03:00
Bananymous 9f0c2fb6e2 ports: Apply only patches ending in .patch 2025-07-31 22:47:29 +03:00
Bananymous 9b18bda9c8 Kernel: Make epoll always check for HUP and ERR 2025-07-31 22:47:29 +03:00
Bananymous 7831c74e8c DynamicLoader: Add support for LD_LIBRARY_PATH
Also fix a bug with dlopen with TLS
2025-07-31 22:47:29 +03:00
Bananymous c1978f9133 Shell: Implement redirections
This works well enough. At the moment redirections can appear anywhere
in the command **after** environment variables and possible alias
command. This means commands like `>foo echo hello` are not supported.
I don't think this is big enough problem for now (99% time redirections
are given after arguments) that i would rewrite the environment and
alias parsing.
2025-07-22 16:54:06 +03:00
Bananymous 05affda20c ports: Add python3 port 2025-07-22 14:11:09 +03:00
Bananymous e2eb555ca0 LibC: Add dummy libintl support
This doesn't really do anything but allows some ports to use it :D
2025-07-22 13:26:53 +03:00
Bananymous 418c3c9cfa ports: Remove unneeded libtool files after install 2025-07-22 10:32:52 +03:00
Bananymous bc66e181a5 ports: Update to new config.sub syntax
There is no longer need to manually patch config.sub files!
2025-07-22 10:31:56 +03:00
Bananymous 6971f76bd3 ports: Add support for downloading upstream config.sub
banan-os is now in the upstream config.sub. This means no more
config.sub patches!
2025-07-22 10:13:41 +03:00
Bananymous 1e65f02ff7 Terminal: Handle bell and warn on unimplemented control characters 2025-07-21 14:28:09 +03:00
Bananymous 4efaf65d3f BuildSystem: Use usb-tablet instead of usb-mouse
This allows sharing mouse between host and guest!
2025-07-19 18:02:07 +03:00
Bananymous aa0249fadb WindowServer: Support absolute position mouse 2025-07-19 18:01:23 +03:00
Bananymous 2c65590134 Kernel: Add support for absolute position mouse 2025-07-19 18:00:39 +03:00
Bananymous a0d1a9ad67 Kernel: Fix PIT::prescheduler_sleep_ns
I don't even know what I was doing here :D
2025-07-19 01:25:46 +03:00
Bananymous 5df6270e32 Kernel: Clobber flags in `rdrand` 2025-07-18 19:36:37 +03:00
Bananymous 7af6e1cd34 Kernel: Ignore HID main item tag 0
This for some reason exists in vmware's usb devices
2025-07-18 19:11:12 +03:00
Bananymous cceb066284 Kernel: Don't use IST on 32 bit target
This only exists in 64 bit
2025-07-18 19:10:48 +03:00
Bananymous 7a054787ca Kernel: Don't print error if `root` is empty
This is used when loading filesystem from initrd
2025-07-18 19:09:43 +03:00
Bananymous d27891c79f Kernel: Fix correct IOAPIC lookup based on gsi 2025-07-18 19:09:20 +03:00
Bananymous 5874fd640e Kernel: Fix TmpFS for 32 bit target
There was a problem when sizeof(size_t) != sizeof(PageInfo)
2025-07-18 19:07:32 +03:00
Bananymous 11ae220dbe LibImage: Optimize image resizing algorithms 2025-07-18 18:20:37 +03:00
Bananymous 22542a3a71 BuildSystem: Enable sse and sse2 for all programs and libraries
This is default on x86_64 but not on the 32 bit target. banan-os
already requires the CPU to support SSE even on 32 bit platforms.
2025-07-18 18:20:37 +03:00
Bananymous e16fb6a8e9 Kernel: Don't validate allowed null pointers on syscalls 2025-07-17 22:14:04 +03:00
Bananymous d941e6d70b General: Update README features and environment variables 2025-07-17 21:45:48 +03:00
Bananymous b65068dc7d BuildSystem: Add support for building initrd image
This is nice for testing when there isn't xhci controller available or
my usb stack fails :)
2025-07-17 21:45:48 +03:00
Bananymous d5301508ec Kernel: Increase kernel thread stack size
HACK HACK HACK

This is just to make banan-os boot on one razer laptop where AML
triggers a stack overflow :)
2025-07-17 21:21:14 +03:00
Bananymous 793cca423b Kernel: Fix system timer disabling
I was actually not disabling system timer (HPET, PIT) when using lapic
timers for scheduling. This made BSB get too many timer interrupts :D
2025-07-16 20:02:04 +03:00
Bananymous 3960687f9d Kernel: Parse PCIConfig opregion address on read/write
I was testing on some hardware and _ADR does not have to exist in the
namespace when opregion is parsed :)
2025-07-16 15:34:36 +03:00
Bananymous 3ec7aad432 Kernel: Increase PS/2 timeout and detect more keyboards
I was testing on a old T61
2025-07-16 15:29:27 +03:00
Bananymous 84f1ad4f26 ports: Fix doom compilation with the new toolchain 2025-07-15 16:12:03 +03:00
Bananymous 6b9dbf625d userspace: Add `audio` utility to play audio files 2025-07-15 16:12:03 +03:00
Bananymous 3aea2c007d Userspace: Add simple AudioServer and LibAudio 2025-07-15 16:12:03 +03:00
Bananymous 85d195212a BuildSystem: Update qemu script and add ac97 2025-07-15 14:17:49 +03:00
Bananymous 8a663cb94f Kernel: Implement basic AC97 driver 2025-07-15 14:17:49 +03:00
Bananymous 674e194a91 Kernel: Don't fail PCI interrupt allocation with PCIe and no PCI 2025-07-15 14:17:49 +03:00
Bananymous c57f0abb56 BuildSystem: Order source list alphabetically 2025-07-15 14:17:49 +03:00
Bananymous 163fdcd582 LibC: Fix exec family function path resolution 2025-07-15 14:17:49 +03:00
Bananymous 3be17c6117 BAN: Add clear and access by index to CircularQueue 2025-07-10 17:24:40 +03:00
Bananymous 995dfa1455 Kernel: Fix AML PCIConfig OpRegion accesses
Apparently I'm not supposted to calculate device/function from the
offset, but parse them from the acpi namespace :)

This allows PCI PIN interrupt routing actually work
2025-07-04 13:21:02 +03:00
Bananymous 544c8dbc13 Kernel: Optimize AML interpreter stack usage
There is a very hacky no-inline hack that I am not proud of but it drops
the stack usage of few functions A LOT.

Previously Virtual Box could not boot with our 8 page stack, but these
changes allow it to boot on 5!
2025-07-03 00:49:23 +03:00
Bananymous 8da4f80453 Kernel: Add custom stack to double fault handler
This prevents triple faults!
2025-07-02 23:14:52 +03:00
Bananymous 6084aae603 Kernel: Add guard pages to kernel and userspace stacks 2025-07-02 23:12:36 +03:00
Bananymous e1319a06f2 Kernel: Remove accidentally commited debug prints 2025-07-02 23:09:57 +03:00
Bananymous 51fd7a607d Kernel: Fix IDE controller waiting
We did not correctly wait until controller is ready to receive data on
write command. Also remove possible kernel panic if controller sends
unexpected interrupts
2025-07-02 22:04:41 +03:00
Bananymous 8aff315c7b LibC: fflush file in setvbuf before updating the buffer 2025-07-02 01:54:03 +03:00
Bananymous 8e0d79f301 ports: Fix `make` compilation with new toolchain 2025-07-02 01:54:03 +03:00