From bd1d1172830155fa71220cea7a290a3e1deaad7f Mon Sep 17 00:00:00 2001 From: EnderIce2 Date: Wed, 12 Feb 2025 02:51:14 +0200 Subject: [PATCH] userspace/libc: add ioctl function Signed-off-by: EnderIce2 --- Userspace/libc/include/sys/ioctl.h | 25 +++++++++++++++++++++++++ Userspace/libc/src/std/sys/ioctl.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 Userspace/libc/include/sys/ioctl.h create mode 100644 Userspace/libc/src/std/sys/ioctl.c diff --git a/Userspace/libc/include/sys/ioctl.h b/Userspace/libc/include/sys/ioctl.h new file mode 100644 index 00000000..45a601bb --- /dev/null +++ b/Userspace/libc/include/sys/ioctl.h @@ -0,0 +1,25 @@ +/* + This file is part of Fennix C Library. + + Fennix C Library is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. + + Fennix C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Fennix C Library. If not, see . +*/ + +#ifndef _SYS_IOCTL_H +#define _SYS_IOCTL_H + +#include + +int ioctl(int fd, unsigned long op, ...); + +#endif // !_SYS_IOCTL_H diff --git a/Userspace/libc/src/std/sys/ioctl.c b/Userspace/libc/src/std/sys/ioctl.c new file mode 100644 index 00000000..c6c949a2 --- /dev/null +++ b/Userspace/libc/src/std/sys/ioctl.c @@ -0,0 +1,30 @@ +/* + This file is part of Fennix C Library. + + Fennix C Library is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. + + Fennix C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Fennix C Library. If not, see . +*/ + +#include +#include +#include +#include + +export int ioctl(int fd, unsigned long op, ...) +{ + va_list args; + va_start(args, op); + int ret = call_ioctl(fd, op, args); + va_end(args); + return ret; +}