summaryrefslogtreecommitdiff
path: root/LibC
AgeCommit message (Collapse)Author
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.
2019-05-16LibC: Implement str{n}casecmpRobin Burchell
2019-05-15Kernel: Add a beep() syscall that beeps the PC speaker.Andreas Kling
Hook this up in Terminal so that the '\a' character generates a beep. Finally emit an '\a' character in the shell line editing code when backspacing at the start of the line.
2019-05-14malloc: Make it possible to recycle big allocation blocks as well.Andreas Kling
This patch makes us recycle up to 8 blocks of 4KB size. This should probably be extended to handle other sizes.
2019-05-13Feature/pidof (#31)GuillaumeGas
* Added killall command * Fixed feedbacks of awesomekling * Implemented pidof program and helper to parse arguments called ArgsParser. * Fixed feedbacks in pidof implem. Fixes #26
2019-05-13LibC+Shell: Make system() actually work.Andreas Kling
system() will now fork off a child process and execute the command via /bin/sh -c. There are probably some things to fix here, but it's a start.
2019-05-10LibC: Oops, I forgot to commit sys/uio.{cpp,h} yesterday.Andreas Kling
2019-05-10Kernel: Add a writev() syscall for writing multiple buffers in one go.Andreas Kling
We then use this immediately in the WindowServer/LibGUI communication in order to send both message + optional "extra data" with a single syscall.
2019-05-08Toolchain: Make sure everything ends up in the right place in Root/Andreas Kling
2019-05-03Kernel+Userland: Implement mknod() syscall and add a /bin/mknod program.Andreas Kling