From ca3333dd4a3bef7b615d5df104c525f8cac51b26 Mon Sep 17 00:00:00 2001 From: Dmitry Chagin Date: Fri, 28 Apr 2023 11:55:02 +0300 Subject: [PATCH] linux(4): Use Linux dev_t type for mknod syscalls dev argument As of version 2.6.0 of the Linux kernel, dev_t is a 32-bit unsigned integer on all platforms. Prior the 2.6 kernel dev_t type was an unsigned short. However, since the firs commit of the Linuxulator, mknod syscall get int dev argument. Also, there is some confusion here, while the kernel declares a dev_t type as a 32-bit sized, the user-space dev_t type can be size of 64 bits, e.g., in the Glibc library. To avoid confusion and to help porting of the Linuxulator to other platforms use explicit l_dev_t for dev argument of mknod syscalls. --- sys/amd64/linux/syscalls.master | 4 ++-- sys/amd64/linux32/syscalls.master | 2 +- sys/arm64/linux/syscalls.master | 2 +- sys/i386/linux/syscalls.master | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/amd64/linux/syscalls.master b/sys/amd64/linux/syscalls.master index a2ac67c2d126..420c029fa892 100644 --- a/sys/amd64/linux/syscalls.master +++ b/sys/amd64/linux/syscalls.master @@ -874,7 +874,7 @@ int linux_mknod( char *path, l_mode_t mode, - l_uint dev + l_dev_t dev ); } 134 AUE_USELIB UNIMPL uselib @@ -1503,7 +1503,7 @@ l_int dfd, const char *filename, l_mode_t mode, - l_uint dev + l_dev_t dev ); } 260 AUE_FCHOWNAT STD { diff --git a/sys/amd64/linux32/syscalls.master b/sys/amd64/linux32/syscalls.master index bd145c8ee7e1..777ffd865b8b 100644 --- a/sys/amd64/linux32/syscalls.master +++ b/sys/amd64/linux32/syscalls.master @@ -1616,7 +1616,7 @@ l_int dfd, const char *filename, l_int mode, - l_uint dev + l_dev_t dev ); } 298 AUE_FCHOWNAT STD { diff --git a/sys/arm64/linux/syscalls.master b/sys/arm64/linux/syscalls.master index f4c2acca435d..2a564f0e3c5d 100644 --- a/sys/arm64/linux/syscalls.master +++ b/sys/arm64/linux/syscalls.master @@ -204,7 +204,7 @@ l_int dfd, const char *filename, l_int mode, - l_uint dev + l_dev_t dev ); } 34 AUE_MKDIRAT STD { diff --git a/sys/i386/linux/syscalls.master b/sys/i386/linux/syscalls.master index c889cc4affe4..9175bcd45dcf 100644 --- a/sys/i386/linux/syscalls.master +++ b/sys/i386/linux/syscalls.master @@ -1633,7 +1633,7 @@ l_int dfd, const char *filename, l_int mode, - l_uint dev + l_dev_t dev ); } 298 AUE_FCHOWNAT STD {