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