mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 03:31:05 +00:00
added sparc cothreads
Original commit message from CVS: added sparc cothreads
This commit is contained in:
parent
3c79a3d66f
commit
ca4e87219c
6 changed files with 52 additions and 0 deletions
|
@ -19,6 +19,7 @@
|
||||||
#undef HAVE_CPU_PPC
|
#undef HAVE_CPU_PPC
|
||||||
#undef HAVE_CPU_ALPHA
|
#undef HAVE_CPU_ALPHA
|
||||||
#undef HAVE_CPU_ARM
|
#undef HAVE_CPU_ARM
|
||||||
|
#undef HAVE_CPU_SPARC
|
||||||
|
|
||||||
#undef HAVE_GDK_PIXBUF
|
#undef HAVE_GDK_PIXBUF
|
||||||
#undef HAVE_LIBGHTTP
|
#undef HAVE_LIBGHTTP
|
||||||
|
|
|
@ -124,6 +124,8 @@ case "x${target_cpu}" in
|
||||||
AC_DEFINE(HAVE_CPU_ALPHA) ;;
|
AC_DEFINE(HAVE_CPU_ALPHA) ;;
|
||||||
xarm*) HAVE_CPU_ARM=yes ;
|
xarm*) HAVE_CPU_ARM=yes ;
|
||||||
AC_DEFINE(HAVE_CPU_ARM) ;;
|
AC_DEFINE(HAVE_CPU_ARM) ;;
|
||||||
|
xsparc*) HAVE_CPU_SPARC=yes ;
|
||||||
|
AC_DEFINE(HAVE_CPU_SPARC) ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
dnl Determine endianness
|
dnl Determine endianness
|
||||||
|
@ -564,6 +566,7 @@ AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
|
||||||
AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
|
AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
|
||||||
AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
|
AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
|
||||||
AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
|
AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
|
||||||
|
AM_CONDITIONAL(HAVE_CPU_SPARC test "x$HAVE_CPU_SPARC" = "xyes")
|
||||||
AM_CONDITIONAL(HAVE_GDK_PIXBUF, test "x$USE_GDK_PIXBUF" = "xyes")
|
AM_CONDITIONAL(HAVE_GDK_PIXBUF, test "x$USE_GDK_PIXBUF" = "xyes")
|
||||||
AM_CONDITIONAL(HAVE_LIBGHTTP, test "x$USE_LIBGHTTP" = "xyes")
|
AM_CONDITIONAL(HAVE_LIBGHTTP, test "x$USE_LIBGHTTP" = "xyes")
|
||||||
AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
|
AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
|
||||||
|
|
|
@ -124,6 +124,7 @@ noinst_HEADERS = \
|
||||||
gstppc.h \
|
gstppc.h \
|
||||||
gstalpha.h \
|
gstalpha.h \
|
||||||
gstarm.h \
|
gstarm.h \
|
||||||
|
gstsparc.h \
|
||||||
gstpropsprivate.h
|
gstpropsprivate.h
|
||||||
|
|
||||||
CFLAGS = $(LIBGST_CFLAGS)
|
CFLAGS = $(LIBGST_CFLAGS)
|
||||||
|
|
|
@ -268,6 +268,9 @@ cothread_switch (cothread_state *thread)
|
||||||
ctx->current = thread->threadnum;
|
ctx->current = thread->threadnum;
|
||||||
|
|
||||||
/* save the current stack pointer, frame pointer, and pc */
|
/* save the current stack pointer, frame pointer, and pc */
|
||||||
|
#ifdef GST_ARCH_PRESETJMP
|
||||||
|
GST_ARCH_PRESETJMP();
|
||||||
|
#endif
|
||||||
enter = setjmp(current->jmp);
|
enter = setjmp(current->jmp);
|
||||||
if (enter != 0) {
|
if (enter != 0) {
|
||||||
GST_DEBUG (0,"enter thread #%d %d %p<->%p (%d)\n",current->threadnum, enter,
|
GST_DEBUG (0,"enter thread #%d %d %p<->%p (%d)\n",current->threadnum, enter,
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
#include "gstalpha.h"
|
#include "gstalpha.h"
|
||||||
#elif defined(HAVE_CPU_ARM)
|
#elif defined(HAVE_CPU_ARM)
|
||||||
#include "gstarm.h"
|
#include "gstarm.h"
|
||||||
|
#elif defined(HAVE_CPU_SPARC)
|
||||||
|
#include "gstsparc.h"
|
||||||
#else
|
#else
|
||||||
#error Need to know about this architecture, or have a generic implementation
|
#error Need to know about this architecture, or have a generic implementation
|
||||||
#endif
|
#endif
|
||||||
|
|
42
gst/gstsparc.h
Normal file
42
gst/gstsparc.h
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
/* GStreamer
|
||||||
|
* Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
|
||||||
|
* 2000 Wim Taymans <wtay@chello.be>
|
||||||
|
*
|
||||||
|
* gstsparc.h: Header for Sparc-specific architecture issues
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __GST_GSTSPARC_H__
|
||||||
|
#define __GST_GSTSPARC_H__
|
||||||
|
|
||||||
|
#define GST_ARCH_SET_SP(stackpointer) \
|
||||||
|
__asm__( "ta 3\n\t"
|
||||||
|
"mov %0, %%sp" : : "r"(stackpointer));
|
||||||
|
|
||||||
|
#define GST_ARCH_CALL(target) \
|
||||||
|
__asm__( "call %0,0\n\t"
|
||||||
|
"nop" : : "r"(target) );
|
||||||
|
|
||||||
|
#define GST_ARCH_PRESETJMP() \
|
||||||
|
__asm__( "ta 3" );
|
||||||
|
|
||||||
|
// Need to get more information about the stackframe format
|
||||||
|
// and get the fields more correct. Check GDB sources maybe?
|
||||||
|
|
||||||
|
#define GST_ARCH_SETUP_STACK(sp) sp -= 4
|
||||||
|
|
||||||
|
#endif /* __GST_GSTSPARC_H__ */
|
Loading…
Reference in a new issue