diff -urN 2.4.0-test7-pre5/arch/ppc/kernel/misc.S lfsx/arch/ppc/kernel/misc.S
--- 2.4.0-test7-pre5/arch/ppc/kernel/misc.S	Tue Aug 22 01:23:41 2000
+++ lfsx/arch/ppc/kernel/misc.S	Tue Aug 22 17:45:39 2000
@@ -1100,7 +1100,7 @@
 	.long sys_swapon
 	.long sys_reboot
 	.long old_readdir
-	.long sys_mmap		/* 90 */
+	.long old_mmap		/* 90 */
 	.long sys_munmap
 	.long sys_truncate
 	.long sys_ftruncate
@@ -1206,17 +1206,18 @@
 	.long sys_vfork
 	.long sys_getrlimit	/* 190 */
 	.long sys_ni_syscall		/* 191 */	/* Unused */
-	.long sys_ni_syscall		/* 192 - reserved - mmap2 */
-	.long sys_ni_syscall		/* 193 - reserved - truncate64 */
-	.long sys_ni_syscall		/* 194 - reserved - ftruncate64 */
-	.long sys_ni_syscall		/* 195 - reserved - stat64 */
-	.long sys_ni_syscall		/* 196 - reserved - lstat64 */
-	.long sys_ni_syscall		/* 197 - reserved - fstat64 */
+	.long sys_mmap2			/* 192 */
+	.long sys_truncate64		/* 193 */
+	.long sys_ftruncate64		/* 194 */
+	.long sys_stat64		/* 195 */
+	.long sys_lstat64		/* 196 */
+	.long sys_fstat64		/* 197 */
 	.long sys_pciconfig_read	/* 198 */
 	.long sys_pciconfig_write 	/* 199 */
 	.long sys_pciconfig_iobase 	/* 200 */
 	.long sys_ni_syscall		/* 201 - reserved - MacOnLinux - new */
 	.long sys_getdents64		/* 202 */
-	.rept NR_syscalls-201
+	.long sys_fcntl64		/* 203 */
+	.rept NR_syscalls-203
 		.long sys_ni_syscall
 	.endr
diff -urN 2.4.0-test7-pre5/arch/ppc/kernel/syscalls.c lfsx/arch/ppc/kernel/syscalls.c
--- 2.4.0-test7-pre5/arch/ppc/kernel/syscalls.c	Fri Jul 28 07:24:09 2000
+++ lfsx/arch/ppc/kernel/syscalls.c	Tue Aug 22 17:43:10 2000
@@ -185,9 +185,11 @@
 	return error;
 }
 
-asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len,
-				  unsigned long prot, unsigned long flags,
-				  unsigned long fd, off_t offset)
+/* common code for old and new mmaps */
+static inline long do_mmap2(
+	unsigned long addr, unsigned long len,
+	unsigned long prot, unsigned long flags,
+	unsigned long fd, unsigned long pgoff)
 {
 	struct file * file = NULL;
 	int ret = -EBADF;
@@ -199,11 +201,34 @@
 	
 	flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
 	down(&current->mm->mmap_sem);
-	ret = do_mmap(file, addr, len, prot, flags, offset);
+	ret = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
 	up(&current->mm->mmap_sem);
 	if (file)
 		fput(file);
 out:
+	return ret;
+}
+
+asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
+	unsigned long prot, unsigned long flags,
+	unsigned long fd, unsigned long pgoff)
+{
+	return do_mmap2(addr, len, prot, flags, fd, pgoff);
+}
+
+asmlinkage unsigned long old_mmap(unsigned long addr, size_t len,
+				  unsigned long prot, unsigned long flags,
+				  unsigned long fd, off_t offset)
+{
+	int ret;
+
+	ret = -EINVAL;
+	if (offset & ~PAGE_MASK)
+		goto out;
+
+	ret = do_mmap2(addr, len, prot, flags, fd, offset >> PAGE_SHIFT);
+
+ out:
 	return ret;
 }
 
diff -urN 2.4.0-test7-pre5/include/asm-ppc/unistd.h lfsx/include/asm-ppc/unistd.h
--- 2.4.0-test7-pre5/include/asm-ppc/unistd.h	Tue Aug 22 01:23:53 2000
+++ lfsx/include/asm-ppc/unistd.h	Tue Aug 22 17:44:44 2000
@@ -206,6 +206,7 @@
 #define __NR_sys_pciconfig_iobase	200
 #define __NR_multiplexer		201
 #define __NR_getdents64		202
+#define __NR_fcntl64		203
 
 #define __NR(n)	#n