Esempio n. 1
0
/* send ilm to UART owner */
void USB2UART_Sendilm(msg_type msgid)
{
    ilm_struct *USB2UART_ilm;
    void *port_ptr = NULL;

    if (USB2UARTPort.ownerid == MOD_DRV_HISR)
        return;

    switch(msgid)
    {
    case MSG_ID_UART_READY_TO_READ_IND:
    {
        uart_ready_to_read_ind_struct *tmp;
        tmp = (uart_ready_to_read_ind_struct *)
              construct_local_para(sizeof(uart_ready_to_read_ind_struct),TD_UL);
        tmp->port = USB2UARTPort.port_no;
        port_ptr = tmp;
    }
    break;

    case MSG_ID_UART_READY_TO_WRITE_IND:
    {
        uart_ready_to_write_ind_struct *tmp;
        tmp = (uart_ready_to_write_ind_struct *)
              construct_local_para(sizeof(uart_ready_to_write_ind_struct),TD_UL);
        tmp->port = USB2UARTPort.port_no;
        port_ptr = tmp;
    }
    break;

    case MSG_ID_UART_ESCAPE_DETECTED_IND:
    {
        uart_escape_detected_ind_struct *tmp;
        tmp = (uart_escape_detected_ind_struct *)
              construct_local_para(sizeof(uart_escape_detected_ind_struct),TD_UL);
        tmp->port = USB2UARTPort.port_no;
        port_ptr = tmp;
    }
    break;

    default:
        EXT_ASSERT(0, msgid, 0, 0);
        break;
    }

    if (USB2UARTPort.ownerid == MOD_DRV_HISR)
        EXT_ASSERT(0, USB2UARTPort.ownerid, 0, 0);

    DRV_BuildPrimitive(USB2UART_ilm, MOD_DRV_HISR,
                       USB2UARTPort.ownerid, msgid, port_ptr);
    msg_send_ext_queue(USB2UART_ilm);
}
Esempio n. 2
0
static void UART_HISR(void)
{
	ilm_struct *UART_ilm;
	uart_ready_to_write_ind_struct* _data;

	if(g_msgid == MSG_ID_UART_READY_TO_WRITE_IND)
	{			    
	   	_data = (uart_ready_to_write_ind_struct *) construct_local_para(sizeof(uart_ready_to_write_ind_struct),TD_UL);
		_data->port = g_port; 
	}
	else
	{
		_data = NULL;
	}

	DRV_BuildPrimitive(UART_ilm,
                         UARTPort[g_port].UART_id,
                         UARTPort[g_port].ownerid,
                         g_msgid,
                         _data);

	msg_send_ext_queue(UART_ilm);
}