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