tools/nolibc: move ioctl() to sys/ioctl.h

This is the location regular userspace expects this definition.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://lore.kernel.org/r/20250515-nolibc-sys-v1-1-74f82eea3b59@weissschuh.net
This commit is contained in:
Thomas Weißschuh 2025-05-15 21:57:47 +02:00
parent 5930393032
commit 7281be5831
4 changed files with 31 additions and 12 deletions

View file

@ -49,6 +49,7 @@ all_files := \
string.h \
sys.h \
sys/auxv.h \
sys/ioctl.h \
sys/mman.h \
sys/random.h \
sys/stat.h \

View file

@ -97,6 +97,7 @@
#include "types.h"
#include "sys.h"
#include "sys/auxv.h"
#include "sys/ioctl.h"
#include "sys/mman.h"
#include "sys/random.h"
#include "sys/stat.h"

View file

@ -517,18 +517,6 @@ uid_t getuid(void)
}
/*
* int ioctl(int fd, unsigned long cmd, ... arg);
*/
static __attribute__((unused))
long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
{
return my_syscall3(__NR_ioctl, fd, cmd, arg);
}
#define ioctl(fd, cmd, arg) __sysret(sys_ioctl(fd, cmd, (unsigned long)(arg)))
/*
* int kill(pid_t pid, int signal);
*/

View file

@ -0,0 +1,29 @@
/* SPDX-License-Identifier: LGPL-2.1 OR MIT */
/*
* Ioctl definitions for NOLIBC
* Copyright (C) 2017-2021 Willy Tarreau <w@1wt.eu>
*/
/* make sure to include all global symbols */
#include "../nolibc.h"
#ifndef _NOLIBC_SYS_IOCTL_H
#define _NOLIBC_SYS_IOCTL_H
#include "../sys.h"
#include <linux/ioctl.h>
/*
* int ioctl(int fd, unsigned long cmd, ... arg);
*/
static __attribute__((unused))
long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
{
return my_syscall3(__NR_ioctl, fd, cmd, arg);
}
#define ioctl(fd, cmd, arg) __sysret(sys_ioctl(fd, cmd, (unsigned long)(arg)))
#endif /* _NOLIBC_SYS_IOCTL_H */