void hSDP(uint mBox, uint port)
{
     sdp_msg_t *msg = (sdp_msg_t *) mBox;
     io_printf(IO_STD, "Got sdp:\n");
     io_printf(IO_STD, "cmd_rc = 0x%x\n", msg->cmd_rc);
     io_printf(IO_STD, "seq    = 0x%x\n", msg->seq);
     io_printf(IO_STD, "arg1   = 0x%x\n", msg->arg1);
     io_printf(IO_STD, "arg2   = 0x%x\n", msg->arg2);
     io_printf(IO_STD, "arg3   = 0x%x\n", msg->arg3);
     spin1_msg_free (msg);
}
Beispiel #2
0
void sdp_packet_callback(uint msg, uint null)
{
    sdp_msg_t *sdp_msg = (sdp_msg_t *) msg;
    sdp_packets_received++;
//    io_printf (IO_STD, "SDP PACKET: flags: %x tag: %x dest_port: %x srce_port: %x dest_addr: %x srce_addr: %x cmd_rc: %x arg1: %x\n", sdp_msg -> flags, sdp_msg -> tag, sdp_msg -> dest_port, sdp_msg -> srce_port, sdp_msg -> dest_addr, sdp_msg -> srce_addr, sdp_msg -> cmd_rc, sdp_msg -> arg1);
    switch(sdp_msg->cmd_rc)
    {
        case 0x100: // SDP input spikes packet
/*            io_printf(IO_STD, "%d Spike Received\n", spin1_get_simulation_time());    */
            input_spikes(sdp_msg->arg1, (uint *) sdp_msg->data);
            break;
        default:
            handle_sdp_msg(sdp_msg);
            break;
    }
    spin1_msg_free(sdp_msg);
}
void hSDP(uint mBox, uint port)
{
    sdp_msg_t *msg = (sdp_msg_t *)mBox;
    if(port==7)
        spin1_schedule_callback(terminate, 0, 0, 1);
    else {
        pktCntr++;

        ushort tmpSrcA = msg->srce_addr;
        uchar tmpSrcP = msg->srce_port;
        msg->tag = 1;
        msg->srce_addr = msg->dest_addr;
        msg->srce_port = msg->dest_port;
        msg->dest_addr = tmpSrcA;
        msg->dest_port = tmpSrcP;

        spin1_send_sdp_msg(msg, 10);
    }

    spin1_msg_free(msg);
}