summaryrefslogtreecommitdiff
path: root/LibC
AgeCommit message (Collapse)Author
2019-06-07AK: Rename printf.cpp to PrintfImplementation.h.Andreas Kling
2019-06-07AK: Add a ScopeGuard helper that invokes a callback when destroyed.Andreas Kling
This is useful when you want to ensure some little thing happens when you exit a certain scope. This patch makes use of it in LibC's netdb code to make sure we close the connection to the LookupServer.
2019-06-06LookupServer+LibC: Add support for reverse DNS lookups via gethostbyaddr().Andreas Kling
LookupServer can now take two types of requests: * L: Lookup * R: Reverse lookup The /bin/host program now does a reverse lookup if the input string is a valid IPv4 address. :^)
2019-06-06LibC: inet_pton() should return 1 on success, 0 or -1 on failure.Andreas Kling
2019-06-03LibC: Implement popen() and pclose().Andreas Kling
I feel reasonably confident that I might have gotten these right. :^)
2019-06-03Terminal: Use Vectors and OwnPtrs for Terminal lines. Adjust scrollChristopher Dumas
region behavior
2019-06-03Terminal: Implement scroll region termcodesChristopher Dumas
2019-06-03LibC: Implement dirfd().Andreas Kling
2019-06-01Kernel: Add fchown() syscall.Andreas Kling
2019-05-30LibC: Move wait-related stuff to <sys/wait.h>. #POSIXAndreas Kling
2019-05-30LibC: Add setenv().Andreas Kling
If I'm understanding the standard C library correctly, setenv() copies while putenv() does not. That's really confusing and putenv() basically sucks. To know which environment variables to free on replacement and which ones to leave alone, we keep track of the ones malloced by setenv in a side table. This patch also moves Shell to using setenv() instead of putenv(). Fixes #29.
2019-05-30Kernel/LibC: Implement sched_* functionality to set/get process priorityRobin Burchell
Right now, we allow anything inside a user to raise or lower any other process's priority. This feels simple enough to me. Linux disallows raising, but that's annoying in practice.
2019-05-30LibC: Add malloc_size() to tell you how big an allocation might be.Andreas Kling
It can't be 100% precise but it doesn't really matter. Use this to implement realloc() nicely. This also fixes a bug in realloc() where we didn't take the size of the allocation metadata into account when computing the size of an allocation backed by a BigAllocationBlock.
2019-05-29LibM LibC: add fixes for Lua port.Mustafa Ali CAN
2019-05-29LibC: realloc() should reuse the existing allocation more often.Andreas Kling
We were only reusing the existing allocation if the new requested size was exactly the same as the fudged size of the block. This meant that realloc() could allocate a new block even though the new block would be identical to the old block.
2019-05-28LibC: Don't define ALWAYS_INLINE if it's already defined.Andreas Kling
This makes building GCC a bit quieter.
2019-05-28LibC: fcntl.h should define F_RDLCK.Andreas Kling
2019-05-28Add clang-format fileRobin Burchell
Also run it across the whole tree to get everything using the One True Style. We don't yet run this in an automated fashion as it's a little slow, but there is a snippet to do so in makeall.sh.
2019-05-28LibC: Make dlfcn stubs extern "C" like the outside world expects.Andreas Kling
2019-05-28LibC: Move size_t, ptrdiff_t and NULL to stddef.h. #POSIXAndreas Kling
2019-05-28LibC: Move struct timeval to sys/time.h. #POSIXAndreas Kling
2019-05-26LibC: Implement abort() as raise(SIGABRT).Andreas Kling
2019-05-26LibC: Let the string for SIGFPE be "Division by zero".Andreas Kling
That's really what we send this signal for, so let's call it that.
2019-05-23LibC: Stub out dlfcnRobin Burchell
2019-05-23LibC: The "install" target should depend on the "startfiles" target.Andreas Kling
This ensures that crt0.o is built during the Toolchain bootstrap.
2019-05-23LibC: Port setjmp syntax to avoid nasm dependencyRobin Burchell
2019-05-22LibC: Some compat fixes for GNU make.Andreas Kling
2019-05-22LibC: Implement wait() as a wrapper around waitpid().Andreas Kling
2019-05-21LibC: First pass of compat work / stubs while trying to build OpenSSL.Andreas Kling
2019-05-21LibC: Oops, forgot to commit sigsuspend() prototype.Andreas Kling
2019-05-21LibC: Add htonl() and ntohl().Andreas Kling
2019-05-21LibC: Add sigsuspend() stub.Andreas Kling
2019-05-20Kernel: Add getpeername() syscall, and fix getsockname() behavior.Andreas Kling
We were copying the raw IPv4 addresses into the wrong part of sockaddr_in, and we didn't set sa_family or sa_port.
2019-05-20Kernel: Add support for recv() with MSG_DONTWAIT.Andreas Kling
Passing this flag to recv() temporarily puts the file descriptor into non-blocking mode. Also implement LocalSocket::recv() as a simple forwarding to read().
2019-05-19LibC: Add an h_addr macro for old code that doesn't know about h_addr_list.Andreas Kling
2019-05-19Kernel+LibC: Implement getsockname() syscall.Andreas Kling
2019-05-19LibC: Add stub for fsync().Andreas Kling
2019-05-19LibC: Add mmap_with_name() that names the allocation immediately.Andreas Kling
This allows us to skip the separate call to set_mmap_name() in code that we control, e.g malloc() and GraphicsBitmap.
2019-05-19LibC: unsetenv() should take a const char*, not a char*.Andreas Kling
2019-05-18malloc: Use a Vector with inline capacity for the big block recyclers.Andreas Kling
2019-05-17LibC: Implement clock() and add CLOCKS_PER_SEC define.Andreas Kling
2019-05-17LibCore: Move AK/ArgsParser to LibCore/CArgsParserRobin Burchell
Also rename the classes to match LibCore naming style. This means that it's no longer incorrectly linked into LibC and Kernel.
2019-05-17LibC: Rename beep() to sysbeep() to avoid clashing with curses.Andreas Kling
2019-05-16LibC: Don't clobber errno in dbgprintf().Andreas Kling
2019-05-16LibC/Shell: Add unsetenv(), and unset builtin calling it in Shell.Robin Burchell
2019-05-16LibC: Change putenv (and getenv) to not copy, but directly return the ↵Robin Burchell
environ values. This is in keeping with how putenv should function. It does mean that the shell's export command now leaks, but that's not a difficult fix. Contributes to #29.
2019-05-16LibC: Add struct timespec to time.hRobin Burchell
2019-05-16LibC: Allow {AF,PF}_UNIX as well as {AF,PF}_LOCALRobin Burchell
Seems that these are equivilent. POSIX specifies _LOCAL, but a lot of software uses _UNIX.
2019-05-16LibC: Add INET_ADDRSTRLEN defineRobin Burchell
2019-05-16LibC: Define a SOMAXCONN value in socket.hRobin Burchell
No idea if this is sensible; but some software will look for it.