1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 02:17:35 +00:00
serenity/Kernel
Andreas Kling 18348cebf1 Kernel+LibC: Implement the openat() syscall
POSIX's openat() is very similar to open(), except you also provide a
file descriptor referring to a directory from which relative paths
should be resolved.

Passing it the magical fd number AT_FDCWD means "resolve from current
directory" (which is indeed also what open() normally does.)

This fixes libarchive's bsdtar, since it was trying to do something
extremely wrong in the absence of openat() support. The issue has
recently been fixed upstream in libarchive:

https://github.com/libarchive/libarchive/issues/1239

However, we should have openat() support anyway, so I went ahead and
implemented it. :^)

Fixes #748.
2019-11-10 13:51:27 +01:00
..
Arch/i386 Kernel: Clear the x86 DF flag when entering the kernel 2019-11-09 22:42:19 +01:00
Devices PATAChannel: Alert user when no PCI device is found 2019-11-04 15:15:48 +01:00
FileSystem Kernel+SystemMonitor: Publish can_read/write state for open files 2019-11-09 22:42:19 +01:00
Heap Kernel: Reorganize memory layout a bit 2019-11-04 12:04:35 +01:00
Net Kernel+SystemMonitor: Publish can_read/write state for open files 2019-11-09 22:42:19 +01:00
TTY AK: Remove unused AK::not_implemented() 2019-11-06 13:58:08 +01:00
VM Kernel: Fix the search method of free userspace physical pages (#742) 2019-11-08 22:39:29 +01:00
.bochsrc Meta: Make Serenity run on Bochs once again 2019-08-06 21:09:24 +02:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h} 2019-06-07 20:02:01 +02:00
build-gpt-image-grub.sh Build: Fix more bugs in the POSIX sh-ification of scripts 2019-11-03 13:11:43 +01:00
build-image-grub.sh Build: Fix more bugs in the POSIX sh-ification of scripts 2019-11-03 13:11:43 +01:00
build-image-qemu.sh POSIX compliance: (most) shell scripts converted to generic shell 2019-11-03 09:26:22 +01:00
build-root-filesystem.sh POSIX compliance: (most) shell scripts converted to generic shell 2019-11-03 09:26:22 +01:00
CMOS.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
CMOS.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.cpp Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
Console.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
DoubleBuffer.cpp Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
DoubleBuffer.h Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
FB.h Kernel: Add framebuffer ioctls; wrap raw ioctls with a C API 2019-08-18 07:40:02 +02:00
grub.cfg Kernel: Add serial_debug cmdline parameter 2019-08-11 08:22:42 +02:00
grub_gpt.cfg PartitionTable: Initial GPT Support, Adding Block Limit 2019-10-07 10:11:39 +02:00
init.cpp Kernel: Use a lookup table for syscalls 2019-11-09 22:42:19 +01:00
install.sh POSIX compliance: (most) shell scripts converted to generic shell 2019-11-03 09:26:22 +01:00
IO.h Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
IRQHandler.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
IRQHandler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KBuffer.h Kernel: Make Region single-owner instead of ref-counted 2019-09-27 14:25:42 +02:00
KBufferBuilder.cpp Kernel: Add KBufferBuilder, similar to StringBuilder but for KBuffer 2019-08-06 20:04:12 +02:00
KBufferBuilder.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
KeyCode.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KParams.cpp AK: Make HashMap::get(Key) return an Optional<Value>. 2019-07-24 10:25:43 +02:00
KParams.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
kprintf.cpp Kernel: Prevent kprintf() from asserting in Console::the() (#718) 2019-11-03 13:17:55 +01:00
KResult.h Kernel: Align the KResult value storage appropriately. 2019-08-02 19:22:48 +02:00
kstdio.h Kernel: Add serial_debug cmdline parameter 2019-08-11 08:22:42 +02:00
KSyms.cpp Kernel: Remove debug spam about dump_backtrace() calling itself 2019-11-08 17:36:29 +01:00
KSyms.h Kernel: Remove unnecessary init_ksyms() function 2019-11-06 13:36:37 +01:00
linker.ld Kernel: Removing hardcoded offsets from Memory Manager 2019-11-08 17:38:23 +01:00
Lock.cpp AK: Add Atomic.h 2019-10-12 19:30:59 +02:00
Lock.h AK: Add Atomic.h 2019-10-12 19:30:59 +02:00
makeall.sh POSIX compliance: (most) shell scripts converted to generic shell 2019-11-03 09:26:22 +01:00
Makefile Kernel: Sort the C++ objects in the Makefile 2019-11-06 13:45:21 +01:00
mkmap.sh Kernel: Don't symbolicate symbol+offset for obvious non-kernel addresses. 2019-04-30 14:47:22 +02:00
MousePacket.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Multiboot.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCI.cpp Kernel: Hide PCI logs behind a debug flag like other logs 2019-08-14 06:28:53 +02:00
PCI.h Kernel: Add more PCI configuration reading functions 2019-08-14 06:28:53 +02:00
Process.cpp Kernel+LibC: Implement the openat() syscall 2019-11-10 13:51:27 +01:00
Process.h Kernel+LibC: Implement the openat() syscall 2019-11-10 13:51:27 +01:00
ProcessTracer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ProcessTracer.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
RTC.cpp Kernel: Fix BIOS date/time on hardware 2019-09-28 13:59:49 +02:00
RTC.h Add clang-format file 2019-05-28 17:31:20 +02:00
run run: Unbreak the run script 2019-11-05 18:56:43 +01:00
Scheduler.cpp Kernel: Rework Process::Priority into ThreadPriority 2019-11-06 16:30:06 +01:00
Scheduler.h Kernel: Stop idling after handling an IRQ 2019-09-14 20:21:10 +02:00
SharedBuffer.cpp Kernel: Teach Region how to remap itself 2019-11-03 21:11:08 +01:00
SharedBuffer.h Kernel: Rename "vmo" to "vmobject" everywhere 2019-09-04 11:27:14 +02:00
StdLib.cpp Kernel: Link with libgcc 2019-11-06 13:07:07 +01:00
StdLib.h Kernel: Add strncmp() 2019-08-11 16:30:43 +02:00
sync.sh Janitorial: Have sync.sh sudo automagically 2019-11-04 19:42:21 +01:00
Syscall.cpp Kernel: Clear the x86 DF flag when entering the kernel 2019-11-09 22:42:19 +01:00
Syscall.h Kernel+LibC: Implement the openat() syscall 2019-11-10 13:51:27 +01:00
Thread.cpp Kernel: Rework Process::Priority into ThreadPriority 2019-11-06 16:30:06 +01:00
Thread.h Kernel: Rework Process::Priority into ThreadPriority 2019-11-06 16:30:06 +01:00
UnixTypes.h Kernel+LibC: Implement the openat() syscall 2019-11-10 13:51:27 +01:00