uint game_perro_atender_call(ushort accion_id, uint extra) { uint result; result = NULL; switch (accion_id) { case 1: // moverse result = game_perro_mover(sched_tarea_actual(), extra); break; case 2: // cavar result = game_perro_cavar(sched_tarea_actual()); break; case 3: // olfatear result = game_perro_olfatear(sched_tarea_actual()); break; case 4: // recibir orden result = game_perro_recibir_orden(sched_tarea_actual()); break; default: break; } return result; //cambiar a la tarea idle }
uint game_syscall_manejar(uint syscall, uint param1) { uint res; // ~ completar llamando a las funciones que haga falta ~ switch(syscall){ case 1: res = game_perro_mover(game_perro_actual, param1); break; case 2: res = game_perro_cavar(game_perro_actual); break; case 3: res = game_perro_olfatear(game_perro_actual); break; case 4: res = (uint) game_perro_recibirOrden(game_perro_actual); break; default: return -1; } return res; }