示例#1
0
PUBLIC int do_setpriority_ep()
{
	register struct mproc *armp;
	int a_nr, resu;

	/* Ponteiro para o processo atual*/
	register struct mproc *rmp = mp;

	/* Parametros da mensagem...*/
	int alvoid = m_in.m1_i1;
	int novapri = m_in.m1_i2;


	/*Verifica se a prioridade é valida */ 
	if (novapri < PRIO_MIN || novapri > PRIO_MAX) return -1;

	if((a_nr = proc_from_pid(alvoid)) == -1)
		return 1; /*PID passado é invalido*/
	armp = &mproc[a_nr];
	if(&mproc[armp->mp_parent] != rmp)
		return 2; /*Alvo nao eh processo filho de rmp*/

	

	/* Tenta pedir para o System Task mudar a prioridade
		do processo alvo. */
	if(!(resu = sys_nice(a_nr, novapri)))
	{ /*Deu tudo certo*/
		
		return 0;
	}
	else return 1; /*PID passado é ínválido ou não pod
					e ter a prioridade modificada*/
	    

    
}
long compat_sys_nice(u32 increment)
{
	/* sign extend increment */
	return sys_nice((int)increment);
}
示例#3
0
long compat_sys_nice(u32 increment)
{
	
	return sys_nice((int)increment);
}