コード例 #1
0
ファイル: thread.c プロジェクト: a781947241/GridOS
static asmregparm __noreturn void kernel_thread_fate_entry(unsigned long (*thread_entry)(unsigned long),unsigned long para)
{
	if (thread_entry)
		ka_call_dynamic_module_entry(thread_entry, para);
	
	printk("Kernel level thread die ,entry %x.\n", thread_entry);
	kt_delete_current();
}
コード例 #2
0
ファイル: srv.c プロジェクト: goumuli/GridOS
asmregparm unsigned long arch_system_call(unsigned long * req)
{
	unsigned long req_id = * req;
	unsigned long ret;
	int clasz = KE_SRV_GET_CLASZ(req_id);
	unsigned long (*func)(unsigned long func_id, void * req);

//	printk("syscall at class %d, req id %d.\n", clasz, KE_SRV_GET_FID(req_id));

	func = ke_interface_v2[clasz]->request_enqueue;
	ret	= ka_call_dynamic_module_entry(func, KE_SRV_GET_FID(req_id), req);

	/* But is a dead thread? */
	//TODO

	return ret;
}