From e130b681c43ee2215512ffcf6cadcbc4487e96e6 Mon Sep 17 00:00:00 2001 From: Carmelo Amoroso Date: Fri, 16 Nov 2007 14:26:46 +0000 Subject: Added AVR32 support to uClibc. Signed-off-by: Hans-Christian Egtvedt --- libc/sysdeps/linux/avr32/mmap.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 libc/sysdeps/linux/avr32/mmap.c (limited to 'libc/sysdeps/linux/avr32/mmap.c') diff --git a/libc/sysdeps/linux/avr32/mmap.c b/libc/sysdeps/linux/avr32/mmap.c new file mode 100644 index 000000000..80310a45f --- /dev/null +++ b/libc/sysdeps/linux/avr32/mmap.c @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2004-2007 Atmel Corporation + * + * This file is subject to the terms and conditions of the GNU Lesser General + * Public License. See the file "COPYING.LIB" in the main directory of this + * archive for more details. + */ + +#include +#include +#include +#include + +libc_hidden_proto(mmap) + +static _syscall6(__ptr_t, mmap2, __ptr_t, addr, size_t, len, int, prot, + int, flags, int, fd, __off_t, pgoff); + +__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset) +{ + unsigned long page_size = sysconf(_SC_PAGESIZE); + unsigned long pgoff; + + if (offset & (page_size - 1)) { + __set_errno(EINVAL); + return MAP_FAILED; + } + + pgoff = (unsigned long)offset >> (31 - __builtin_clz(page_size)); + + return mmap2(addr, len, prot, flags, fd, pgoff); +} +libc_hidden_def(mmap) -- cgit v1.2.3