void troca_bloq_to_ready(void) { PCB pcb_bloq; int pid_bloq = verifica_waiters(); while(pid_bloq>-1) { printf("procurando waiters ### %d ###",pid_bloq); // debug if(busca_pcb(&fifo_bloqs,pid_bloq,&pcb_bloq)!=-1) { // armazena pcb que vai ser liberado na variavel remove_pcb(&fifo_bloqs,pid_bloq); // exclui determinado PCB da lista de bloqueados insere_fifo(&fifo_aptos[pcb_bloq.prio], pcb_bloq); } pid_bloq = verifica_waiters(); } }
/** Procedure: commandCleanup Purpose: Free Memory that is still allocated Parameters: None Return value: None Calls: sys_free_mem, errorCheck Globals: error Errors: None **/ void commandCleanup(){ //int error = sys_free_mem(userCommand); //!NOTE! - Display Errors //error = errorCheck(error); //printf("The error number is %d.\n", error); //test3------------------------------------------ LLitem * tempCurr; int queueInt= 0; if(queueInt == 0 || queueInt == 4){ tempCurr = head4; if(tempCurr != NULL){ do{ error = remove_pcb(tempCurr->val); if(error !=0){ break; } else{ error = free_pcb(tempCurr->val); if(error != 0){ break; } else{ tempCurr = tempCurr->next; } } }while(tempCurr != head4 && tempCurr != NULL); } } if(queueInt == 0 || queueInt == 5){ tempCurr = head5; if(tempCurr != NULL){ do{ error = remove_pcb(tempCurr->val); if(error !=0){ break; } else{ error = free_pcb(tempCurr->val); if(error != 0){ break; } else{ tempCurr = tempCurr->next; } } }while(tempCurr != head5&& tempCurr != NULL); } } if(queueInt == 0 || queueInt == 6){ tempCurr = head6; if(tempCurr != NULL){ do{ error = remove_pcb(tempCurr->val); if(error !=0){ break; } else{ error = free_pcb(tempCurr->val); if(error != 0){ break; } else{ tempCurr = tempCurr->next; } } }while(tempCurr != head6&& tempCurr != NULL); } } if(queueInt == 0 || queueInt == 7){ tempCurr = head7; if(tempCurr != NULL){ do{ error = remove_pcb(tempCurr->val); if(error !=0){ break; } else{ error = free_pcb(tempCurr->val); if(error != 0){ break; } else{ tempCurr = tempCurr->next; } } }while(tempCurr != head7&& tempCurr != NULL); } } }//end commandCleanup