ladybird/Libraries/LibC
Andreas Kling 24c736b0e7 Kernel: Use the Syscall string and buffer types more
While I was updating syscalls to stop passing null-terminated strings,
I added some helpful struct types:

    - StringArgument { const char*; size_t; }
    - ImmutableBuffer<Data, Size> { const Data*; Size; }
    - MutableBuffer<Data, Size> { Data*; Size; }

The Process class has some convenience functions for validating and
optionally extracting the contents from these structs:

    - get_syscall_path_argument(StringArgument)
    - validate_and_copy_string_from_user(StringArgument)
    - validate(ImmutableBuffer)
    - validate(MutableBuffer)

There's still so much code around this and I'm wondering if we should
generate most of it instead. Possible nice little project.
2020-01-11 12:47:47 +01:00
..
arpa LibC: fix arpa/inet.h guards 2019-11-16 16:27:48 +01:00
bits LibC: Minor changes to make nasm work 2019-11-09 20:52:34 +01:00
net Kernel: Add SIOCGIFHWADDR ioctl to get the MAC address of an adapter 2019-10-02 18:20:11 +02:00
netinet LibC: move in_addr and sockaddr_in to netinet/in.h 2020-01-02 04:09:56 +01:00
sys Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
alloca.h
assert.cpp
assert.h
crt0.cpp LibC: Move __cxa_finalize and __cxa_atexit code to their own file 2020-01-01 17:48:41 +01:00
crti.S
crtn.S
ctype.cpp
ctype.h
cxxabi.cpp LibC: Move __cxa_finalize and __cxa_atexit code to their own file 2020-01-01 17:48:41 +01:00
dirent.cpp LibC: Add readdir_r for re-entrant directory reading (#648) 2019-10-12 22:35:23 +02:00
dirent.h LibC: Added some missing directory type constants 2019-11-16 12:50:50 +01:00
dlfcn.cpp LibELF+LibC: Split ELFDynamicObject into a Loader + Object 2020-01-04 10:39:04 +01:00
dlfcn.h LibC: Misc additions 2019-10-03 08:18:05 +02:00
endian.h LibC: Oopsie, add the missing semicolons to __bswap32() and __bswap64() 2019-11-17 15:37:46 +01:00
errno.h LibC: sys_errlist should be const char* const 2019-10-17 09:18:01 +02:00
errno_numbers.h LibC: Add some missing errno codes 2019-09-12 18:26:19 +02:00
fcntl.cpp Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
fcntl.h Kernel: Make watch_file() syscall take path length as a size_t 2020-01-06 11:15:49 +01:00
fd_set.h
float.h
getopt.cpp LibC: Ensure getopt error messages end with a newline 2019-09-17 21:56:42 +02:00
getopt.h LibC: Borrow a slightly more functional getopt() 2019-09-06 20:03:16 +02:00
grp.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
grp.h
iconv.h LibC: iconv.h needs stddef.h for size_t 2019-11-10 13:07:51 +01:00
inttypes.h LibC: Add PRIXPTR definition to inttypes.h 2019-12-09 16:33:14 +01:00
ioctl.cpp
libgen.cpp LibC: Implement dirname() and basename() 2019-10-03 08:23:54 +02:00
libgen.h LibC: Implement dirname() and basename() 2019-10-03 08:23:54 +02:00
limits.h Build: add support for building on OpenBSD 2020-01-02 21:03:53 +01:00
locale.cpp LibC: Added additional fields to lconv struct 2019-11-16 12:50:50 +01:00
locale.h LibC: Added additional fields to lconv struct 2019-11-16 12:50:50 +01:00
Makefile LibELF+LibC: Split ELFDynamicObject into a Loader + Object 2020-01-04 10:39:04 +01:00
malloc.cpp LibC: Prevent assertions in malloc/free at exit time 2019-12-22 10:47:39 +01:00
mallocdefs.h
memory.h
mman.cpp Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
mman.h LibC: Add MAP_FILE for mmap() 2020-01-07 15:35:41 +01:00
mntent.cpp
mntent.h
netdb.cpp LibC: Remove useless retry loop in connect_to_lookup_server() 2020-01-10 13:52:20 +01:00
netdb.h
poll.cpp
poll.h
pwd.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
pwd.h
qsort.cpp
scanf.cpp LibC: Some build fixes for strange platforms 2019-09-29 21:02:13 +02:00
sched.cpp
sched.h
serenity.cpp LibC+Userland: Add a proper syscall wrapper for purge() 2020-01-02 13:37:02 +01:00
serenity.h Lib: Remove Stopwatch class 2020-01-03 09:10:55 +01:00
setjmp.h LibC: jmp_buf and sigjmp_buf should be distinct types 2019-11-17 21:01:26 +01:00
setjmp.S
signal.cpp
signal.h LibC: Added missing signal flags 2019-11-16 12:50:50 +01:00
signal_numbers.h
stat.cpp Kernel: Pass path+length to mkdir(), rmdir() and chmod() 2020-01-06 11:15:49 +01:00
stdarg.h
stdbool.h
stddef.h LibC: Tolerate stddef.h being included from the kernel 2019-11-29 14:53:35 +01:00
stdint.h Libc: make library internal includes come from private include namespace 2019-10-11 12:17:05 +02:00
stdio.cpp Kernel: Pass a parameter struct to rename() 2020-01-11 10:36:54 +01:00
stdio.h LibC: implement fgetpos and fsetpos 2019-12-27 23:09:08 +01:00
stdlib.cpp Kernel: Use the Syscall string and buffer types more 2020-01-11 12:47:47 +01:00
stdlib.h LibC: Oops x2, we can't use "bool" in stdlib.h either 2019-12-26 10:30:34 +01:00
string.cpp LibC: Remove some functions we had two of 2019-12-27 16:55:10 +01:00
string.h LibC: Add strtok_r() and make strtok() a wrapper around it 2019-11-10 21:19:08 +01:00
strings.cpp
strings.h
syslog.cpp LibC: syslog and lots of compat stuff for it 2019-10-15 09:52:55 +02:00
syslog.h LibC: syslog and lots of compat stuff for it 2019-10-15 09:52:55 +02:00
termcap.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
termcap.h
termios.cpp
termios.h
time.cpp Kernel+LibC: Publish a "kernel info page" and use it for gettimeofday() 2019-12-15 21:29:26 +01:00
time.h LibC, LibM: Add functions needed to compile python3 2019-11-11 22:04:16 +01:00
times.cpp
ulimit.cpp LibC: Some build fixes for strange platforms 2019-09-29 21:02:13 +02:00
ulimit.h
unistd.cpp Kernel: Pass a parameter struct to mount() 2020-01-11 10:56:02 +01:00
unistd.h Kernel: Pass a parameter struct to mount() 2020-01-11 10:56:02 +01:00
utime.cpp Kernel: Make utime() take path+length, remove SmapDisabler 2020-01-06 12:23:30 +01:00
utime.h
utmp.h
utsname.cpp
wchar.cpp LibC, LibM: Add functions needed to compile python3 2019-11-11 22:04:16 +01:00
wchar.h LibC, LibM: Add functions needed to compile python3 2019-11-11 22:04:16 +01:00