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