summaryrefslogtreecommitdiffstats
path: root/libpthread/nptl/sysdeps/mips/sysdep.h
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2006-02-05 05:37:43 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2006-02-05 05:37:43 +0000
commit2d2282d01ec3af732c3e6f5af0e34a2527e4d8df (patch)
treed3ec4734c9abaa00a7e28710dddf38e5e216f828 /libpthread/nptl/sysdeps/mips/sysdep.h
parentb2d49909e51644bc39b0f29277e1538437a00830 (diff)
downloaduClibc-alpine-2d2282d01ec3af732c3e6f5af0e34a2527e4d8df.tar.bz2
uClibc-alpine-2d2282d01ec3af732c3e6f5af0e34a2527e4d8df.tar.xz
Clean up the 'sysdep.h' header chain. Other architectures will have their own 'sysdep.h' file in the various NPTL threads directories. Clean up other files having to do with the usage of it.
Diffstat (limited to 'libpthread/nptl/sysdeps/mips/sysdep.h')
-rw-r--r--libpthread/nptl/sysdeps/mips/sysdep.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/mips/sysdep.h b/libpthread/nptl/sysdeps/mips/sysdep.h
new file mode 100644
index 000000000..9483d8b39
--- /dev/null
+++ b/libpthread/nptl/sysdeps/mips/sysdep.h
@@ -0,0 +1,79 @@
+/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003, 2004
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Brendan Kehoe (brendan@zen.org).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <sgidefs.h>
+#include <sysdeps/generic/sysdep.h>
+
+#ifdef __ASSEMBLER__
+
+#include <regdef.h>
+
+#define ENTRY(name) \
+ .globl name; \
+ .align 2; \
+ .ent name,0; \
+ name##:
+
+#undef END
+#define END(function) \
+ .end function; \
+ .size function,.-function
+
+#define ret j ra ; nop
+
+#undef PSEUDO_END
+#define PSEUDO_END(sym) .end sym; .size sym,.-sym
+
+#define PSEUDO_NOERRNO(name, syscall_name, args) \
+ .align 2; \
+ ENTRY(name) \
+ .set noreorder; \
+ li v0, SYS_ify(syscall_name); \
+ syscall
+
+#undef PSEUDO_END_NOERRNO
+#define PSEUDO_END_NOERRNO(sym) .end sym; .size sym,.-sym
+
+#define ret_NOERRNO ret
+
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .align 2; \
+ ENTRY(name) \
+ .set noreorder; \
+ li v0, SYS_ify(syscall_name); \
+ syscall
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(sym) .end sym; .size sym,.-sym
+
+#define ret_ERRVAL ret
+
+#define r0 v0
+#define r1 v1
+/* The mips move insn is d,s. */
+#define MOVE(x,y) move y , x
+
+#if _MIPS_SIM == _ABIO32
+# define L(label) $L ## label
+#else
+# define L(label) .L ## label
+#endif
+
+#endif