Commit Graph

67 Commits

Author SHA1 Message Date
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
035f3baabf Restore NL in console.asm -- syscall 1 requires mem addr, not constant 0xA 2025-06-24 17:02:49 +02:00
2005adf25f Use NL/EOS instead of 10/0, use constants.asm for global constants 2025-06-24 16:34:06 +02:00
e48e91630e Fix test msg/comment (size for strlcpy 8=>5) 2025-06-24 15:54:32 +02:00
e620754b13 Adds strlcpy() 2025-06-24 15:53:24 +02:00
d3e7f47259 Store rcx to r11 instead of stack in tolower()/toupper() tests 2025-06-24 15:08:54 +02:00
f10b2f3c88 Save/restore rdi to r10 instead of stack in strcat(),puts() 2025-06-24 15:06:21 +02:00
f4162ed21a (alternative) strcmp() 2025-06-23 17:46:42 +02:00
63552b3c64 Allow enabling/disabling tests 2025-06-23 17:16:24 +02:00