xref: /haiku/src/system/libroot/posix/unistd/ioctl.c (revision 344ded80d400028c8f561b4b876257b94c12db4a)
1 /*
2  * Copyright 2002-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #include <unistd.h>
8 #include <syscalls.h>
9 #include <stdarg.h>
10 #include <errno.h>
11 
12 #include <errno_private.h>
13 #include <syscall_utils.h>
14 
15 
16 int
17 __ioctl(int fd, ulong cmd, void* argument, size_t size)
18 {
19 	RETURN_AND_SET_ERRNO(_kern_ioctl(fd, cmd, argument, size));
20 }
21 
22 
23 #undef ioctl
24 int
25 ioctl(int fd, ulong cmd, ...)
26 {
27 	va_list args;
28 	void* argument;
29 	size_t size;
30 	int status;
31 
32 	va_start(args, cmd);
33 	argument = va_arg(args, void*);
34 	size = va_arg(args, size_t);
35 	va_end(args);
36 
37 	status = _kern_ioctl(fd, cmd, argument, size);
38 
39 	RETURN_AND_SET_ERRNO(status);
40 }
41