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