Bananymous
0adf24fcad
LibC: Add dummy setjmp.h
2023-05-10 23:00:53 +03:00
Bananymous
80e13965d9
LibC: Add dummy locale.h
2023-05-10 22:58:07 +03:00
Bananymous
36707ec87a
LibC: implement printf conversions e, E, f, F
2023-05-10 22:36:03 +03:00
Bananymous
5f89f083a2
LibC: add math.h with floorl
2023-05-10 22:35:42 +03:00
Bananymous
cae0a1cc60
LibC: add working f modifier to printf
...
This is implementation will write out of bounds if the conversion
takes more than 1024 characters (either super large number or very
big percision).
Also we dont handle NaN and infinity cases
2023-05-10 15:43:42 +03:00
Bananymous
480d92fce5
LibC: add better error string support
2023-05-10 02:22:31 +03:00
Bananymous
49fe3d0d4f
LibC: add probably functional *printf
...
I wrote a general printf function that takes an putc function
pointer. We can use this to implement all the printf family
functions. I haven't done thorough testing with this, but it seems
to be functional for the most part
2023-05-10 02:00:28 +03:00
Bananymous
ff2e2937a5
Kernel: Remove offset from OpenFileDescriptor
...
This is now handled on the libc side. There might be reasons to
have it in kernel side, but for simplicity's sake I'm moving it
to libc for now :)
2023-05-09 20:31:22 +03:00
Bananymous
0cc1fb53d5
LibC: Fix bug in *printf
2023-05-09 20:30:12 +03:00
Bananymous
05046d6e93
BAN: Error uses 64 bit error codes
2023-05-07 02:09:52 +03:00
Bananymous
054c5450df
LibC: syscall() now returns -1 on error and updates errno
2023-05-07 01:51:39 +03:00
Bananymous
12e42f40c5
Kernel/LibC: add free function for FixedWidthAllocator
...
I have to rework the syscall API and allocators in process. For
now this works well enough :)
2023-05-07 01:21:50 +03:00
Bananymous
bcfd838131
Kernel: Add basic fixed width allocator for userspace
...
We have to move process stacks to the general heap and maybe map
kernel to higher half.
2023-05-06 19:58:08 +03:00
Bananymous
e1a6e7c3ac
LibC: add proper stdlib.h header
...
Function declarations taken from the posix specifications
2023-04-27 15:14:03 +03:00
Bananymous
3537d53d5c
LibC: add link to posix stdio.h
2023-04-27 14:16:25 +03:00
Bananymous
1d42b26fce
LibC: Fix some bugs
2023-04-25 13:27:01 +03:00
Bananymous
79812b34b0
LibC: fread() now does a single syscall
2023-04-25 12:38:08 +03:00
Bananymous
cd74b2167d
LibC: Write mostly functioning stdio
2023-04-23 14:32:37 +03:00
Bananymous
ff8c0086e2
LibC: puts() now just calls syscall(SYS_WRITE, ...)
2023-04-22 15:29:38 +03:00
Bananymous
dc1b7cf08f
LibC: syscalls have now proper argument order
2023-04-22 15:29:15 +03:00
Bananymous
d9b7747fc5
LibC: exit() calls _fini()
2023-04-19 00:42:00 +03:00
Bananymous
3f9d6f0311
LibC: add needed stubs to build executables with our compiler
2023-04-12 17:53:02 +03:00
Bananymous
aa2aee684b
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
781cc78a1f
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
25ddc24754
BuildSystem: cmake can now build out libc
...
I can't seem to get libc++ build to work...
2023-04-10 21:07:25 +03:00
Bananymous
989f9ec5fe
LibC: remove old unused files
2023-04-07 02:26:44 +03:00
Bananymous
8a8793fd2d
BuildSystem: you can now build the toolchain with cmake
2023-04-06 00:23:02 +03:00
Bananymous
a5830c5424
LibC: add stubs for a lot of functions
2023-04-05 23:58:40 +03:00
Bananymous
b6896a6d85
LibC: sys/types uses 'typedef' instead of 'using'
2023-04-05 15:03:24 +03:00
Bananymous
67ff01e915
LibC: Add errno ENOTTY
2023-04-05 02:47:37 +03:00
Bananymous
63e863ad35
LibC: Add unistd.h with STD{IN,OUT,ERR}_FILENO definitions
2023-04-05 00:59:48 +03:00
Bananymous
86d777e2eb
LibC: add device macros in sys/sysmacros.h
2023-04-03 10:59:15 +03:00
Bananymous
4c5176f751
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
d71f1f24e4
LibC: Combine string.h functions definitions to single file
2023-04-02 00:00:29 +03:00
Bananymous
cd0d10b64e
LibC: add ENOBUFS errno
2023-03-29 10:58:25 +03:00
Bananymous
32c3aca52f
LibC: add dirent.h
2023-03-25 02:08:33 +02:00
Bananymous
9fd17ef73c
LibC: Add stat structure
2023-03-24 18:08:22 +02:00
Bananymous
1be8b2f514
LibC: add more typedefs to sys/types
2023-03-23 19:24:12 +02:00
Bananymous
d6e4430692
LibC: add errno NAMETOOLONG
2023-03-23 14:48:42 +02:00
Bananymous
cf2be54e8f
LibC: add errno ENOTEMPTY
2023-03-19 05:43:40 +02:00
Bananymous
3ab62e83d3
LibC: add errno EEXISTS
2023-03-19 04:17:39 +02:00
Bananymous
ceb53533be
LibC: add fcntl.h with some defines
2023-03-17 21:18:41 +02:00
Bananymous
e2707b9416
LibC: Add EBADF errno
2023-03-16 16:22:11 +02:00
Bananymous
4493c9bbe6
LibC: Add ENTOSUP errno
2023-03-16 16:03:51 +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
10ef3c6a54
LibC: add declarations for malloc and free
2023-03-04 02:59:48 +02:00
Bananymous
53ec66ff86
LibC: strerror now always uses a buffer to which it copies the string
2023-03-02 22:13:08 +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
5cd97e44e2
LibC: Add strcmp and strncmp
2023-02-23 15:57:33 +02:00
Bananymous
9b8de5025a
All: rename every function from UpperCamelCase to snake_case
...
This was a mess since I didn't know which to use but now I decided
to go with snake_case :)
2023-02-01 21:05:44 +02:00
Bananymous
b315fdc27f
Kernel: Finally managed to get 64-bit working
...
I had weird problems with interrupts but everything should work now
2023-01-25 19:19:28 +02:00
Bananymous
fd16c1cf58
LibC: Add is*() functions to libc
2023-01-16 20:05:51 +02:00
Bananymous
6b73547989
All: edit gcc flags
2023-01-13 00:04:15 +02:00
Bananymous
efd8638a96
Kernel: Improve kernel panic message and rename it 'panic'->'Panic'
2023-01-09 21:57:03 +02:00
Bananymous
f4b614aa61
LibC: Add some new functions
2022-12-13 00:51:57 +02:00
Bananymous
ac2ba8bc56
LibC: Remove actual printing from putc() since we were panicing anyway
2022-12-10 00:30:00 +02:00
Bananymous
c17f61611e
Improve buildsystem by making build directory
...
We now create build directory for kernel and libc so that source
directories are kept more clean.
2022-12-03 18:17:37 +02:00
Bananymous
123382eace
Fixes :)
2022-11-15 21:42:14 +02:00
Bananymous
35e21ca4ce
Improve integer printing
2022-11-15 16:34:16 +02:00
Bananymous
9e933a5ec5
Add kernel panic function
2022-11-14 18:53:00 +02:00
Bananymous
b185ed4fd3
Libc is now written in C++
2022-11-14 00:31:24 +02:00
Bananymous
a1a709974a
Add %p to printf
2022-11-13 00:33:45 +02:00
Bananymous
5a3596170c
Add strcpy and strncpy
2022-11-12 23:47:06 +02:00
Bananymous
7ad8189e24
Add somewhat functioning printf
2022-11-12 23:36:39 +02:00
Bananymous
e6b4866ab0
Initial commit. We have a booting kernel
2022-11-12 21:04:47 +02:00