Brian Gianforcaro
c724955d54
LibC: Add support for posix_madvise(..)
...
Add the `posix_madvise(..)` LibC implementation that just forwards
to the normal `madvise(..)` implementation.
Also define a few POSIX_MADV_DONTNEED and POSIX_MADV_NORMAL as they
are part of the POSIX API for `posix_madvise(..)`.
This is needed by the `fio` port.
2021-12-22 13:28:13 -08:00
Idan Horowitz
7a662c2638
Kernel: Add the si_errno and si_band siginfo_t members
...
These 2 members are required by POSIX and are also used by some ports.
Zero is a valid value for both of these, so no further work to support
them is required.
2021-12-22 22:53:56 +02:00
Idan Horowitz
7b24fc6fb8
Kernel+LibC: Stub out getifaddrs() and freeifaddrs()
...
These are required for some ports.
2021-12-22 00:02:36 -08:00
Idan Horowitz
468ae105d8
Kernel+LibC: Stub out if_nameindex() and if_freenameindex()
...
These should allow users to receive the names of network interfaces in
the system, but for now these are only stubs required to compile some
ports.
2021-12-22 00:02:36 -08:00
Idan Horowitz
3a1ff175e8
Kernel: Define and return the ARPHRD_* device type in SIOCGIFHWADDR
...
The sa_family field in SIOCGIFHWADDR specifies the underlying network
interface's device type, this is hardcoded to generic "Ethernet" right
now, as we don't have a nice way to query it.
2021-12-22 00:02:36 -08:00
Martin Bříza
86b249f02f
Kernel: Implement sysconf(_SC_SYMLOOP_MAX)
...
Not much to say here, this is an implementation of this call that
accesses the actual limit constant that's used by the VirtualFileSystem
class.
As a side note, this is required for my eventual Qt port.
2021-12-21 12:54:11 -08:00
sin-ack
69ef211925
Kernel+LibC: Move errno definitions to Kernel/API/POSIX
...
This fixes at least half of our LibC includes in the kernel. The source
of truth for errno codes and their description strings now lives in
Kernel/API/POSIX/errno.h as an enumeration, which LibC includes.
2021-12-16 22:21:35 +03:30
Ben Wiederhake
0f8483f09c
Kernel: Implement new ptrace function PT_PEEKBUF
...
This enables the tracer to copy large amounts of data in a much saner
way.
2021-12-05 22:59:09 +01:00
Idan Horowitz
b2464cf4c0
Kernel: Define PT_WRITE_I and PT_WRITE_D
...
These are aliases for PT_POKE that are used in some *BSDs.
2021-12-05 12:53:29 +01:00
Idan Horowitz
265764ff2f
Kernel: Add support for the POLLWRBAND poll event
2021-12-05 12:53:29 +01:00
Idan Horowitz
f2fef049e1
Kernel: Define the POLLRDNORM alias for POLLIN
...
This flag is equivalent to POLLIN.
2021-12-05 12:53:29 +01:00
Idan Horowitz
05aa764402
Kernel: Define the POLLWRNORM alias for POLLOUT
...
This is defined by posix to be equivalent to POLLOUT
2021-12-05 12:53:29 +01:00
Idan Horowitz
8074157c10
Kernel: Add the IPPROTO_{IGMP, IPIP, RAW} protocol macros
...
These are not implemented currently, but are required for some ports to
compile.
2021-12-05 12:53:29 +01:00
Idan Horowitz
2860637ff3
Kernel: Add the IP_{BLOCK_SOURCE, UNBLOCK_SOURCE, OPTIONS} macros
...
These are not implemented currently, but are required for some ports to
compile.
2021-12-05 12:53:29 +01:00
Idan Horowitz
d18b3eb53d
Kernel: Add the SO_OOBINLINE SOL_SOCKET-level option macro
...
This is not actually implemented, as we don't have any support for
out-of-band right now, but this is required for some ports to compile.
2021-12-05 12:53:29 +01:00
Idan Horowitz
613ade9dec
Kernel: Implement the SO_DONTROUTE SOL_SOCKET-level option
2021-12-05 12:53:29 +01:00
Idan Horowitz
641498954f
Kernel: Implement the SO_ACCEPTCONN SOL_SOCKET-level option
2021-12-05 12:53:29 +01:00
Idan Horowitz
a0e2fedc20
Kernel: Stub out the SO_DEBUG SOL_SOCKET-level option
2021-12-05 12:53:29 +01:00
Idan Horowitz
e521ffd156
Kernel: Add support for the MSG_WAITALL sys$recvmsg flag
2021-12-05 12:53:29 +01:00
Idan Horowitz
5514d60d8d
Kernel: Add support for the MSG_DONTROUTE sys$sendmsg flag
2021-12-05 12:53:29 +01:00
Idan Horowitz
f415218afe
Kernel+LibC: Implement sigaltstack()
...
This is required for compiling wine for serenity
2021-12-01 21:44:11 +02:00
Idan Horowitz
5f95a1a7b7
LibC: Define the MADV_DONTNEED madvise advice macro
...
This isn't actually implemented at the moment, but it is required for
wine to compile
2021-12-01 21:44:11 +02:00
Idan Horowitz
fc13d0782f
LibC: Make the madvise advice field a value instead of a bitfield
...
The advices are almost always exclusive of one another, and while POSIX
does not define madvise, most other unix-like and *BSD systems also only
accept a singular value per call.
2021-12-01 21:44:11 +02:00
Idan Horowitz
48f92f6482
LibC: Add the SIGFPE si_code macros
2021-12-01 21:44:11 +02:00
Andreas Kling
32aa37d5dc
Kernel+LibC: Add msync() system call
...
This allows userspace to trigger a full (FIXME) flush of a shared file
mapping to disk. We iterate over all the mapped pages in the VMObject
and write them out to the underlying inode, one by one. This is rather
naive, and there's lots of room for improvement.
Note that shared file mappings are currently not possible since mmap()
returns ENOTSUP for PROT_WRITE+MAP_SHARED. That restriction will be
removed in a subsequent commit. :^)
2021-11-17 19:34:15 +01:00
Idan Horowitz
a8bd78e634
LibC: Include sys/uio.h in sys/socket.h for struct iovec
2021-10-28 11:24:36 +02:00
Idan Horowitz
2882a90dec
Kernel: Add the IFF_* SIOCGIFFLAGS flag macros
2021-10-28 11:24:36 +02:00
Idan Horowitz
adc9939a7b
Kernel+LibC: Add support for the IPv4 TOS field via the IP_TOS sockopt
2021-10-28 11:24:36 +02:00
Idan Horowitz
c45b1e1983
LibC: Add IPPROTO_ICMPV6 macro
2021-10-28 11:24:36 +02:00
Jelle Raaijmakers
9a6283c524
Kernel: Define PT_READ_I and PT_READ_D
...
Looking at how these two constants are commonly used in other systems,
we should be able to mimic their behavior using our PT_PEEK constant.
For example, see:
https://man.netbsd.org/NetBSD-6.0.1/i386/ptrace.2
2021-09-23 18:51:21 +02:00
Linus Groh
f646d49ac1
Kernel: Add _SC_HOST_NAME_MAX
2021-09-11 00:28:39 +02:00
Rodrigo Tobar
a0ac5c5fc2
Kernel: Define INADDR_BROADCAST constant
...
This is required by some programs, notably python's socket module, which
fails to compile without this definition.
2021-09-09 11:33:45 +02:00
Andreas Kling
4226b662cd
Kernel+Userland: Remove global futexes
...
We only ever use private futexes, so it doesn't make sense to carry
around all the complexity required for global (cross-process) futexes.
2021-08-17 01:21:47 +02:00
Itamar
f3aa87c436
Kernel: Make makedev()/minor()/major() static
...
This was originally done in 7274037
and for some reason reverted in
740140a
.
This avoids "multiple definitions" link errors and fixes the libuv port.
2021-08-16 23:26:52 +02:00
Kenneth Myhra
cb10c62327
LibC: Add SOCK_RDM and SOCK_SEQPACKET to socket.h
2021-08-14 22:32:00 +01:00
Kenneth Myhra
3875e8bd4b
LibC: Add IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP to netin/in.h
2021-08-14 22:32:00 +01:00
Andreas Kling
e1273a8ff7
Kernel+LibC: Share definitions for sys/statvfs.h
2021-08-14 19:58:11 +02:00
Andreas Kling
dfd78b75d8
Kernel+LibC: Share definitions for sched.h
2021-08-14 19:58:11 +02:00
Andreas Kling
c9a5d83ccc
Kernel+LibC: Share definitions for sys/uio.h
2021-08-14 19:58:11 +02:00
Andreas Kling
37e98a55b7
Kernel+LibC: Share definitions for sys/ptrace.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6b6eca0631
Kernel+LibC: Share definitions for sys/time.h
2021-08-14 19:58:11 +02:00
Andreas Kling
35b52338bb
Kernel+LibC: Share definitions for sys/times.h
2021-08-14 19:58:11 +02:00
Andreas Kling
808ce594db
Kernel+LibC: Share definitions for stdio.h
2021-08-14 19:58:11 +02:00
Andreas Kling
9c2212a60a
Kernel+LibC: Share definitions for unistd.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d33b43276c
Kernel+LibC: Share definitions for poll.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d794ed1de7
Kernel+LibC: Share definitions for utsname.h
2021-08-14 19:58:11 +02:00
Andreas Kling
c65a735d71
Kernel+LibC: Share definitions for dirent.h
2021-08-14 19:58:11 +02:00
Andreas Kling
77c2c0f620
Kernel+LibC: Share definitions for serenity.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6f78377864
Kernel+LibC: Share definitions for sys/wait.h
2021-08-14 19:58:11 +02:00
Andreas Kling
661bd992b0
Kernel+LibC: Share definitions for net/{if,if_arp,route}.h
2021-08-14 19:58:11 +02:00