diff options
| author | pooka <pooka@NetBSD.org> | 2010-08-30 10:08:39 +0000 |
|---|---|---|
| committer | pooka <pooka@NetBSD.org> | 2010-08-30 10:08:39 +0000 |
| commit | f0fb0d2ca19a90cbccec4b0ec5e1c8f24c2802f4 (patch) | |
| tree | 9854a1951521a62f2aaf2c58d6ef9ccd26dd5066 /sys | |
| parent | e731bd97ef163b349d4dd6c5a5ee487c54d63b64 (diff) | |
do 5.0 compat for fstat
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/rump/include/rump/rump_syscalls_compat.h | 4 | ||||
| -rw-r--r-- | sys/rump/librump/rumpvfs/compat.c | 24 |
2 files changed, 25 insertions, 3 deletions
diff --git a/sys/rump/include/rump/rump_syscalls_compat.h b/sys/rump/include/rump/rump_syscalls_compat.h index b511bd400c3..f15d1715adc 100644 --- a/sys/rump/include/rump/rump_syscalls_compat.h +++ b/sys/rump/include/rump/rump_syscalls_compat.h @@ -1,4 +1,4 @@ -/* $NetBSD: rump_syscalls_compat.h,v 1.3 2010/07/26 11:52:25 pooka Exp $ */ +/* $NetBSD: rump_syscalls_compat.h,v 1.4 2010/08/30 10:08:39 pooka Exp $ */ /*- * Copyright (c) 2010 Antti Kantee. All Rights Reserved. @@ -42,6 +42,7 @@ #if !__NetBSD_Prereq__(5,99,7) #define rump_sys_stat(a,b) rump_sys_nb5_stat(a,b) #define rump_sys_lstat(a,b) rump_sys_nb5_lstat(a,b) +#define rump_sys_fstat(a,b) rump_sys_nb5_fstat(a,b) #define rump_sys_pollts(a,b,c,d) rump_sys_nb5_pollts(a,b,c,d) #define rump_sys_select(a,b,c,d,e) rump_sys_nb5_select(a,b,c,d,e) #endif /* __NetBSD_Prereq */ @@ -57,6 +58,7 @@ struct pollfd; struct timespec; int rump_sys_nb5_stat(const char *, struct stat *); int rump_sys_nb5_lstat(const char *, struct stat *); +int rump_sys_nb5_fstat(int, struct stat *); int rump_sys_nb5_pollts(struct pollfd *, size_t, const struct timespec *, const void *); int rump_sys_nb5_select(int, fd_set *, fd_set *, fd_set *, struct timeval *); diff --git a/sys/rump/librump/rumpvfs/compat.c b/sys/rump/librump/rumpvfs/compat.c index 266a64bb4d8..cedb812f04d 100644 --- a/sys/rump/librump/rumpvfs/compat.c +++ b/sys/rump/librump/rumpvfs/compat.c @@ -1,4 +1,4 @@ -/* $NetBSD: compat.c,v 1.6 2010/07/19 15:33:16 pooka Exp $ */ +/* $NetBSD: compat.c,v 1.7 2010/08/30 10:08:39 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: compat.c,v 1.6 2010/07/19 15:33:16 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: compat.c,v 1.7 2010/08/30 10:08:39 pooka Exp $"); #include <sys/param.h> #include <sys/kmem.h> @@ -120,6 +120,26 @@ rump_sys_nb5_lstat(const char *path, struct stat *sb) return retval; } +int +rump_sys_nb5_fstat(int fd, struct stat *sb) +{ + struct compat_50_sys___fstat30_args args; + register_t retval = 0; + int error = 0; + + SPARG(&args, fd) = fd; + SPARG(&args, sb) = (struct stat30 *)sb; + + rump_schedule(); + error = compat_50_sys___fstat30(curlwp, &args, &retval); + if (error) { + retval = -1; + rumpuser_seterrno(error); + } + rump_unschedule(); + return retval; +} + /* * XXX: types. But I don't want to start playing compat games in * the userspace namespace too |
