Bananymous
5f63ea8f8a
Kernel: Add CPUID check for 1 GiB page support
2024-10-14 11:38:03 +03:00
Bananymous
2b43569927
Kernel: Use enums in boot info instead of magic values
2024-10-14 11:36:51 +03:00
Bananymous
4ba33175cf
Kernel: Don't leak memory when preparing fast page
...
For some reason I was allocating memory for page table entry...
2024-10-14 11:34:48 +03:00
Bananymous
3edc1af560
Kernel: Don't map main bios area in page table initialization
...
This is only needed for RSDP lookup so it can be done with fast pages
2024-10-14 11:32:54 +03:00
Bananymous
55fbd09e45
Kernel: Rewrite physical memory allocation with PageTable::fast_pages
2024-10-14 11:32:54 +03:00
Bananymous
6a46a25f48
image: Add benchmark flag to measure performance of image operations
2024-10-13 22:05:13 +03:00
Bananymous
88b8ca5b29
LibC: Fix some string functions
...
I was not casting some required values to char or handling length of
zero
2024-10-13 22:04:08 +03:00
Bananymous
fdddb556ae
LibC: Implement system() more properly
...
Old implementation did not ignore and block needed signals
2024-10-13 22:03:15 +03:00
Bananymous
d36b64e0c8
LibImage: name color to u32 function to to_argb from to_rgba
...
This is the actual format that it returns
2024-10-13 22:01:46 +03:00
Bananymous
8adc97980a
Shell: rewrite the whole shell to use tokens instead of raw strings
...
tab completion is still running with raw strings and that has to be
fixed in the future.
2024-10-13 22:00:16 +03:00
Bananymous
dab6e5a60f
BAN: Cleanup HashMap implementation and add {insert,emplace}_or_assign
2024-10-13 22:00:16 +03:00
Bananymous
0b05e9827b
BAN: Use memmove instead of memcpy on overlapping data
...
I was accidentally using memcpy where memmove was needed
2024-10-13 22:00:16 +03:00
Bananymous
1c1a76d6d7
BAN: Member function pointers now use references instead of pointers
...
This seems cleaner as class pointer cannot be null anymore
2024-10-13 22:00:16 +03:00
Bananymous
df4f37d68d
BAN: only define placement new operators for banan-os targets
...
This allows building and using BAN library outside of banan-os!
2024-10-10 21:55:25 +03:00
Bananymous
44629ba5dd
BAN: Allow userspace to use string literals with BAN::Error
2024-10-10 21:54:52 +03:00
Bananymous
2da6776451
BAN: Update {Byte}Span API with better constness
...
const BAN::Span<int> is now allowed to modify its underlying data, but
the container itself is const.
BAN::Span<const int> can be used for spans over constant data.
2024-10-10 21:53:23 +03:00
Bananymous
a68f411024
BAN: Add requires clauses for Container::emplace{,_back} functions
...
This allows syntax highlighters to report errors!
2024-10-10 21:51:44 +03:00
Bananymous
166550fbba
Kernel: Ext2 check if file exists before creating it
2024-10-07 18:21:05 +03:00
Bananymous
3e68981b0b
userspace: Remove start-gui from shell builtins and make it an alias
...
This makes way more sense :D
2024-10-07 18:01:33 +03:00
Bananymous
6fd76e8d1e
Shell: Rewrite alias parsing to allow chained commands
...
You can now have "chained" commands in alias
e.g. `alias foo='echo hello && ls`
2024-10-07 18:01:33 +03:00
Bananymous
dfcd15e7c4
Shell: Implement background processes with &
2024-10-07 18:01:33 +03:00
Bananymous
5fa359c28d
ls: Print file name in quotes if it contains spaces
2024-10-07 18:01:32 +03:00
Bananymous
5bcfc9dd50
Shell: Always print prompt to new line
...
This is only done on non banan-os targets if terminal is detected to
support cursor position querying
2024-10-07 18:01:32 +03:00
Bananymous
f67cad326a
Shell: Don't crash when there are no tab completions available :D
2024-10-07 14:26:07 +03:00
Bananymous
9775e83374
Shell: Fix tab space escaping in tab completion
2024-10-07 04:19:36 +03:00
Bananymous
264d1798dc
Shell: Clenup code and fix some bugs
...
Don't list tab completion multiple times, allow `clear` to work even
when ANSI CSI 3K is not supported, reset buffer index when cancelling
command with ctrl+c
2024-10-07 04:10:25 +03:00
Bananymous
1824988b9a
Shell: Add support for simple aliases
...
Aliases do not support chained commands with pipes, &&, ... but this is
a good start.
2024-10-07 04:09:38 +03:00
Bananymous
c54d9b3f60
Shell: Implement simple tab completion for commands and files
2024-10-07 01:44:44 +03:00
Bananymous
f432d3fcf8
BAN: Cleanup Optional casting for value getters
2024-10-07 01:44:44 +03:00
Bananymous
4f7828bab9
Shell: Allow escaping spaces in commands
2024-10-07 01:44:44 +03:00
Bananymous
ae073a336d
Shell: Move builtin commands to a hash map
...
This allows accessing builtin commands outside of `execute_builtin`
2024-10-07 01:44:44 +03:00
Bananymous
6f90974896
BAN: Fix StringView::starts_with
...
I have no idea what i had been thinking when writing this code :D
2024-10-06 06:23:25 +03:00
Bananymous
4f3c05851c
Shell: Expand ~ to home if its at the start of non quoted argument
2024-10-06 01:38:43 +03:00
Bananymous
4b13055125
Shell: Make builtin exit command read exit value from argument
...
Shell used to unconditionally return with exit code of 0
2024-10-06 01:24:34 +03:00
Bananymous
d542cd811d
Shell: Add support for &&, || and ;
2024-10-06 01:24:24 +03:00
Bananymous
f75cebac7e
Shell: Mark all functions as static
2024-10-05 19:11:58 +03:00
Bananymous
e302b6b635
Shell: Use sigaction instead of signal
...
This allows ctrl-c to work on linux :D
2024-10-05 19:07:59 +03:00
Bananymous
f709e88994
Shell: Cleanup argument handling and exiting
2024-10-04 17:54:01 +03:00
Bananymous
ab9a6d583b
Userspace: Set SHELL environment variable in init instead of shell
2024-10-04 17:24:37 +03:00
Bananymous
26d6bf338e
Shell: Ignore SIGTTOU and set pgroup from parent instead of child
...
This allows using the shell in linux!
2024-10-04 17:23:31 +03:00
Bananymous
b6e040dfc2
Kernel/Shell: Fix backspace and delete key byte sequences
2024-10-04 04:14:47 +03:00
Bananymous
f5802ca3e5
General: Update screenshot in README
2024-09-30 18:28:16 +03:00
Bananymous
7223e581a2
WindowServer: Fix 32 bit compilation with -Werror
...
There was a always false statement on 32 bit that the compliler was
warning about.
2024-09-27 15:33:25 +03:00
Bananymous
2d11ce9669
Kernel: Fix interrupt system
...
I had not understood how MSIs work and I was unnecessarily routing them
through IOAPIC. This is not necessary and should not be done :D
Also MSIs were reserving interrupts that IOAPIC was capable of
generating. Now IOAPIC and MSIs use different set of interrupts so
IOAPIC can use more interrupts if needed.
2024-09-27 15:31:31 +03:00
Bananymous
e4982a1a5c
LibC: Fix printf with alternate format and zero values
2024-09-26 15:25:16 +03:00
Bananymous
cea6dedccc
Userspace: Compile programs and libraries with -Wall -Wextra -Werror
2024-09-26 15:20:07 +03:00
Bananymous
e6ed5a388d
BuildSystem: Export compile commands for clangd
2024-09-26 15:14:54 +03:00
Bananymous
b89fc3fe87
Kernel: Implement ANSI SGR 7 to invert colors
...
This allows vim's visual selection to show up
2024-09-26 15:08:11 +03:00
Bananymous
57ae74f908
Terminal: Implement more ANSI escape handling
...
This patch adds L and M codes for inserting and deleting lines and SGR 7
for inverting colors
2024-09-26 15:07:08 +03:00
Bananymous
1a6804b4b4
Terminal: Make Terminal::handle_csi() return invalidated rectangle
...
When I updated Terminal to only do a single invalidation after all of
input text was printed, I forgot to change handle_csi
2024-09-26 15:05:11 +03:00