Bananymous
8d6db168d6
Kernel: remove message from BAN::Error
...
We don't store the error message anymore in BAN::Error.
Instead we store a error code that can be mapped into a string.
This allows BAN::Error to only take 4 bytes instead of 128.
We should also make some kernel initialization just panic instead
of returning errors since they are required for succesfull boot
anyway.
2023-04-11 23:25:21 +03:00
Bananymous
2fabe1949c
BAN: Move RefPtr to its own file and create New.h
...
New.h contains definitions for placement new operators and
BAN::allocator and BAN::dealloctor
2023-04-10 21:07:25 +03:00
Bananymous
c660df14ec
BuildSystem: Fix header copying to sysroot
...
We used to copy all headers everytime to sysroot which caused
rebuild of the whole os. Now we use the cmake command
'copy_directory_if_different' which seemed to fix this issue :)
2023-04-10 21:07:25 +03:00
Bananymous
5db5ff069a
BuildSystem: you can now build the toolchain with cmake
2023-04-06 00:23:02 +03:00
Bananymous
de9f109f2a
BAN: Add data() member function to Array
2023-04-03 17:00:52 +03:00
Bananymous
e49d3c7bfe
BuildSystem: We are now using cmake instead of plain make
...
I have been annoyed for a while since I had to build everything
when running the os since the buildsystem was really bad.
I wanted to rewrite the whole build system and changed to using cmake
:)
2023-04-02 04:07:27 +03:00
Bananymous
c32584cca0
BAN: LinkedList::remove now returns iterator to the element after
2023-03-30 18:46:19 +03:00
Bananymous
c1dbafc101
BAN: StringView::split(char, bool) is now thread safe
...
I had to duplicate some code, but this is better since I would like
to not use BAN::Function for something like this
2023-03-30 16:35:38 +03:00
Bananymous
f9c3ae7090
BAN: String add front() and back() helpers
2023-03-29 14:10:29 +03:00
Bananymous
779912d8af
BAN: Vector now takes optional argument for default value on resize
2023-03-28 23:10:36 +03:00
Bananymous
f205b8e883
BAN: Implement basic Circular Queue
2023-03-28 21:44:02 +03:00
Bananymous
0ef318633c
BAN: ScopeGuard can now be disabled (it wont call the function)
2023-03-28 01:15:13 +03:00
Bananymous
6d6bef1b04
BAN: move placement new declaration to Move.h
2023-03-27 03:38:06 +03:00
Bananymous
f8a2c60c8d
Kernel/BAN: move unix time conversion to BAN and add stat to Shell
2023-03-27 00:49:58 +03:00
Bananymous
a063d041c9
BAN: char* is now formatted as string and not pointer
2023-03-23 14:29:35 +02:00
Bananymous
3572e9794a
BAN: Modify Span constructors to keep constness correctly
2023-03-23 14:26:03 +02:00
Bananymous
cef6999dc7
BAN: Add is_const to traits
2023-03-23 13:28:57 +02:00
Bananymous
96579b88cf
Kernel: Cleanup GPT parsing code
2023-03-23 11:13:14 +02:00
Bananymous
9c744dfc44
BAN: Add wrappers for little/big endian numbers
2023-03-20 19:48:08 +02:00
Bananymous
22e45278a2
Kernel: Fix PC Screen font parsing
...
I had misread the format and the parsing code was incorrect. I also
changed fonts to store unicode codepoints as 32 bit integers, so
every character can be represented
2023-03-20 14:52:42 +02:00
Bananymous
70f2908056
BAN: Implement basic Span
...
This is wrapper over contiguous block of memory e.g. Vector
2023-03-20 13:34:26 +02:00
Bananymous
ef381d0600
BAN: Add iterators to all containers with contiguous memory
2023-03-20 13:26:42 +02:00
Bananymous
cfa87526a7
BAN: Add implementation for basic iterator for contiguous memory
2023-03-20 13:15:38 +02:00
Bananymous
1292be71b2
BAN: Add FNV hash for strings
2023-03-16 15:11:22 +02:00
Bananymous
1b7625581d
Kernel: Add basic concept of Processes
...
We now create Shell as a process that has its own threads
2023-03-16 12:17:04 +02:00
Bananymous
c012822d49
BAN: Rename StringView suffix from _sv to sv
2023-03-16 12:15:16 +02:00
Bananymous
392da37f9a
BAN: Function storage is now aligned as CallableBase and not max_align_t
...
On 32 bit architecture the alignment of 16 bytes did not seem to work
on stack variables. UBSan detected whole lot of misaligned functions
from Ext2.cpp. This patch should make function alignment be big enough?
2023-03-09 01:42:17 +02:00
Bananymous
371dfe8ef3
BAN: Formatter now uses perfect forwarding on its arguments
2023-03-08 21:31:26 +02:00
Bananymous
3ac99f1bd8
BAN: Add more traits and cleanup code
2023-03-08 21:30:21 +02:00
Bananymous
7458f68c38
BAN: Error can now be constructed from c_string or format string
...
If the resulting string would overflow, we just truncate it to fit
the error message buffer (128) bytes
2023-03-08 17:05:37 +02:00
Bananymous
23b3028e15
Kernel: Rename RefCounted -> RefPtr and implement RefCounted
2023-03-08 03:26:25 +02:00
Bananymous
e480f9c195
BAN: RefCounted<> frees count if object allocation fails
2023-03-06 13:17:04 +02:00
Bananymous
e3a71289c0
BAN: fix LinkedList back/front functions
2023-03-06 01:46:52 +02:00
Bananymous
81cb342c12
BAN: Remove #error macros
2023-03-02 22:30:32 +02:00
Bananymous
1c146ba1a5
BAN: remove aligned alloc from ban
2023-03-02 22:12:42 +02:00
Bananymous
52aa98ba25
Kernel+LibC: Add some errno codes
...
Kernel now returns ENOMEM and other errnos, so we dont have to write
error messages
2023-03-02 21:10:44 +02:00
Bananymous
90a7268e5a
BAN: Rewrite RefCounted to return ErrorOr
2023-03-02 12:30:11 +02:00
Bananymous
dc1a4614fb
BAN: Errors are now moved around with TRY()
2023-02-26 02:54:34 +02:00
Bananymous
9439582154
BAN: Add ASSERT_NOT_REACHED()
2023-02-26 02:53:58 +02:00
Bananymous
6c1f0d1dc8
BAN: Add big_endian_to_host in Math
2023-02-23 15:58:32 +02:00
Bananymous
0e77b4dc4e
BAN: You can now transform little endian data to host endian
2023-02-22 21:47:22 +02:00
Bananymous
f98f3d851c
BAN: HashMap uses LinkedList as bucket, so kmalloc_fixed can be used
2023-02-22 21:46:41 +02:00
Bananymous
a845f8696c
BAN: Add function to decode utf-8 encoded strings
...
works for 3 byte unicode characters
2023-02-22 21:45:26 +02:00
Bananymous
4afc4660a4
BAN: Basic containers have shrink_to_fit() method
...
I also chaged the default memory allocation increase from 1.5 to 2
2023-02-22 02:07:05 +02:00
Bananymous
5d31e89574
Kernel: Update ErrorOr API and add path find to VFS
...
These two are done on the same commit since Changes to Shell were
annoying to make work with only one change
2023-02-22 01:23:11 +02:00
Bananymous
9aab67fed8
BAN: make all Math functions inline constexpr
2023-02-22 01:17:56 +02:00
Bananymous
10b6d51522
BAN: implement Variant<> for two types
2023-02-22 01:17:21 +02:00
Bananymous
afd4b7a184
BAN: HashMap now copies size when copying :D
2023-02-22 01:16:07 +02:00
Bananymous
fbc17eb6dd
BAN: Implement basic HashMap
2023-02-20 16:00:51 +02:00
Bananymous
247f03c79e
BAN: Make ErrorOr<> have attribute [[nodiscard]]
...
We don't have to specify it everytime we make function return ErrorOr
2023-02-19 20:10:30 +02:00