linux_file.c (37950) | linux_file.c (39978) |
---|---|
1/*- 2 * Copyright (c) 1994-1995 S�ren Schmidt 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * | 1/*- 2 * Copyright (c) 1994-1995 S�ren Schmidt 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * |
28 * $Id: linux_file.c,v 1.20 1998/03/29 07:59:09 peter Exp $ | 28 * $Id: linux_file.c,v 1.21 1998/07/29 16:43:00 bde Exp $ |
29 */ 30 31#include "opt_compat.h" 32 33#include <sys/param.h> 34#include <sys/systm.h> 35#include <sys/sysproto.h> 36#include <sys/fcntl.h> --- 198 unchanged lines hidden (view full) --- 235 result = p->p_retval[0]; 236 p->p_retval[0] = 0; 237 if (result & O_RDONLY) p->p_retval[0] |= LINUX_O_RDONLY; 238 if (result & O_WRONLY) p->p_retval[0] |= LINUX_O_WRONLY; 239 if (result & O_RDWR) p->p_retval[0] |= LINUX_O_RDWR; 240 if (result & O_NDELAY) p->p_retval[0] |= LINUX_O_NONBLOCK; 241 if (result & O_APPEND) p->p_retval[0] |= LINUX_O_APPEND; 242 if (result & O_FSYNC) p->p_retval[0] |= LINUX_O_SYNC; | 29 */ 30 31#include "opt_compat.h" 32 33#include <sys/param.h> 34#include <sys/systm.h> 35#include <sys/sysproto.h> 36#include <sys/fcntl.h> --- 198 unchanged lines hidden (view full) --- 235 result = p->p_retval[0]; 236 p->p_retval[0] = 0; 237 if (result & O_RDONLY) p->p_retval[0] |= LINUX_O_RDONLY; 238 if (result & O_WRONLY) p->p_retval[0] |= LINUX_O_WRONLY; 239 if (result & O_RDWR) p->p_retval[0] |= LINUX_O_RDWR; 240 if (result & O_NDELAY) p->p_retval[0] |= LINUX_O_NONBLOCK; 241 if (result & O_APPEND) p->p_retval[0] |= LINUX_O_APPEND; 242 if (result & O_FSYNC) p->p_retval[0] |= LINUX_O_SYNC; |
243 if (result & O_ASYNC) p->p_retval[0] |= LINUX_FASYNC; |
|
243 return error; 244 245 case LINUX_F_SETFL: 246 if (args->arg & LINUX_O_NDELAY) fcntl_args.arg |= O_NONBLOCK; 247 if (args->arg & LINUX_O_APPEND) fcntl_args.arg |= O_APPEND; 248 if (args->arg & LINUX_O_SYNC) fcntl_args.arg |= O_FSYNC; | 244 return error; 245 246 case LINUX_F_SETFL: 247 if (args->arg & LINUX_O_NDELAY) fcntl_args.arg |= O_NONBLOCK; 248 if (args->arg & LINUX_O_APPEND) fcntl_args.arg |= O_APPEND; 249 if (args->arg & LINUX_O_SYNC) fcntl_args.arg |= O_FSYNC; |
250 if (args->arg & LINUX_FASYNC) fcntl_args.arg |= O_ASYNC; |
|
249 fcntl_args.cmd = F_SETFL; 250 return fcntl(p, &fcntl_args); 251 252 case LINUX_F_GETLK: 253 if ((error = copyin((caddr_t)args->arg, (caddr_t)&linux_flock, 254 sizeof(struct linux_flock)))) 255 return error; 256 linux_to_bsd_flock(&linux_flock, bsd_flock); --- 32 unchanged lines hidden (view full) --- 289 * does not exist. 290 */ 291 fdp = p->p_fd; 292 if ((u_int)args->fd >= fdp->fd_nfiles || 293 (fp = fdp->fd_ofiles[args->fd]) == NULL) 294 return EBADF; 295 if (fp->f_type == DTYPE_SOCKET) { 296 fcntl_args.cmd = args->cmd == LINUX_F_SETOWN ? F_SETOWN : F_GETOWN; | 251 fcntl_args.cmd = F_SETFL; 252 return fcntl(p, &fcntl_args); 253 254 case LINUX_F_GETLK: 255 if ((error = copyin((caddr_t)args->arg, (caddr_t)&linux_flock, 256 sizeof(struct linux_flock)))) 257 return error; 258 linux_to_bsd_flock(&linux_flock, bsd_flock); --- 32 unchanged lines hidden (view full) --- 291 * does not exist. 292 */ 293 fdp = p->p_fd; 294 if ((u_int)args->fd >= fdp->fd_nfiles || 295 (fp = fdp->fd_ofiles[args->fd]) == NULL) 296 return EBADF; 297 if (fp->f_type == DTYPE_SOCKET) { 298 fcntl_args.cmd = args->cmd == LINUX_F_SETOWN ? F_SETOWN : F_GETOWN; |
299 fcntl_args.arg = args->arg; |
|
297 return fcntl(p, &fcntl_args); 298 } 299 vp = (struct vnode *)fp->f_data; 300 if (vp->v_type != VCHR) 301 return EINVAL; 302 if ((error = VOP_GETATTR(vp, &va, p->p_ucred, p))) 303 return error; 304 --- 523 unchanged lines hidden --- | 300 return fcntl(p, &fcntl_args); 301 } 302 vp = (struct vnode *)fp->f_data; 303 if (vp->v_type != VCHR) 304 return EINVAL; 305 if ((error = VOP_GETATTR(vp, &va, p->p_ucred, p))) 306 return error; 307 --- 523 unchanged lines hidden --- |