ladybird/Userland/Libraries/LibC
Liav A 23a7ccf607 Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls
This is a preparation before we can create a usable mechanism to use
filesystem-specific mount flags.
To keep some compatibility with userland code, LibC and LibCore mount
functions are kept being usable, but now instead of doing an "atomic"
syscall, they do multiple syscalls to perform the complete procedure of
mounting a filesystem.

The FileBackedFileSystem IntrusiveList in the VFS code is now changed to
be protected by a Mutex, because when we mount a new filesystem, we need
to check if a filesystem is already created for a given source_fd so we
do a scan for that OpenFileDescription in that list. If we fail to find
an already-created filesystem we create a new one and register it in the
list if we successfully mounted it. We use a Mutex because we might need
to initiate disk access during the filesystem creation, which will take
other mutexes in other parts of the kernel, therefore making it not
possible to take a spinlock while doing this.
2023-07-02 01:04:51 +02:00
..
arch LibC: Remove i686 support 2022-12-28 11:53:41 +01:00
arpa AK: Migrate IPv6Address::to_deprecated_string() to ::to_string() 2023-06-09 19:38:14 +01:00
bits LibC+LibRegex: Move regex_defs.h from LibC to LibRegex 2023-06-27 12:40:38 +02:00
net LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
netinet LibC: Add Ipv6 address checking macros to netinet/in.h 2023-04-29 08:55:16 -06:00
sys LibC: Add lutimes(2) and futimes(2) implementations 2023-06-06 15:55:42 +02:00
alloca.h
assert.cpp Kernel: Move process coredump metadata modification to the prctl syscall 2023-03-05 16:55:08 +01:00
assert.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
byteswap.h Everywhere: Fix order of includes and #pragma once 2022-09-18 18:30:05 -07:00
CMakeLists.txt Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
complex.h LibC: Drop complex.cpp and move its definitions to complex.h 2023-06-27 12:40:38 +02:00
crt0.cpp LibC: Set up a dummy first stack frame in _start 2023-06-01 09:04:20 +02:00
crt0_shared.cpp Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
ctype.cpp LibC: Align _ctype_ to newlib's implementation 2022-06-30 12:34:16 +01:00
ctype.h LibC: Align _ctype_ to newlib's implementation 2022-06-30 12:34:16 +01:00
cxxabi.cpp Everywhere: Remove "LibC/" includes, add lint-rule against it 2023-01-07 10:01:37 -07:00
dirent.cpp Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
dirent.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
dlfcn.cpp Userland: Fix wrong signature of dladdr 2023-05-05 02:19:05 +02:00
dlfcn.h Userland: Fix wrong signature of dladdr 2023-05-05 02:19:05 +02:00
elf.h LibC+LibELF: Move ELF definitions from LibC to LibELF 2023-06-27 12:40:38 +02:00
endian.h
errno.h
errno_codes.h
fcntl.cpp LibC: Properly implement the futimens function 2023-04-10 10:21:28 +02:00
fcntl.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
fd_set.h Kernel+LibC: Move the FD_SETSIZE declaration to API/POSIX/select.h file 2023-03-01 19:36:53 -07:00
fenv.cpp Everywhere: Use ARCH(AARCH64) instead of AK_ARCH_AARCH64 2023-04-14 19:15:19 +02:00
fenv.h
float.h
fnmatch.cpp
fnmatch.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
getopt.cpp LibC: Correctly reset the getopt state on optind = 1 2023-03-12 22:09:09 +01:00
getopt.h
getsubopt.cpp Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
glob.cpp LibC: Add stubs for glob and globfree 2022-07-08 22:27:38 +00:00
glob.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
grp.cpp LibC: Ensure that struct group::gr_mem pointers are aligned 2023-05-28 05:05:09 -06:00
grp.h LibC: Implement getgrent_r 2022-11-25 23:13:16 +01:00
ifaddrs.cpp Everywhere: Remove "LibC/" includes, add lint-rule against it 2023-01-07 10:01:37 -07:00
ifaddrs.h
inttypes.cpp
inttypes.h Kernel+Userland: Remove uses of the __i386__ compiler macro 2022-12-28 11:53:41 +01:00
ioctl.cpp
langinfo.cpp
langinfo.h
libcinit.cpp
libgen.cpp
libgen.h
limits.h Kernel+Libraries: Don't include limits.h from LibELF/Validation.h 2023-01-21 10:43:59 -07:00
link.cpp
link.h Userland: Remove unecessary uses of __serenity__ macro 2022-10-10 12:23:12 +02:00
locale.cpp LibC: Allow detection of supported locales through setlocale 2022-09-29 09:02:17 -04:00
locale.h
malloc.cpp Kernel+Libraries: Move defines and types from sys/auxv.h to Kernel/API 2023-01-21 10:43:59 -07:00
mallocdefs.h
math.cpp Everywhere: Use ARCH(AARCH64) instead of AK_ARCH_AARCH64 2023-04-14 19:15:19 +02:00
math.h LibM: Move the math standard library to LibC 2022-09-16 16:09:19 +00:00
memory.h
mntent.cpp
mntent.h
net.cpp LibC: Implement if_indextoname and if_nametoindex 2023-04-14 12:29:03 +01:00
netdb.cpp LibIPC+LibC: Add and use a helper to encode/decoder container sizes 2023-01-04 20:13:54 +01:00
netdb.h LibC: Add herror() and hstrerror() 2022-05-12 15:01:32 +02:00
nl_types.h
paths.h Ports: Add lowdown 1.0.2 2023-06-07 13:44:44 +02:00
poll.cpp LibC: Mark a bunch of functions as cancellation points 2022-07-22 10:07:15 -07:00
poll.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
priority.cpp
pthread.cpp Kernel+LibC: Implement pthread_create for AArch64 2023-04-23 14:30:59 +02:00
pthread.h LibC: Make 'attributes' parameter for pthread_create const 2022-10-24 15:49:39 +02:00
pthread_cond.cpp LibC: Mark a bunch of functions as cancellation points 2022-07-22 10:07:15 -07:00
pthread_integration.cpp Kernel: Clean up sys$futex and add support for cross-process futexes 2022-07-21 16:39:22 +02:00
pthread_once.cpp Kernel: Clean up sys$futex and add support for cross-process futexes 2022-07-21 16:39:22 +02:00
pthread_tls.cpp LibC: Remove a bunch of weak pthread_* symbols 2022-07-19 20:58:51 -07:00
pty.cpp Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
pty.h
pwd.cpp Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
pwd.h LibC: Implement getpwent_r 2022-11-08 11:51:19 +01:00
qsort.cpp
regex.cpp LibC: Reduce reliance on the dlfcn internals for regex functions 2022-09-05 10:12:02 +01:00
regex.h LibC+LibRegex: Move regex_defs.h from LibC to LibRegex 2023-06-27 12:40:38 +02:00
resolv.cpp
resolv.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
scanf.cpp Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
sched.cpp Kernel+LibC: Report correct scheduling priority limits 2022-10-27 11:30:19 +01:00
sched.h LibC: Remove duplicate definition of sched_param from sched.h 2022-10-27 11:30:19 +01:00
search.cpp
search.h
semaphore.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
semaphore.h LibPthread: Implement named semaphores 2022-07-21 16:39:22 +02:00
serenity.cpp Kernel+LibC: Implement readlinkat(2) 2022-12-11 19:55:37 -07:00
serenity.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
setjmp.h Kernel+Userland: Remove uses of the __i386__ compiler macro 2022-12-28 11:53:41 +01:00
shadow.cpp Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
shadow.h
signal.cpp LibC: Ignore signals that don't have a name in getsignalbyname() 2023-06-07 00:24:09 +02:00
signal.h Kernel+LibC: Move LibC/signal_numbers.h to Kernel/API/POSIX 2023-01-21 10:43:59 -07:00
spawn.cpp Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
spawn.h
ssp.cpp LibELF: Add stack guard hardening 2022-11-29 11:04:21 +01:00
ssp_nonshared.cpp LibC: Properly implement stack protectors 2022-11-01 14:49:09 +00:00
stat.cpp LibC: Properly implement the futimens function 2023-04-10 10:21:28 +02:00
stdarg.h
stdint.h
stdio.cpp Everywhere: Remove "LibC/" includes, add lint-rule against it 2023-01-07 10:01:37 -07:00
stdio.h Kernel+LibC+LibCore: Implement renameat(2) 2022-12-11 19:55:37 -07:00
stdio_ext.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
stdlib.cpp LibC: Return EINVAL from unsetenv() if input is empty or contains "=" 2023-06-26 19:27:45 +02:00
stdlib.h LibC+LibCore: Remove serenity_setenv() 2023-02-05 16:40:51 +01:00
string.cpp LibC: Implement stpcpy 2023-06-11 08:47:15 +02:00
string.h Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
strings.cpp LibC: Add ffs{,l,ll} 2022-10-14 13:37:29 +02:00
strings.h LibC: Add ffs{,l,ll} 2022-10-14 13:37:29 +02:00
stubs.cpp Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
sysexits.h
syslog.cpp AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
syslog.h
termcap.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
termcap.h
termios.cpp LibC: Mark a bunch of functions as cancellation points 2022-07-22 10:07:15 -07:00
termios.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
time.cpp LibC: Add lutimes(2) and futimes(2) implementations 2023-06-06 15:55:42 +02:00
time.h LibC: Remove duplicate declaration of clock_t and time_t 2023-01-21 10:43:59 -07:00
times.cpp
ucontext.h LibC: Add public and independent ucontext.h header 2022-06-12 00:28:26 +01:00
ulimit.cpp
ulimit.h
unistd.cpp Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls 2023-07-02 01:04:51 +02:00
unistd.h Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls 2023-07-02 01:04:51 +02:00
utime.cpp
utime.h
utmp.h
utsname.cpp
wchar.cpp LibC: Implement wcswidth 2022-06-30 11:57:49 +02:00
wchar.h Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
wctype.cpp Everywhere: Remove unused includes of AK/Format.h 2023-01-02 20:27:20 -05:00
wctype.h LibC: Add missing sys/cdefs.h include 2022-08-23 19:07:12 +01:00
wstdio.cpp