Bananymous
83e3409bd8
Kernel/LibC: Update SYS_SEEK to return new offset and implement lseek
2024-05-23 14:49:23 +03:00
Bananymous
7630170ed6
LibC: Implement qsort as quick sort
2024-05-23 14:44:48 +03:00
Bananymous
0af74fccda
Kernel/LibC: Rework dirent structure
...
dirent now contains statically sized d_name. This allows using
sizeof on the name and dirent properly, which some programs seem
to be using.
2024-05-22 20:19:59 +03:00
Bananymous
e77de1804f
Kernel: Fix some race conditions in TCP stack
...
Remove race condition if two acks are to be sent one after another.
Always unblock semaphore once TCP thread has done something. This
allows better chance of TCP sending to succeed.
There are multiple places in the networking code that would require
thread-safe entering to blocking mode. I should add some API for this
so that a lot of race conditions could be removed.
2024-05-21 01:53:45 +03:00
Bananymous
e00b92225d
Kernel: Fix E1000 interrupt handling condition
...
I had written the ICR register check backwards which lead to interrupt
handling only when it was not needed, and no handling when it was
needed. This somehow still worked, just much slower often requiring tcp
resends from the server.
2024-05-21 01:52:19 +03:00
Bananymous
ee8fca9439
General: Update discord badge
2024-05-20 21:07:15 +03:00
Bananymous
adc562feb8
General: Add simple contribution guide lines
...
README now contains simple contribution guide lines that should be
followed. I am now more open for public contributions to the repo
if people are interested.
Create a discord server and link it to the README. Discord seems to be
a nice platform for general messaging.
2024-05-20 20:44:34 +03:00
Bananymous
af8fa4014f
BuildSystem: Always download cmake instead of using host's
...
If cmake was installed from snap, build system would cause an error
because some libfakeroot GLIBC requirement.
2024-05-20 20:11:13 +03:00
Bananymous
08415b0e8f
General: Remove submodule info from README
...
Submodules are no longer needed as I now use my own AML interpreter instead of lai
2024-05-12 02:14:46 +03:00
Bananymous
967f9a9174
Shell: Ignore tab as that just fucks up formatting
2024-05-07 14:16:17 +03:00
Bananymous
d255141bd4
BuildSystem: Cleanup image creation
2024-04-24 01:27:59 +03:00
Bananymous
e7e1dd91c7
Kernel: Implement ACPI reset
2024-04-22 21:12:13 +03:00
Bananymous
195c5e92a4
Kernel: Add floating bus detection for ATA Bus
2024-04-22 21:12:13 +03:00
Bananymous
47dafe62b8
BuildSystem: Make port build script use bash as shell
...
pushd and popd don't work in sh
2024-04-22 21:12:13 +03:00
Bananymous
26922ebb51
Kernel: Remove stack size check for keyboard layout initialization
...
Keyboard layout loading can take around 1 KB of stack for i686 target
2024-04-22 21:11:04 +03:00
Bananymous
7480e71801
BuildSystem: Download binutils and gcc as tar balls
...
I am not sure why I changed this earlier. This is much cleaner and
faster as git doesn't have to recieve all patches and resolve deltas
2024-04-22 19:54:57 +03:00
Bananymous
9ac3f48fcb
Bootloader: Implement better memset and memcpy for 32 bit addresses
2024-04-20 18:14:05 +03:00
Bananymous
0e405755ad
General: Update README badge
...
Tokei's own badge was kind unreliable and slow. I now parse the tokei output into json on server side and make shields.io query it.
2024-04-20 10:39:50 +03:00
Bananymous
693f90449f
Kernel: Rework AML package and implement indexing in to packages
2024-04-19 11:26:48 +03:00
Bananymous
0bf45069bd
General: Add link to online demo in README.md
2024-04-18 15:35:31 +03:00
Bananymous
34b10f61ce
Kernel: Make PIT reserve its IRQ
...
PIT did not reserve IRQ leading to kernel panic if it was being
initialized.
2024-04-18 13:34:28 +03:00
Bananymous
1479b42112
Kernel: Don't even loop over processor when system has only BSP
2024-04-18 13:33:52 +03:00
Bananymous
bb061d2a0a
Kernel: Make 32bit not use large pages during boot
...
There is no guarantee that they are supported
2024-04-18 13:33:15 +03:00
Bananymous
061012a268
Kernel: Fix signal trampoline
...
32 bit did not even support it and 64 bit did not align stack
2024-04-18 13:32:40 +03:00
Bananymous
a698f91db4
Kernel: Fix PriorityMutex::try_lock()
...
Forgot to check this when I updated Mutex::try_lock()
2024-04-18 01:36:15 +03:00
Bananymous
30d12a76bc
Kernel: Fix 32 bit compilation
2024-04-18 01:35:56 +03:00
Bananymous
687fa44eff
Kernel: Add support for ACPI general purpose events
2024-04-17 21:51:03 +03:00
Bananymous
aefb33efff
Kernel: Implement dummy AML NotifyOp
2024-04-17 15:40:11 +03:00
Bananymous
da0c45b7ee
Kernel: Cleanup AML debug dump output
2024-04-17 15:35:42 +03:00
Bananymous
956335e844
Kernel: Implement AML WhileOp
2024-04-17 15:00:14 +03:00
Bananymous
701fc600cd
Kernel: Implement evaluate and store for BankFieldElement
2024-04-17 14:59:51 +03:00
Bananymous
e38b2cff4f
Kernel: Implement proper synchronization for AML opregions
2024-04-17 14:59:26 +03:00
Bananymous
b268293402
Kernel: Fix Buffer evaluate and store for sizes >= byte
...
All reads and writes were to the first byte. This patch adds the
correct offset for reading and writing.
2024-04-17 14:57:13 +03:00
Bananymous
45b9dc8be9
Kernel: Make ACPI \\_OSI return true for Linux
2024-04-17 02:19:35 +03:00
Bananymous
0ad7025a17
Kernel: Actually map FACS (and global lock)
2024-04-17 02:14:56 +03:00
Bananymous
49b7467840
Kernel: Simplify AML method invocation API
2024-04-17 01:20:58 +03:00
Bananymous
a40ef610a2
Kernel: Allow demand paging only for userspace threads
2024-04-17 01:16:43 +03:00
Bananymous
f9943b60e4
Kernel: Fix mutex try_lock return value
...
WHY IS GCC NOT COMPLAINING FROM HEADERS... I used almost 2 hours
trying to locate why AML was broken
2024-04-17 01:16:43 +03:00
Bananymous
f97fb1b35d
Kernel: Evaluate _REG on devices for embedded controller if needed
2024-04-17 01:16:43 +03:00
Bananymous
b959181afd
Kernel: Remove ACPI namespace from itself
...
This removes unnecessary cyclic reference
2024-04-17 00:52:05 +03:00
Bananymous
cbc27a94ac
Kernel: AML cleanup IfElse code
2024-04-17 00:49:07 +03:00
Bananymous
6a4f999b88
Kernel: Cleanup AML code and add evaluate for string
2024-04-16 17:39:16 +03:00
Bananymous
7707e01352
Kernel: AML add flag to force absolute lookup for ACPI namespace
2024-04-16 17:38:23 +03:00
Bananymous
e667326df5
Kernel: Fix AML if parsing
...
Parse else case unconditionally, even if _if_ case evaluates to true
2024-04-16 17:36:04 +03:00
Bananymous
f1b2d7530d
Kernel: Rework AML namespace and object hierarchy
...
Remove tree-like structure from AML. This allows more spec compliant
parsing of named objects inside not yet declared devices.
This also allows AML to be run thread safely. All object adds/removes
are now guarded by a mutex.
2024-04-16 16:47:45 +03:00
Bananymous
b6587b32b9
Kernel: ACPI ignore events from non-existent ports
2024-04-16 00:00:07 +03:00
Bananymous
b89bafa165
Kernel: Add support for power button shutdown
...
This patch implements basic support for power button using ACPI
fixed events. I still need to implement general purpose events
and embedded controller for full power button support.
2024-04-15 23:55:25 +03:00
Bananymous
9fac5f94ba
Kernel: Fix entering ACPI mode
...
My condition to check wheter to enter ACPI mode was incorrect.
I only entered ACPI mode if I already was in ACPI mode :DD
2024-04-15 15:05:48 +03:00
Bananymous
5affc73ee6
Kernel: Parse ACPI namespace only after TTY is initialized
...
This allows better debugging when there is no serial port available.
2024-04-12 16:47:17 +03:00
Bananymous
027016ddae
Kernel: Load all SSDTs and PSDTs
...
Spec says to load all tables with unique OEM table IDs but that seem
wrong.
2024-04-12 16:45:00 +03:00