Переглянути джерело

the generic mmap.c is not good enough for us, we need the syscall6() version

Mike Frysinger 19 роки тому
батько
коміт
5303a70090
2 змінених файлів з 18 додано та 1 видалено
  1. 1 1
      libc/sysdeps/linux/x86_64/Makefile
  2. 17 0
      libc/sysdeps/linux/x86_64/mmap.c

+ 1 - 1
libc/sysdeps/linux/x86_64/Makefile

@@ -27,7 +27,7 @@ CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
 SSRC=__longjmp.S vfork.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S clone.S
 SOBJS=$(patsubst %.S,%.o, $(SSRC))
 
-CSRC=brk.c sigaction.c __syscall_error.c
+CSRC=brk.c sigaction.c __syscall_error.c mmap.c
 COBJS=$(patsubst %.c,%.o, $(CSRC))
 
 OBJS=$(SOBJS) $(COBJS)

+ 17 - 0
libc/sysdeps/linux/x86_64/mmap.c

@@ -0,0 +1,17 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * mmap() for uClibc/x86_64
+ *
+ * Copyright (C) 2005 by Erik Andersen <andersen@codepoet.org>
+ * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org>
+ *
+ * GNU Library General Public License (LGPL) version 2 or later.
+ */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/syscall.h>
+
+_syscall6(void *, mmap, void *, start, size_t, length, int, prot,
+          int, flags, int, fd, off_t, offset);