[git commit nptl] mknod: convert to INLINE_SYSCALL() to sync with glibc

Mike Frysinger vapier at gentoo.org
Wed Aug 19 11:29:41 UTC 2009


commit: http://git.uclibc.org/uClibc/commit/?id=695a890bc3f2d0e8bf020dfdd489c0e34f9676c9
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/nptl

Signed-off-by: Mike Frysinger <vapier at gentoo.org>
Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
---
 libc/sysdeps/linux/common/mknod.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/libc/sysdeps/linux/common/mknod.c b/libc/sysdeps/linux/common/mknod.c
index 7428e8b..b52c8c5 100644
--- a/libc/sysdeps/linux/common/mknod.c
+++ b/libc/sysdeps/linux/common/mknod.c
@@ -9,20 +9,14 @@
 
 #include <sys/syscall.h>
 #include <sys/stat.h>
-#include <sys/sysmacros.h>
-
-#define __NR___syscall_mknod __NR_mknod
-/* kernel's fs/namei.c defines this:
- * long sys_mknod(const char __user *filename, int mode, unsigned dev),
- * so, no __kernel_mode_t and no __kernel_dev_t, please.
- */
-static __inline__ _syscall3(int, __syscall_mknod,
-		const char *, path,
-		int /* __kernel_mode_t */, mode,
-		unsigned /* __kernel_dev_t */, dev)
 
 int mknod(const char *path, mode_t mode, dev_t dev)
 {
-	return __syscall_mknod(path, mode, dev);
+	unsigned long long int k_dev;
+
+	/* We must convert the value to dev_t type used by the kernel.  */
+	k_dev = (dev) & ((1ULL << 32) - 1);
+
+	return INLINE_SYSCALL(mknod, 3, path, mode, (unsigned int)k_dev);
 }
 libc_hidden_def(mknod)
-- 
1.6.3.3



More information about the uClibc-cvs mailing list