|
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 |
|