eaf06d239c
Kernel: Cleanup and fix AML Method calls
2024-08-15 20:54:55 +03:00
d9b3a4bf77
Kernel: Add more conversions for AML Integer, Register, String
2024-08-15 20:51:04 +03:00
cf970d5914
Kernel: Add better conversion for AML Alias, Name and Reference
2024-08-15 20:48:35 +03:00
1cfe3dd4da
Kernel: Implement AML BreakOp and ContinueOp
2024-08-15 19:08:00 +03:00
51d1e47bfe
Kernel: Fix AML CreateFieldOp to take bit index instead of byte index
2024-08-15 19:05:58 +03:00
e0a447bfaf
Kernel: Add _GL to ACPI root namespace
2024-08-15 02:28:22 +03:00
3f5ee6f414
Kernel: Rewrite the AML conversion API
...
This doesn't currently make the interpreter any better, but it will make
further implementation easier to be spec (or hardware...) compliant
2024-08-15 02:25:45 +03:00
44d5c8c4b4
Kernel: Implement AML To{Buffer,Integer,String}Op
2024-08-14 20:28:32 +03:00
17b7e9e772
Kernel: Allow all named objects to fail cleanly if name exists
2024-08-14 20:28:00 +03:00
957df08932
Kernel: root command line option can be specified as an UUID
...
Format is the same as in linux
root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
This makes it easier to boot when computer has multiple disks installed
2024-08-14 13:23:27 +03:00
bb40069773
Kernel: Add nice debug prints for device addition/removal
2024-08-14 13:23:27 +03:00
37d5b60f5c
Kernel: Implement AML {Event,Reset,Signal,Wait}Op
2024-08-14 11:59:34 +03:00
feadea0e91
Kernel: Fix AML unaligned integer reads and buffer shifts over 32
2024-08-13 23:44:17 +03:00
f71a29b6c4
Kernel: Implement AliasOp for AML interpreter
2024-08-13 22:42:37 +03:00
ec4cfdee23
Kernel: Fix and cleanup a lot of AML code
...
Node now have APIs to convert them to buffer, integer and string. This
allows possibility to handle methods that need explicitly use one of the
overloads instead of integer.
This patch also adds handling of DebugOp. This is used quite heavily in
uACPIs test suite.
2024-08-13 22:42:37 +03:00
dd79db6383
Kernel: AML implement CreateFieldOp
2024-08-13 18:52:48 +03:00
723e458bd7
Kernel/Terminal: Update terminal color themes and fix TTY bright/dark
2024-08-12 21:15:55 +03:00
39be57424c
Kernel: Fix SYS_SEEK with SEEK_END
...
I was subtracting the offset from file end when I should have added it.
2024-08-12 19:13:27 +03:00
f37e1c2229
Kernel: Map .rodata as read only instead of read-write
2024-08-12 14:28:52 +03:00
4d1b32f770
Kernel: open does not need TTY_INIT to set the controlling terminal
2024-08-11 01:02:59 +03:00
a5a097fa4a
Kernel/LibC: Add initial pseudo terminal support
...
This patch implements posix_openpt() and ptsname()
grantpt() and unlockpt() are left in LibC as stubs, as posix_openpt
currently does all of the needed work.
2024-08-11 01:02:59 +03:00
ad645f31d0
Kernel/LibC: Add setsid()
2024-08-11 00:58:12 +03:00
bac3219a01
Kernel: Fix Pipe::can_read_impl()
...
The logic was inversed, which made all select calls report incorrectly
for pipes. This made terminal emulator just freeze.
2024-08-10 18:18:25 +03:00
09a527fb12
Kernel: Fix scheduler thread counter
...
I was actually never incrementing the counter :D
2024-08-10 18:18:25 +03:00
ed325b4a45
Kernel: Fix typo in userspace address validation
2024-08-09 16:52:57 +03:00
1c67b5e812
Kernel: Fix wait syscall to report status of exited children
2024-08-09 16:52:35 +03:00
b6c964c444
Kernel: Rewrite pipes
...
Pipes have now a fixed size buffer and pipe clone and close is working
again.
2024-08-09 16:50:19 +03:00
44f0ec601f
Kernel: Expose /proc/meminfo and fix /proc/<pid>/meminfo
...
Thread was unconditionally calling <stack>->size() without validating
that the stack actually exists
2024-08-09 15:58:56 +03:00
2a659a9d03
BuildSystem: Fix enable sse definition
...
__enable_sse was never actually defined for any targets. This also adds
__arch definition for libc (so `utsname` works).
2024-08-09 15:52:42 +03:00
7e7c3a1bb3
Kernel: VirtualTTY now handles dark colors
...
I have seemingly forgot to add these before
2024-08-09 15:52:42 +03:00
7afdfb150f
LibC: Rewrite sigprocmask in terms of pthread_sigmask
...
Also don't fail SYS_SIGPROCMASK if how is invalid and set is NULL.
2024-08-07 17:01:35 +03:00
0a7c316ffb
Kernel: Fix race condition when blocking threads
...
If thread was blocked, but had not reached block queue, you might
already get an unblock request which would fail on an assertion.
If blocked thread was load balanced to another processor and unblocked
simultaneously, there was a race condition.
2024-08-05 20:14:13 +03:00
e72424e01a
Kernel: Implement ANSI CSI M and fix ANSI CSI L
...
There are not maybe not correct, but work much better than the old ones
2024-08-05 15:53:01 +03:00
a578527012
Kernel/LibC: Implement ioctl(TIOCGWINSZ)
...
This allows ncurses to get the window size!
2024-08-01 22:56:26 +03:00
af78a2d080
Kernel: Implement ANSI CSI L for TTY
...
vim seems to be using this, so I decided its needed
2024-08-01 22:08:46 +03:00
840000d02b
Kernel: Make sure null signal is not send with kill()
2024-08-01 21:41:54 +03:00
9ea4c777ad
Kernel: TTY now handles ESC key presses
...
This allows exiting vim :D
2024-08-01 21:41:11 +03:00
a33b63d066
Kernel/LibC: Implement alarm() and setitimer()
...
This makes vim able to start!
2024-08-01 21:09:56 +03:00
da3b30cd94
Kernel: Add macro to dump all syscalls and their return values
2024-08-01 18:21:49 +03:00
4599e1dec5
Kernel: Make schedler not crash when unblocking active thread
...
This was happening when sending signals to processes that were currently
running.
2024-08-01 18:21:49 +03:00
6de350ce9d
Kernel/LibC: Cleanup, fix and implement a lot of signal code
...
This patch implements sigsets and some of their usages
2024-08-01 17:01:18 +03:00
838d31fa41
Kernel: Implement more POSIX compliant open() and openat() syscalls
2024-08-01 15:35:02 +03:00
7c3b6307d9
Kernel: Cleanup USB initialization code
2024-07-31 23:23:44 +03:00
f0be4f86a6
LibC/Kernel: Implement access
2024-07-30 11:51:07 +03:00
e5bb843059
LibC/Kernel: Implement ttyname
2024-07-30 11:41:18 +03:00
681d8327f5
LibC/Kernel: Cleanup termios code
...
This is still not correct, but much better than it used to be
2024-07-30 11:10:43 +03:00
9bc02c81f8
Kernel: Map DMA and PCI MMIO as uncached
2024-07-30 11:10:08 +03:00
bb1738db8c
Kernel: Make thread unblocking O(1)
...
This is still bit broken. VirtualBox seems to freeze sometimes, but I
could not recreate this on qemu (with and without kvm) or real hardware.
2024-07-24 00:31:01 +03:00
9548c592a3
Kernel: Always print basic info about xHCI controller
...
Its nice to see that the controller is getting initalized
2024-07-23 09:09:08 +03:00
cda0276d39
Kernel: Force PCI irq line usage when not using APIC
...
afaik PIC does not support MSI
2024-07-23 09:08:00 +03:00