Bananymous 
							
						 
						
							
								69c4940b27 
								
							 
						 
						
							
							
								
								LibC: Fix `signal` return value  
							
							... 
							
							
							
							signal was returning `func` when it should've returned the old handler 
							
						 
						
							2025-05-29 00:58:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7691b019e2 
								
							 
						 
						
							
							
								
								LibC: Fix printf %c modifier for null byte  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f55d6b11c5 
								
							 
						 
						
							
							
								
								LibC: Implement `mblen`  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f52877abb4 
								
							 
						 
						
							
							
								
								LibC: Implement `readv` and `writev`  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ee7c9b6731 
								
							 
						 
						
							
							
								
								LibC: Add simple `getnameinfo`  
							
							... 
							
							
							
							This doesn't actually do any name resolution but just formats input to
string. 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4721344518 
								
							 
						 
						
							
							
								
								LibC: Don't fail `getaddrinfo` if node is null  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e0d986dcd7 
								
							 
						 
						
							
							
								
								LibC: Add missing u_char and u_short types  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c7be3dcd5b 
								
							 
						 
						
							
							
								
								LibC: Add timer{add,sub,clear,isset,cmp}  
							
							... 
							
							
							
							These are not POSIX but used by used by some ports 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								89c9bfd052 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `socketpair` for UNIX sockets  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								12b93567f7 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `getpeername`  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8aa4e4ff1e 
								
							 
						 
						
							
							
								
								LibC: Implement `clearenv`  
							
							... 
							
							
							
							This is GNU extension but seems nice to have :D 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7eade002a7 
								
							 
						 
						
							
							
								
								LibC: Fix `mktime`  
							
							... 
							
							
							
							yday calculation was off so results were always off for march-december 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a8f8d27f4e 
								
							 
						 
						
							
							
								
								LibC: Implement basic tzset()  
							
							... 
							
							
							
							I still don't have timezone support so this just sets values to UTC 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								356935bd4f 
								
							 
						 
						
							
							
								
								LibC: Fix strtou{,l,ll} for negative values  
							
							... 
							
							
							
							Also set endp if base is invalid 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bce3dd045f 
								
							 
						 
						
							
							
								
								LibC: Fix strncat return value  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								44b762f916 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pwrite and make pread non-locking  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5d80c880c8 
								
							 
						 
						
							
							
								
								LibC: Fix `FILE` buffering once again :D  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b907263f35 
								
							 
						 
						
							
							
								
								LibC: Implement basic tmpfile  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0f0accf82c 
								
							 
						 
						
							
							
								
								LibC: Don't use `false` in pthread initializers  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ddcf414107 
								
							 
						 
						
							
							
								
								LibC: Fix netinet/in.h and arpa/inet.h definitions  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1bcd1edbf5 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement basic epoll  
							
							... 
							
							
							
							This implementation is on top of inodes instead of fds as linux does it.
If I start finding ports/software that relies on epoll allowing
duplicate inodes, I will do what linux does.
I'm probably missing multiple epoll_notify's which may cause hangs but
the system seems to work fine :dd: 
							
						 
						
							2025-05-13 10:18:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f14774d034 
								
							 
						 
						
							
							
								
								libc: fix tmpnam when no name is found  
							
							
							
						 
						
							2025-05-05 19:17:16 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c08c63f420 
								
							 
						 
						
							
							
								
								libc: reorder destructor and fflush in exit  
							
							
							
						 
						
							2025-05-05 19:16:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								82f4975f45 
								
							 
						 
						
							
							
								
								LibC: Save callee saved registers on setjmp  
							
							
							
						 
						
							2025-05-04 13:54:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d457e6ad6a 
								
							 
						 
						
							
							
								
								LibC: Fix printf e/E modifier for negative exponents  
							
							
							
						 
						
							2025-05-04 13:42:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								abf7c8e68a 
								
							 
						 
						
							
							
								
								LibC: Implement `difftime`  
							
							
							
						 
						
							2025-05-04 13:42:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1a38d0c31e 
								
							 
						 
						
							
							
								
								LibC: Add g/G modifiers to printf  
							
							
							
						 
						
							2025-05-04 13:42:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								006a196e4a 
								
							 
						 
						
							
							
								
								LibC: optimize strpbrk, str{,c}spn, strtok{,_r}  
							
							... 
							
							
							
							These matches are now detected with bitmasks instead of looping over the
second string 
							
						 
						
							2025-04-24 01:39:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8834241417 
								
							 
						 
						
							
							
								
								LibC: Fix scanf %n modifier  
							
							... 
							
							
							
							Old code was always returning off by one 
							
						 
						
							2025-04-22 09:55:38 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								96740d6be4 
								
							 
						 
						
							
							
								
								LibC: Make `inet_addr` spec compliant  
							
							... 
							
							
							
							I was not doing any error checking, basically i validated anything that
started with atleast a single digit. 
							
						 
						
							2025-04-22 09:40:46 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								33a0f562d3 
								
							 
						 
						
							
							
								
								resolver: Add support for CNAME  
							
							... 
							
							
							
							Also rework resolver's send format and convert test-tcp and nslookup to
use getaddrinfo 
							
						 
						
							2025-04-22 08:36:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								808c97020a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement SA_RESTART  
							
							... 
							
							
							
							I have been thinking how to do this for a long time but I finally
figured out a semi-clean way 
							
						 
						
							2025-04-22 02:42:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5c9710c78b 
								
							 
						 
						
							
							
								
								LibC: Implement `strcoll_l`  
							
							
							
						 
						
							2025-04-22 00:48:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								028c7a822f 
								
							 
						 
						
							
							
								
								LibC: Don't define SCHAR_MAX in locale.c  
							
							
							
						 
						
							2025-04-21 22:21:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								543bb3cc4b 
								
							 
						 
						
							
							
								
								LibC: Rework malloc locking add proper realloc  
							
							
							
						 
						
							2025-04-21 20:29:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b774f147da 
								
							 
						 
						
							
							
								
								LibC: Implement dummy pthread_attr_{get,set}detachstate  
							
							... 
							
							
							
							detached threads are not yet supported, but this allows implementation
to make sure threads are joinable. 
							
						 
						
							2025-04-21 19:58:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2a5921b9c9 
								
							 
						 
						
							
							
								
								LibC: Implement pthread_barrier  
							
							... 
							
							
							
							This is not fully working but should be fine for most cases 
							
						 
						
							2025-04-21 19:53:38 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								60cb392e97 
								
							 
						 
						
							
							
								
								LibC: Implement pthread_barrier  
							
							... 
							
							
							
							This is yet another bad sched_yield implementation :D 
							
						 
						
							2025-04-21 19:52:14 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d012c538c3 
								
							 
						 
						
							
							
								
								LibC: Add PTHREAD_SPIN_INITIALIZER  
							
							... 
							
							
							
							This is not posix, but current implementation allows adding this 
							
						 
						
							2025-04-21 19:47:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c88d0d7f7 
								
							 
						 
						
							
							
								
								LibC: Implement pthread_rwlock  
							
							... 
							
							
							
							This uses the same dumb sched_yield instead of actually blocking :D 
							
						 
						
							2025-04-21 18:48:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								773b8de8ba 
								
							 
						 
						
							
							
								
								LibC: Refactor pthread type definitions  
							
							
							
						 
						
							2025-04-21 14:38:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5d8dd090a9 
								
							 
						 
						
							
							
								
								LibC: Implement `pthread_once`  
							
							
							
						 
						
							2025-04-21 14:17:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								16dbfbb267 
								
							 
						 
						
							
							
								
								LibC: Make limits.h `*_MAX` usable in #if comparisons  
							
							
							
						 
						
							2025-04-20 17:15:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								265b4c2b22 
								
							 
						 
						
							
							
								
								LibC: Implement `thread_equal`  
							
							
							
						 
						
							2025-04-20 03:27:16 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								db9db2cc40 
								
							 
						 
						
							
							
								
								LibC: Implement basic pthread mutexes  
							
							... 
							
							
							
							This implementation is just calling sched_yield if it could not get
mutex. This is not optimal as it does not allow the CPU to idle, but it
works for now :)
Also I did not test this code at all, but it feels correct :D 
							
						 
						
							2025-04-20 03:27:16 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3642eabac0 
								
							 
						 
						
							
							
								
								LibC: Use BAN::atomic_* functions in pthread spinlock  
							
							... 
							
							
							
							This allows us not to reinterpret_cast pthread_spin_t to
BAN::Atomic<pthread_spin_t> which is much better :) 
							
						 
						
							2025-04-20 03:11:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1ccff9478f 
								
							 
						 
						
							
							
								
								LibC: Don't define __tls_get_addr if TLS is disabled  
							
							... 
							
							
							
							This makes linking fail if something tries to use TLS :) 
							
						 
						
							2025-04-20 03:11:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								85f9b585f5 
								
							 
						 
						
							
							
								
								LibC: Don't yield on `pthread_spin_lock`  
							
							... 
							
							
							
							Thats kinda the whole point of spinlocks :D 
							
						 
						
							2025-04-20 03:11:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								01626b4c9f 
								
							 
						 
						
							
							
								
								LibC: Add stub for `pthread_detach`  
							
							
							
						 
						
							2025-04-20 03:11:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a85841ca76 
								
							 
						 
						
							
							
								
								LibC: Add stub for `pthread_attr_setstacksize`  
							
							
							
						 
						
							2025-04-20 03:11:41 +03:00