summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/bfin
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2011-04-06 15:13:59 +0200
committerCarmelo Amoroso <carmelo.amoroso@st.com>2011-04-06 15:13:59 +0200
commit3b3285b1b7c02d36c74a6ae265fdb02ca991c96b (patch)
tree0f3bf060794323ff690f6f4a86dc903c4570f540 /libc/sysdeps/linux/bfin
parent289d19f45d7f8af9a4079938a3426aafdd2674ba (diff)
parent85f4b028d767fc390a7b866d2f58d58be489242d (diff)
Merge remote-tracking branch 'origin/master' into prelink
* origin/master: (137 commits) utils/ldd: Check for returned pointer from strrchr not the value it holds cris: add provide arch-specific vfork implementation lutimes.c, stubs.c: fix compiling lutimes, if __NR_utimensat is not defined bump version to 0.9.32-rc3-git release 0.9.32-rc3 memalign: include sys/param.h for MAX arm/bits/atomic.h: Include common/bit/atomic.h for thumb1 wctype.h: fix libc_hidden_proto for iswupper and add it for iswspace add libc_hidden_proto for wcs[n]casecmp_l really fix missing __libc_drand48_data Revert "missing prototype of __libc_drand48_data fixed" missing prototype of __libc_drand48_data fixed time.c, time.h: remove unused hidden strftime/strptime nanosleep.c: remove duplicated libc_hidden_proto ctype.c, ctype.h: remove commented parts that were banned for removal after 0.9.31 _wctype.c, wctype.h: remove unused isw* and wctype_l hidden functions time.c, wchar.h: remove unused hidden wcsftime str[n]casecmp.c: fix hidden usage remove unused hidden functions frv/memset.S: add missing libc_hidden_def ... Conflicts: ldso/ldso/ldso.c Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libc/sysdeps/linux/bfin')
-rw-r--r--libc/sysdeps/linux/bfin/Makefile.arch2
-rw-r--r--libc/sysdeps/linux/bfin/__longjmp.S2
-rw-r--r--libc/sysdeps/linux/bfin/bits/kernel_stat.h4
-rw-r--r--libc/sysdeps/linux/bfin/bits/setjmp.h2
-rw-r--r--libc/sysdeps/linux/bfin/cacheflush.c14
-rw-r--r--libc/sysdeps/linux/bfin/dma-memcpy.c4
-rw-r--r--libc/sysdeps/linux/bfin/sram-alloc.c2
-rw-r--r--libc/sysdeps/linux/bfin/sram-free.c4
-rw-r--r--libc/sysdeps/linux/bfin/sys/cachectl.h25
9 files changed, 48 insertions, 11 deletions
diff --git a/libc/sysdeps/linux/bfin/Makefile.arch b/libc/sysdeps/linux/bfin/Makefile.arch
index 242703757..425a68898 100644
--- a/libc/sysdeps/linux/bfin/Makefile.arch
+++ b/libc/sysdeps/linux/bfin/Makefile.arch
@@ -6,7 +6,7 @@
#
CSRC := bsdsetjmp.c clone.c \
- sram-alloc.c sram-free.c dma-memcpy.c
+ sram-alloc.c sram-free.c dma-memcpy.c cacheflush.c
SSRC := __longjmp.S setjmp.S bsd-_setjmp.S
diff --git a/libc/sysdeps/linux/bfin/__longjmp.S b/libc/sysdeps/linux/bfin/__longjmp.S
index 673cd30e8..b2fafbb25 100644
--- a/libc/sysdeps/linux/bfin/__longjmp.S
+++ b/libc/sysdeps/linux/bfin/__longjmp.S
@@ -105,3 +105,5 @@ ___longjmp:
.size ___longjmp,.-___longjmp
libc_hidden_def(__longjmp)
+
+.section .note.GNU-stack,"",%progbits
diff --git a/libc/sysdeps/linux/bfin/bits/kernel_stat.h b/libc/sysdeps/linux/bfin/bits/kernel_stat.h
index b1a3251e5..7700d6109 100644
--- a/libc/sysdeps/linux/bfin/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/bfin/bits/kernel_stat.h
@@ -1,10 +1,6 @@
#ifndef _BITS_STAT_STRUCT_H
#define _BITS_STAT_STRUCT_H
-#ifndef _LIBC
-#error bits/kernel_stat.h is for internal uClibc use only!
-#endif
-
/* This file provides whatever this particular arch's kernel thinks
* struct kernel_stat should look like... It turns out each arch has a
* different opinion on the subject... */
diff --git a/libc/sysdeps/linux/bfin/bits/setjmp.h b/libc/sysdeps/linux/bfin/bits/setjmp.h
index ee3f5e787..adb9c23af 100644
--- a/libc/sysdeps/linux/bfin/bits/setjmp.h
+++ b/libc/sysdeps/linux/bfin/bits/setjmp.h
@@ -52,6 +52,6 @@ typedef struct
/* Test if longjmp to JMPBUF would unwind the frame
containing a local variable at ADDRESS. */
#define _JMPBUF_UNWINDS(jmpbuf, address) \
- ((void *) (address) < (void *) (jmpbuf)->__pregs[6])
+ ((void *) (address) < (void *) (jmpbuf)->fp)
#endif /* bits/setjmp.h */
diff --git a/libc/sysdeps/linux/bfin/cacheflush.c b/libc/sysdeps/linux/bfin/cacheflush.c
new file mode 100644
index 000000000..a8d81c419
--- /dev/null
+++ b/libc/sysdeps/linux/bfin/cacheflush.c
@@ -0,0 +1,14 @@
+/*
+ * cacheflush.c - Cache control functions for Blackfin.
+ *
+ * Copyright (C) 2010 Analog Devices Inc.
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <unistd.h>
+#include <errno.h>
+#include <sys/syscall.h>
+#include <sys/cachectl.h>
+
+_syscall3 (int, cacheflush, void *, start, const int, nbytes, const int, flags)
diff --git a/libc/sysdeps/linux/bfin/dma-memcpy.c b/libc/sysdeps/linux/bfin/dma-memcpy.c
index 274b99e8c..b715aeba0 100644
--- a/libc/sysdeps/linux/bfin/dma-memcpy.c
+++ b/libc/sysdeps/linux/bfin/dma-memcpy.c
@@ -1,6 +1,6 @@
#include <unistd.h>
#include <errno.h>
#include <sys/syscall.h>
+#include <bfin_sram.h>
-_syscall3 (__ptr_t, dma_memcpy, __ptr_t, dest, __ptr_t, src, size_t, len)
-
+_syscall3 (void *, dma_memcpy, void *, dest, const void *, src, size_t, len)
diff --git a/libc/sysdeps/linux/bfin/sram-alloc.c b/libc/sysdeps/linux/bfin/sram-alloc.c
index 6b33b2670..8518119d7 100644
--- a/libc/sysdeps/linux/bfin/sram-alloc.c
+++ b/libc/sysdeps/linux/bfin/sram-alloc.c
@@ -1,6 +1,6 @@
#include <unistd.h>
#include <errno.h>
#include <sys/syscall.h>
+#include <bfin_sram.h>
_syscall2 (__ptr_t, sram_alloc, size_t, len, unsigned long, flags)
-
diff --git a/libc/sysdeps/linux/bfin/sram-free.c b/libc/sysdeps/linux/bfin/sram-free.c
index 0fba936c8..8260eb660 100644
--- a/libc/sysdeps/linux/bfin/sram-free.c
+++ b/libc/sysdeps/linux/bfin/sram-free.c
@@ -1,6 +1,6 @@
#include <unistd.h>
#include <errno.h>
#include <sys/syscall.h>
+#include <bfin_sram.h>
-_syscall1 (__ptr_t, sram_free, __ptr_t, addr)
-
+_syscall1 (int, sram_free, const void *, addr)
diff --git a/libc/sysdeps/linux/bfin/sys/cachectl.h b/libc/sysdeps/linux/bfin/sys/cachectl.h
new file mode 100644
index 000000000..ee4c03155
--- /dev/null
+++ b/libc/sysdeps/linux/bfin/sys/cachectl.h
@@ -0,0 +1,25 @@
+/*
+ * cachectl.h - Functions for cache control on Blackfin.
+ *
+ * Copyright (C) 2010 Analog Devices, Inc.
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#ifndef _SYS_CACHECTL_H
+#define _SYS_CACHECTL_H 1
+
+#include <features.h>
+
+/*
+ * Get the kernel definition for the flag bits
+ */
+#include <asm/cachectl.h>
+
+__BEGIN_DECLS
+
+extern int cacheflush (void *addr, __const int nbytes, __const int flags);
+
+__END_DECLS
+
+#endif /* sys/cachectl.h */