summaryrefslogtreecommitdiff
path: root/lib/libpthread/arch/sparc/uthread_machdep.h
blob: 46ffd6dc92cea448208ff00c5abf50b3fd460d2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * OpenBSD/sparc machine-dependent thread macros
 *
 * $OpenBSD: uthread_machdep.h,v 1.3 1999/11/25 07:01:29 d Exp $
 */

#include <sys/signal.h>

/* save the floating point state of a thread */
#define _thread_machdep_save_float_state(thr) 		\
	{						\
		/* XXX tdb */				\
	}

/* restore the floating point state of a thread */
#define _thread_machdep_restore_float_state(thr) 	\
	{						\
		/* XXX tdb */				\
	}

/* initialise the jmpbuf stack frame so it continues from entry */

#define _thread_machdep_thread_create(thr, entry, pattr)	\
	{						\
	    /* entry */					\
	    (thr)->saved_jmp_buf[1] = (long) entry;	\
	    /* stack */					\
	    (thr)->saved_jmp_buf[0] = (long) (thr)->stack->base \
				+ (thr)->stack->size	\
				- sizeof(double);	\
	}

#define _thread_machdep_longjmp(a,v)	_longjmp(a,v)
#define _thread_machdep_setjmp(a)	_setjmp(a)
typedef jmp_buf _machdep_jmp_buf;

struct _machdep_struct {
        /* char            saved_fp[???]; */
	int	dummy;
};