فهرست منبع

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);