|
7efb79dd26
|
LinkedList: Check for nullptrs in detach_from_list()
|
2022-12-26 12:45:49 +01:00 |
|
|
7e62ee66be
|
Change heap.first().has_value() to the cheaper heap.count()
continuous-integration/drone/push Build is passing
|
2022-12-26 12:24:39 +01:00 |
|
|
73c58bd902
|
Init: Move platform_init() before MemoryManager::init()
continuous-integration/drone/push Build is passing
This enables NX before we actually use it.
Wasn't causing problems with KVM on, but crashed with KVM off with a 'reserved bit set' page fault.
|
2022-12-26 12:12:55 +01:00 |
|
|
0054777e7d
|
x86_64: Warn if NX is not supported
|
2022-12-26 12:11:10 +01:00 |
|
|
08984e1673
|
x86_64: Create a has_flag() helper function and remove redundant clearing of reserved bits
|
2022-12-26 12:10:47 +01:00 |
|
|
59d69f684f
|
x86_64: Add general protection fault handler
continuous-integration/drone/push Build is passing
|
2022-12-24 11:49:47 +01:00 |
|
|
f71ccde833
|
Add an overload for aligned deletes which just calls the normal operator delete
|
2022-12-24 11:49:12 +01:00 |
|
|
f2cc797599
|
Add a simple ELF loader
continuous-integration/drone/push Build is passing
|
2022-12-23 13:09:21 +01:00 |
|
|
e5ae2b0435
|
TarStream: Make read_contents and friends const
|
2022-12-23 13:08:31 +01:00 |
|
|
ad0f6546d7
|
Add a global initrd TarStream to make the initial ramdisk accessible everywhere
continuous-integration/drone/push Build is passing
It's also mapped into virtual memory instead of directly going into the physical location!!
|
2022-12-23 11:33:23 +01:00 |
|
|
6ff92b1714
|
MemoryManager: Add get_kernel_mapping_for_frames()
This function allocates a continuous range of VM and maps the physical frames passed to said VM range.
|
2022-12-23 11:30:49 +01:00 |
|
|
74235c2c99
|
Update README.md
continuous-integration/drone/push Build is passing
|
2022-12-23 11:06:59 +01:00 |
|
|
e6384ae90d
|
Use the new toolchain location
continuous-integration/drone/push Build is passing
|
2022-12-23 11:06:37 +01:00 |
|
|
575752eb23
|
Update drone config to pull toolchain from a new purpose-built toolchain archive for CI
|
2022-12-23 11:04:50 +01:00 |
|
|
c39e54b7c6
|
Make TarStream::read_contents take any pointer as output
|
2022-12-23 10:51:55 +01:00 |
|
|
34e6c05cef
|
Fix it up a bit more
continuous-integration/drone/push Build is passing
|
2022-12-23 10:48:00 +01:00 |
|
|
913b13b380
|
Fix up the header install script
continuous-integration/drone/push Build is passing
|
2022-12-23 10:46:44 +01:00 |
|
|
4fa33a9689
|
SharedPtr: Add operator=
continuous-integration/drone/push Build is passing
|
2022-12-23 10:31:48 +01:00 |
|
|
bd4b05e534
|
Add OwnedPtr and SharedPtr
continuous-integration/drone/push Build is passing
|
2022-12-23 10:23:13 +01:00 |
|
|
9afaad8fed
|
Add dbgln() for the luna library
continuous-integration/drone/push Build is passing
|
2022-12-22 18:00:35 +01:00 |
|
|
a3595e71a9
|
Update .clang-format
continuous-integration/drone/push Build is passing
|
2022-12-21 20:22:44 +01:00 |
|
|
96135ff808
|
Use limits.h for the standard definition of WCHAR_MAX
continuous-integration/drone/push Build is passing
|
2022-12-21 20:11:00 +01:00 |
|
|
16bf8b38ea
|
UTF-8 decoder: Error out on overlong encodings
continuous-integration/drone/push Build is passing
|
2022-12-21 20:08:43 +01:00 |
|
|
fcefab4383
|
TextConsole: Add wide-character overloads for print() and println()
continuous-integration/drone/push Build is passing
These can't fail from UTF-8 decoding errors.
|
2022-12-21 19:41:13 +01:00 |
|
|
293b7b0f11
|
TextConsole: Propagate UTF-8 decoding errors
continuous-integration/drone/push Build is passing
|
2022-12-21 17:38:19 +01:00 |
|
|
2e8ea724a0
|
arch/x86_64: Refactor the stack tracing code to remove duplicate code
continuous-integration/drone/push Build is passing
|
2022-12-21 17:21:01 +01:00 |
|
|
7a2cb28475
|
Make sure isize matches ssize_t on most cases
continuous-integration/drone/push Build is passing
|
2022-12-20 17:12:44 +01:00 |
|
|
e2a6cba3c6
|
Log: Update formatting to make ANSI weirdness more sensible
continuous-integration/drone/push Build is passing
|
2022-12-19 21:42:53 +01:00 |
|
|
703c3f44fb
|
Add two FIXMEs
continuous-integration/drone/push Build is passing
|
2022-12-19 21:41:27 +01:00 |
|
|
042f999677
|
Heap: SCRUB IT ALL
continuous-integration/drone/push Build is passing
If your memory is all 0xacacacac there is a big probability you haven't initialized it.
|
2022-12-19 13:20:38 +01:00 |
|
|
a11a5dec1f
|
DoublyLinkedList -> LinkedList
continuous-integration/drone/push Build is passing
|
2022-12-19 12:43:23 +01:00 |
|
|
1269a045bd
|
LinkedList: Add a convenience delayed_for_each() method.
This is a special way of iterating over the list which permits removing items while iterating.
|
2022-12-19 12:41:25 +01:00 |
|
|
5b72144fac
|
Add a handy consume() method to LinkedList
continuous-integration/drone/push Build is passing
|
2022-12-19 12:35:08 +01:00 |
|
|
92a7004c2f
|
Move the reaping logic to Scheduler
|
2022-12-19 12:24:15 +01:00 |
|
|
31ee901e01
|
TarStream: Add a variant of read_contents() returning an OwnedStringView
|
2022-12-19 12:21:17 +01:00 |
|
|
9eb829f3a2
|
CString: Add strcmp()
|
2022-12-19 12:20:56 +01:00 |
|
|
60520dff4c
|
Make MemoryManager's scope guards more robust
continuous-integration/drone/push Build is passing
|
2022-12-19 11:55:53 +01:00 |
|
|
0bdbffe0ca
|
Spinlock+LockedValue: Add try_lock() methods
continuous-integration/drone/push Build is passing
For when you want to lock a resource if possible but not get blocked if it is locked by another thread.
|
2022-12-18 20:37:26 +01:00 |
|
|
283e641ece
|
Spinlock+LockedValue: Remove init() functions
Let's set the default (unlocked) value of Spinlock's underlying atomic to 0, so even if the constructor is not called it stays like that.
|
2022-12-18 20:36:15 +01:00 |
|
|
a63146a798
|
Show the date and time of build :)
continuous-integration/drone/push Build is passing
|
2022-12-18 18:51:25 +01:00 |
|
|
751377de0a
|
Scheduler: Make it possible for a thread to stop existing
continuous-integration/drone/push Build is passing
|
2022-12-18 18:43:34 +01:00 |
|
|
1b92fe36b4
|
Store the stack inside a thread
|
2022-12-18 18:43:17 +01:00 |
|
|
00cf267ac7
|
Lock EFIXME and error_string() behind a #define
continuous-integration/drone/push Build is passing
|
2022-12-18 18:14:48 +01:00 |
|
|
a08310ff5e
|
Add some more errno definitions
continuous-integration/drone/push Build is passing
|
2022-12-18 18:09:52 +01:00 |
|
|
cda0d49a4e
|
Add todo()
continuous-integration/drone/push Build is passing
|
2022-12-18 17:15:42 +01:00 |
|
|
4a7e48ed5d
|
Make sure wchar_t is wide enough to hold all Unicode code-points
continuous-integration/drone/push Build is passing
Too bad if it isn't.
|
2022-12-18 17:14:12 +01:00 |
|
|
6c3b7672a0
|
Kernel: Demo the initrd using TarStream
continuous-integration/drone/push Build is passing
Yes, we're using the physical address. Not optimal, this is only for demo purposes.
|
2022-12-18 16:39:35 +01:00 |
|
|
1d6092341a
|
Add a generic TarStream class
As long as it's in memory, we can use it :)
|
2022-12-18 16:38:47 +01:00 |
|
|
eadca3d25b
|
Add nullcpy()
Invented function to memcpy() with a specific size, but add a null terminator.
|
2022-12-18 16:31:02 +01:00 |
|
|
0d65f188f0
|
Alignment.h: Include the Types
|
2022-12-18 16:30:27 +01:00 |
|