1/*
2** Copyright 2001, Travis Geiselbrecht. All rights reserved.
3** Copyright 2019, Adrien Destugues, pulkomandy@pulkomandy.tk
4** Distributed under the terms of the MIT License.
5*/
6#ifndef KERNEL_ARCH_SPARC_THREAD_TYPES_H
7#define KERNEL_ARCH_SPARC_THREAD_TYPES_H
8
9
10#include <arch_cpu.h>
11#include <kernel.h>
12
13
14#define	IFRAME_TRACE_DEPTH 4
15
16struct iframe_stack {
17	struct iframe *frames[IFRAME_TRACE_DEPTH];
18	int32	index;
19};
20
21// architecture specific thread info
22struct arch_thread {
23	void	*sp;	// stack pointer
24	void	*interrupt_stack;
25
26	// used to track interrupts on this thread
27	struct iframe_stack	iframes;
28};
29
30struct arch_team {
31	// gcc treats empty structures as zero-length in C, but as if they contain
32	// a char in C++. So we have to put a dummy in to be able to use the struct
33	// from both in a consistent way.
34	char	dummy;
35};
36
37struct arch_fork_arg {
38	// gcc treats empty structures as zero-length in C, but as if they contain
39	// a char in C++. So we have to put a dummy in to be able to use the struct
40	// from both in a consistent way.
41	char	dummy;
42};
43
44#endif	/* KERNEL_ARCH_SPARC_THREAD_TYPES_H */
45
46