LibCore: Add ioctl() syscall wrapper

This commit is contained in:
Andreas Kling 2021-11-29 23:07:33 +01:00
parent 9815ad556a
commit 90aa1abfed
2 changed files with 13 additions and 0 deletions

View file

@ -10,6 +10,7 @@
#include <LibSystem/syscall.h>
#include <fcntl.h>
#include <stdarg.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/socket.h>
#include <unistd.h>
@ -229,4 +230,15 @@ ErrorOr<String> gethostname()
return String(&hostname[0]);
}
ErrorOr<void> ioctl(int fd, unsigned request, ...)
{
va_list ap;
va_start(ap, request);
FlatPtr arg = va_arg(ap, FlatPtr);
va_end(ap);
if (::ioctl(fd, request, arg) < 0)
return Error::from_syscall("ioctl"sv, -errno);
return {};
}
}

View file

@ -36,5 +36,6 @@ ErrorOr<int> dup(int source_fd);
ErrorOr<int> dup2(int source_fd, int destination_fd);
ErrorOr<String> ptsname(int fd);
ErrorOr<String> gethostname();
ErrorOr<void> ioctl(int fd, unsigned request, ...);
}