www.pudn.com > LFYOS.zip > cpu.c


#include"kernel.h" 
 
void left_run_state(int thread_id) 
{ 
	int cpu_id; 
	cpu_id=os->thread[thread_id].cpu_id; 
	os->thread[thread_id].cpu_id=-1; 
	os->virtual_cpu.used_cpu[cpu_id].thread_id=-1; 
	os->virtual_cpu.free_cpu 
		[os->virtual_cpu.free_cpu_top].cpu_id=cpu_id; 
	os->virtual_cpu.free_cpu_top++; 
	RESET_CPU_INFORMATION(os->virtual_cpu.used_cpu[cpu_id]); 
	return; 
} 
 
void enter_run_state(int thread_id) 
{ 
	int cpu_id; 
 
	os->virtual_cpu.free_cpu_top--; 
	cpu_id=os->virtual_cpu.free_cpu 
		[os->virtual_cpu.free_cpu_top].cpu_id; 
 
	os->thread[thread_id].cpu_id=cpu_id; 
	os->virtual_cpu.used_cpu[cpu_id].thread_id=thread_id; 
	RESET_CPU_INFORMATION(os->virtual_cpu.used_cpu[cpu_id]); 
 
	return; 
}