1/*
2 * Copyright 2003-2011, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 * 		Ingo Weinhold <bonefish@cs.tu-berlin.de>
7 * 		François Revol <revol@free.fr>
8 *		Jonas Sundström <jonas@kirilla.com
9 *
10 * Copyright 2001, Travis Geiselbrecht. All rights reserved.
11 * Distributed under the terms of the NewOS License.
12 */
13
14
15#include <arch_thread.h>
16
17#include <arch_cpu.h>
18#include <arch/thread.h>
19#include <boot/stage2.h>
20#include <kernel.h>
21#include <thread.h>
22#include <vm/vm_types.h>
23#include <vm/VMAddressSpace.h>
24#include <arch_vm.h>
25
26#include <string.h>
27
28
29static struct arch_thread sInitialState;
30
31
32void
33mipsel_push_iframe(struct iframe_stack *stack, struct iframe *frame)
34{
35#warning IMPLEMENT mipsel_push_iframe
36}
37
38
39void
40mipsel_pop_iframe(struct iframe_stack *stack)
41{
42#warning IMPLEMENT mipsel_pop_iframe
43}
44
45
46static struct iframe *
47mipsel_get_current_iframe(void)
48{
49#warning IMPLEMENT mipsel_get_current_iframe
50	return NULL;
51}
52
53
54struct iframe *
55mipsel_get_user_iframe(void)
56{
57#warning IMPLEMENT mipsel_get_user_iframe
58	return NULL;
59}
60
61
62// #pragma mark -
63
64
65status_t
66arch_thread_init(struct kernel_args *args)
67{
68#warning IMPLEMENT arch_thread_init
69	return B_ERROR;
70}
71
72
73status_t
74arch_team_init_team_struct(Team *team, bool kernel)
75{
76#warning IMPLEMENT arch_team_init_team_struct
77	return B_ERROR;
78}
79
80
81status_t
82arch_thread_init_thread_struct(Thread *thread)
83{
84#warning IMPLEMENT arch_thread_init_thread_struct
85	return B_ERROR;
86}
87
88
89void
90arch_thread_init_kthread_stack(Thread* thread, void* _stack, void* _stackTop,
91	void (*function)(void*), const void* data)
92{
93#warning IMPLEMENT arch_thread_init_kthread_stack
94}
95
96
97status_t
98arch_thread_init_tls(Thread *thread)
99{
100#warning IMPLEMENT arch_thread_init_tls
101	return B_ERROR;
102}
103
104
105void
106arch_thread_context_switch(Thread *from, Thread *to)
107{
108#warning IMPLEMENT arch_thread_context_switch
109}
110
111
112void
113arch_thread_dump_info(void *info)
114{
115#warning IMPLEMENT arch_thread_dump_info
116}
117
118
119status_t
120arch_thread_enter_userspace(Thread *thread, addr_t entry, void *arg1,
121	void *arg2)
122{
123#warning IMPLEMENT arch_thread_enter_userspace
124	panic("arch_thread_enter_uspace(): not yet implemented\n");
125	return B_ERROR;
126}
127
128
129bool
130arch_on_signal_stack(Thread *thread)
131{
132#warning IMPLEMENT arch_on_signal_stack
133	return false;
134}
135
136
137status_t
138arch_setup_signal_frame(Thread *thread, struct sigaction *sa,
139	struct signal_frame_data *signalFrameData)
140{
141#warning IMPLEMENT arch_setup_signal_frame
142	return B_ERROR;
143}
144
145
146int64
147arch_restore_signal_frame(struct signal_frame_data* signalFrameData)
148{
149#warning IMPLEMENT arch_restore_signal_frame
150	return 0;
151}
152
153
154void
155arch_check_syscall_restart(Thread *thread)
156{
157#warning IMPLEMENT arch_check_syscall_restart
158}
159
160
161void
162arch_store_fork_frame(struct arch_fork_arg *arg)
163{
164#warning IMPLEMENT arch_store_fork_frame
165}
166
167
168void
169arch_restore_fork_frame(struct arch_fork_arg *arg)
170{
171#warning IMPLEMENT arch_restore_fork_frame
172}
173
174