Commit Graph

75 Commits

Author SHA1 Message Date
ef19cbda50 Add file descriptor constants 2025-06-27 19:05:14 +02:00
9982eabe7c printf(): Always print full string instead of throwing an error; print printfBuff when full and start at index 0 again 2025-06-27 18:57:54 +02:00
e49c203c34 Prevent errors in make, use -p with mkdir 2025-06-26 11:04:07 +02:00
6b850457cd Fix NL in puts 2025-06-26 11:01:58 +02:00
7a2d05d838 Fix makefile (create build and build/bin) 2025-06-26 10:57:32 +02:00
265ff06686 Seperate source and build files in src and build (and build/bin) 2025-06-26 10:55:10 +02:00
2e8da5318f Remove 'all' in makefile 2025-06-26 10:39:45 +02:00
ec8943ac7c Use NL/EOS instead of 10/0 2025-06-26 10:38:01 +02:00
43b5367790 perror(): Print unknown errors too with errno 2025-06-26 10:33:33 +02:00
232d50576f Add perror() (currently only errors 1-34 from asm-generic/errno-base.h) 2025-06-26 09:29:54 +02:00
fc28643c1a Get rid of unneeded function prologues/epilogues 2025-06-26 07:23:29 +02:00
3730086281 Minimalize comments 2025-06-26 07:02:00 +02:00
61a1cb50d1 printf() optimization: Use syscall and mov r14 to rax rather than calling print and strlen -- r14 used to contain wrong length: mistakenly increased r14 (and performed checks) for printfNBuff 2025-06-25 21:57:01 +02:00
45a62dff93 Remove fopen mode/open flags table comment in file.asm (was only there for convenience while creating fopen base) 2025-06-25 21:40:19 +02:00
58cd2cc034 Restore console.asm:.rodata:bufferLength 2025-06-25 21:23:15 +02:00
c40ac31c1f Don't push/pop r11 in printf(), idk why I did that anymore but it's not needed 2025-06-25 21:19:33 +02:00
9794c64cd5 printf(): Don't push and pop rsi before/after itoa (rsi is modified anyway) 2025-06-25 20:52:52 +02:00
9d904555eb Improve printf() : Less jumps (cmovX), removal of finish_L/rbx mod 2025-06-25 20:48:53 +02:00
cef713db14 Minor optimizations in printf() (stop using rbx and r13, use smarter checks instead + pop r11 correctly (prevent stack corruption)) 2025-06-25 20:40:35 +02:00
d3b801a97b Merge branch 'development' of git.kwarde.com:Kwarde/klibc into development 2025-06-25 16:24:37 +02:00
01e14d418a FIX: No longer allow exceeding printf buffer, instead print an error to stdout. Temporary fix
Later, if buffer is full, print current buffer and reset buffer so that there is no limit.
2025-06-25 16:23:59 +02:00
e020fb15c1 FIX: itoa() not saving rbx 2025-06-25 16:23:02 +02:00
6bf73eb5ed Update README (C lib -> C-like lib, since it doesn't mimic the true C library anymore) 2025-06-25 15:06:12 +02:00
3e8bcdeb01 Get rid of gcc, adds exit() 2025-06-25 14:58:02 +02:00
36d21ca18b Ignore invalid specifiers in printf() 2025-06-25 14:40:01 +02:00
5ead6ebdb1 Add support for '%%' in printf() 2025-06-25 14:21:46 +02:00
1e095bec77 Add printf() comment, return length of printed message 2025-06-25 13:56:30 +02:00
d0769f6ffc Add support for %c in printf() 2025-06-25 13:49:30 +02:00
74178a6a2d FIX: Loading arg from stack to wrong register (rsi->rdi) for %d 2025-06-25 13:43:06 +02:00
266cb57d1c Proper SYS V ABI use (don't restore rsi in itoa) 2025-06-25 13:31:48 +02:00
f5e1143138 Fix issue in printf() with %d --needed to push+pop several registers before/after itoa() call 2025-06-25 13:29:26 +02:00
4438abda11 Dump current state of printf() (adding %d support), adds itoa() 2025-06-25 13:07:18 +02:00
1de7731139 printf() comment cleanup 2025-06-25 12:12:26 +02:00
3a55212f3e Fix stack usage for printf(), add test 2025-06-25 12:00:05 +02:00
7054061734 Working '%s' for printf() (args in stack yet untested) 2025-06-25 11:42:44 +02:00
855487e857 printf() no longer crashes, can print string but now aborts after printing first string 2025-06-25 11:31:01 +02:00
dcb2b8acae Start writing printf() D: 2025-06-25 11:08:56 +02:00
1969294f02 Use direct value for mode in fopen() instead of pointer -- mode is always 1 char so no need to store mode letters in memory 2025-06-25 10:15:21 +02:00
692c96512e Return -22 (EINVAL) in fopen() if incorrect mode was supplied 2025-06-25 10:09:23 +02:00
06fef96cf4 Fix return value comment for fwrite() 2025-06-25 10:03:57 +02:00
c4ce3212e7 Assure fwrite() and fclose() only work if FD>=3, exit with -9 (EBADF) otherwise 2025-06-25 10:02:59 +02:00
3cbf9e8ce0 Fix file.asm return value comments 2025-06-25 09:56:40 +02:00
fbea8d0322 Adds fopen(), fwrite(), fclose() 2025-06-25 09:38:42 +02:00
9d265e3db6 Fix strcmp() 2025-06-25 08:35:25 +02:00
6df67b18f4 Improve todo/fix comment for strcmp 2025-06-24 19:08:00 +02:00
7dd7217e08 Improved test message (msgStrcmp) 2025-06-24 19:07:30 +02:00
6cb90256e7 Fix return value comment for strlclr() 2025-06-24 19:00:43 +02:00
354024c1b7 Rewrite tests (most accidentally done in previous commit), add TODO (bugfix) in strcmp() 2025-06-24 18:45:17 +02:00
e2de729a87 Adds strclr() and strlclr() 2025-06-24 18:29:18 +02:00
46051d0082 FIX: strcat() returning wrong address 2025-06-24 17:53:56 +02:00