static void mpci_get_packet(rtems_packet_prefix **prefix_ptr) { intercom_packet *packet = qoriq_intercom_allocate_packet( INTERCOM_TYPE_MPCI, INTERCOM_SIZE_512 ); *prefix_ptr = prefix_of_packet(packet); }
static void receive_task(rtems_task_argument arg) { uart_bridge_master_control *control = (uart_bridge_master_control *) arg; intercom_type type = control->type; int fd = open(control->device_path, O_RDONLY); assert(fd >= 0); serial_settings(fd); while (true) { intercom_packet *packet = qoriq_intercom_allocate_packet( type, INTERCOM_SIZE_64 ); ssize_t in = read(fd, packet->data, packet->size - 1); if (in > 0) { packet->size = (size_t) in; qoriq_intercom_send_packet(QORIQ_UART_BRIDGE_SLAVE_CORE, packet); } else { qoriq_intercom_free_packet(packet); } } }