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); }
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); }