Commit 557e1995 authored by Al Viro's avatar Al Viro
Browse files

h8300: generic kernel_thread()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ddffeb8c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ config H8300
	select GENERIC_IRQ_SHOW
	select GENERIC_CPU_DEVICES
	select MODULES_USE_ELF_RELA
	select GENERIC_KERNEL_THREAD

config SYMBOL_PREFIX
	string
+0 −2
Original line number Diff line number Diff line
@@ -107,8 +107,6 @@ static inline void release_thread(struct task_struct *dead_task)
{
}

extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);

/*
 * Free current thread data structures etc..
 */
+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@ struct pt_regs {
#define user_mode(regs) (!((regs)->ccr & PS_S))
#define instruction_pointer(regs) ((regs)->pc)
#define profile_pc(regs) instruction_pointer(regs)
#define current_pt_regs() ((struct pt_regs *) \
	(THREAD_SIZE + (unsigned long)current_thread_info()) - 1)
#endif /* __KERNEL__ */
#endif /* __ASSEMBLY__ */
#endif /* _H8300_PTRACE_H */
+10 −0
Original line number Diff line number Diff line
@@ -158,6 +158,7 @@ INTERRUPTS = 128
.globl SYMBOL_NAME(system_call)
.globl SYMBOL_NAME(ret_from_exception)
.globl SYMBOL_NAME(ret_from_fork)
.globl SYMBOL_NAME(ret_from_kernel_thread)
.globl SYMBOL_NAME(ret_from_interrupt)
.globl SYMBOL_NAME(interrupt_redirect_table)
.globl SYMBOL_NAME(sw_ksp),SYMBOL_NAME(sw_usp)
@@ -330,6 +331,15 @@ SYMBOL_NAME_LABEL(ret_from_fork)
	jsr	@SYMBOL_NAME(schedule_tail)
	jmp	@SYMBOL_NAME(ret_from_exception)

SYMBOL_NAME_LABEL(ret_from_kernel_thread)
	mov.l	er2,er0
	jsr	@SYMBOL_NAME(schedule_tail)
	mov.l	@(LER4:16,sp),er0
	mov.l	@(LER5:16,sp),er1
	jsr	@er1
	sub.l	@er0,@er0
	jsr	@SYMBOL_NAME(sys_exit)

SYMBOL_NAME_LABEL(resume)
	/*
	 * Beware - when entering resume, offset of tss is in d1,
+0 −1
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ EXPORT_SYMBOL(strncmp);

EXPORT_SYMBOL(ip_fast_csum);

EXPORT_SYMBOL(kernel_thread);
EXPORT_SYMBOL(enable_irq);
EXPORT_SYMBOL(disable_irq);

Loading