void TX() { //dequeue out_q to write to port char ch = '\0'; //Nul, '\0' ch = MsgDeQ(&port_data.echo_buffer); //******************echo_buffer????******** if((&port_data.echo_buffer !=0)//if echo buffer of port data is not empty { ch = MsgDeQ(&port_data.echo_buffer)); //ch = dequeue from echo buffer }
void MsgRcvISR(msg_t *p) { if(!MsgEmptyQ(&(mboxes[cur_pid].msg_q))) MsgDeQ(p, &(mboxes[cur_pid].msg_q)); else { EnQ(cur_pid, &(mboxes[cur_pid].wait_q)); pcbs[cur_pid].state = WAIT; cur_pid = -1; } }
void MsgRcvISR(int msg_addr) { msg_t *receiving_msg_ptr, *queued_msg_ptr; int msg_q_id; receiving_msg_ptr = (msg_t*)msg_addr; msg_q_id = receiving_msg_ptr->recipient; if (msg_q[msg_q_id].len > 0) { queued_msg_ptr = MsgDeQ(&msg_q[msg_q_id]); *receiving_msg_ptr = *queued_msg_ptr; }else { EnQ( running_pid, &msg_q[msg_q_id].wait_q); pcb[running_pid].state = WAIT; running_pid=-1; } }
void MsgRcvISR(int msg_addr) { int msg_q_id; msg_t *receiving_msg_ptr, *queued_msg_ptr; receiving_msg_ptr = (msg_t *) msg_addr; //set 1st abot to point to msg space msg_q_id = receiving_msg_ptr->recipient; if(msg_q[msg_q_id].len > 0) { queued_msg_ptr = MsgDeQ(&(msg_q[msg_q_id])); *receiving_msg_ptr = *queued_msg_ptr; return; } else { EnQ(running_pid, &msg_q[msg_q_id].wait_q); pcb[running_pid].state = WAIT; running_pid = -1; } }
void MsgRcvISR() { int mid; msg_t *dest, *src; mid = cur_pid; // private mbox only now dest = (msg_t *)pcbs[cur_pid].tf_p->eax; // eax since MsgRcv changed if(MsgEmptyQ(&mboxes[mid].msg_q)) { EnQ(cur_pid, &mboxes[mid].wait_q); pcbs[cur_pid].state = WAIT; cur_pid = -1; } else { src = MsgDeQ(&mboxes[mid].msg_q); *dest = *src; } }
void MsgRcvISR(int msg_addr) { int msg_q_id; msg_t *receiving_msg_ptr, *queued_msg_ptr; receiving_msg_ptr = (msg_t *) msg_addr; //set 1st abot to point to msg space msg_q_id = receiving_msg_ptr->recipient; // ************* if(msg_q[msg_q_id].len > 0) { queued_msg_ptr = MsgDeQ(&(msg_q[msg_q_id])); *receiving_msg_ptr = *queued_msg_ptr; return; } else { cons_printf("MsgRcvISR: BLOCKING process # %d !\n", running_pid); EnQ(running_pid, &msg_q[msg_q_id].wait_q); pcb[running_pid].state = WAIT; running_pid = -1; } }