Deleted Added
sdiff udiff text old ( 99670 ) new ( 99687 )
full compact
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 * $FreeBSD: head/sys/compat/linux/linux_file.c 99687 2002-07-09 19:25:43Z robert $
29 */
30
31#include "opt_compat.h"
32
33#include <sys/param.h>
34#include <sys/systm.h>
35#include <sys/conf.h>
36#include <sys/dirent.h>

--- 994 unchanged lines hidden (view full) ---

1031
1032#ifdef DEBUG
1033 if (ldebug(fcntl))
1034 printf(ARGS(fcntl, "%d, %08x, *"), args->fd, args->cmd);
1035#endif
1036
1037 switch (args->cmd) {
1038 case LINUX_F_GETLK:
1039 error = copyin((caddr_t)args->arg, &linux_flock,
1040 sizeof(linux_flock));
1041 if (error)
1042 return (error);
1043 linux_to_bsd_flock(&linux_flock, bsd_flock);
1044 fcntl_args.fd = args->fd;
1045 fcntl_args.cmd = F_GETLK;
1046 fcntl_args.arg = (long)bsd_flock;
1047 error = fcntl(td, &fcntl_args);
1048 if (error)
1049 return (error);
1050 bsd_to_linux_flock(bsd_flock, &linux_flock);
1051 return (copyout(&linux_flock, (caddr_t)args->arg,
1052 sizeof(linux_flock)));
1053
1054 case LINUX_F_SETLK:
1055 error = copyin((caddr_t)args->arg, &linux_flock,
1056 sizeof(linux_flock));
1057 if (error)
1058 return (error);
1059 linux_to_bsd_flock(&linux_flock, bsd_flock);
1060 fcntl_args.fd = args->fd;
1061 fcntl_args.cmd = F_SETLK;
1062 fcntl_args.arg = (long)bsd_flock;
1063 return (fcntl(td, &fcntl_args));
1064
1065 case LINUX_F_SETLKW:
1066 error = copyin((caddr_t)args->arg, &linux_flock,
1067 sizeof(linux_flock));
1068 if (error)
1069 return (error);
1070 linux_to_bsd_flock(&linux_flock, bsd_flock);
1071 fcntl_args.fd = args->fd;
1072 fcntl_args.cmd = F_SETLKW;
1073 fcntl_args.arg = (long)bsd_flock;

--- 21 unchanged lines hidden (view full) ---

1095
1096#ifdef DEBUG
1097 if (ldebug(fcntl64))
1098 printf(ARGS(fcntl64, "%d, %08x, *"), args->fd, args->cmd);
1099#endif
1100
1101 switch (args->cmd) {
1102 case LINUX_F_GETLK:
1103 case LINUX_F_GETLK64:
1104 error = copyin((caddr_t)args->arg, &linux_flock,
1105 sizeof(linux_flock));
1106 if (error)
1107 return (error);
1108 linux_to_bsd_flock64(&linux_flock, bsd_flock);
1109 fcntl_args.fd = args->fd;
1110 fcntl_args.cmd = F_GETLK;
1111 fcntl_args.arg = (long)bsd_flock;
1112 error = fcntl(td, &fcntl_args);
1113 if (error)
1114 return (error);
1115 bsd_to_linux_flock64(bsd_flock, &linux_flock);
1116 return (copyout(&linux_flock, (caddr_t)args->arg,
1117 sizeof(linux_flock)));
1118
1119 case LINUX_F_SETLK:
1120 case LINUX_F_SETLK64:
1121 error = copyin((caddr_t)args->arg, &linux_flock,
1122 sizeof(linux_flock));
1123 if (error)
1124 return (error);
1125 linux_to_bsd_flock64(&linux_flock, bsd_flock);
1126 fcntl_args.fd = args->fd;
1127 fcntl_args.cmd = F_SETLK;
1128 fcntl_args.arg = (long)bsd_flock;
1129 return (fcntl(td, &fcntl_args));
1130
1131 case LINUX_F_SETLKW:
1132 case LINUX_F_SETLKW64:
1133 error = copyin((caddr_t)args->arg, &linux_flock,
1134 sizeof(linux_flock));
1135 if (error)
1136 return (error);
1137 linux_to_bsd_flock64(&linux_flock, bsd_flock);
1138 fcntl_args.fd = args->fd;
1139 fcntl_args.cmd = F_SETLKW;
1140 fcntl_args.arg = (long)bsd_flock;

--- 48 unchanged lines hidden ---