aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/include/asm/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile/include/asm/system.h')
-rw-r--r--arch/tile/include/asm/system.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/tile/include/asm/system.h b/arch/tile/include/asm/system.h
index d6ca7f816c8..0935094f370 100644
--- a/arch/tile/include/asm/system.h
+++ b/arch/tile/include/asm/system.h
@@ -160,6 +160,14 @@ struct task_struct;
160extern struct task_struct *_switch_to(struct task_struct *prev, 160extern struct task_struct *_switch_to(struct task_struct *prev,
161 struct task_struct *next); 161 struct task_struct *next);
162 162
163/* Helper function for _switch_to(). */
164extern struct task_struct *__switch_to(struct task_struct *prev,
165 struct task_struct *next,
166 unsigned long new_system_save_1_0);
167
168/* Address that switched-away from tasks are at. */
169extern unsigned long get_switch_to_pc(void);
170
163/* 171/*
164 * On SMP systems, when the scheduler does migration-cost autodetection, 172 * On SMP systems, when the scheduler does migration-cost autodetection,
165 * it needs a way to flush as much of the CPU's caches as possible: 173 * it needs a way to flush as much of the CPU's caches as possible:
@@ -187,10 +195,26 @@ extern int unaligned_printk;
187/* Number of unaligned fixups performed */ 195/* Number of unaligned fixups performed */
188extern unsigned int unaligned_fixup_count; 196extern unsigned int unaligned_fixup_count;
189 197
198/* Init-time routine to do tile-specific per-cpu setup. */
199void setup_cpu(int boot);
200
190/* User-level DMA management functions */ 201/* User-level DMA management functions */
191void grant_dma_mpls(void); 202void grant_dma_mpls(void);
192void restrict_dma_mpls(void); 203void restrict_dma_mpls(void);
193 204
205#ifdef CONFIG_HARDWALL
206/* User-level network management functions */
207void reset_network_state(void);
208void grant_network_mpls(void);
209void restrict_network_mpls(void);
210int hardwall_deactivate(struct task_struct *task);
211
212/* Hook hardwall code into changes in affinity. */
213#define arch_set_cpus_allowed(p, new_mask) do { \
214 if (p->thread.hardwall && !cpumask_equal(&p->cpus_allowed, new_mask)) \
215 hardwall_deactivate(p); \
216} while (0)
217#endif
194 218
195/* Invoke the simulator "syscall" mechanism (see arch/tile/kernel/entry.S). */ 219/* Invoke the simulator "syscall" mechanism (see arch/tile/kernel/entry.S). */
196extern int _sim_syscall(int syscall_num, ...); 220extern int _sim_syscall(int syscall_num, ...);
@@ -215,6 +239,12 @@ extern int _sim_syscall(int syscall_num, ...);
215 homecache_migrate_kthread(); \ 239 homecache_migrate_kthread(); \
216} while (0) 240} while (0)
217 241
242/* Support function for forking a new task. */
243void ret_from_fork(void);
244
245/* Called from ret_from_fork() when a new process starts up. */
246struct task_struct *sim_notify_fork(struct task_struct *prev);
247
218#endif /* !__ASSEMBLY__ */ 248#endif /* !__ASSEMBLY__ */
219 249
220#endif /* _ASM_TILE_SYSTEM_H */ 250#endif /* _ASM_TILE_SYSTEM_H */