Beispiel #1
0
void cmd_retval(ip_header_t * ip, udp_header_t * udp, command_t * command)
{
  make_ip(ntohl(ip->src), ntohl(ip->dest), UDP_H_LEN + COMMAND_LEN, 17, (ip_header_t *)(pkt_buf + ETHER_H_LEN));
  make_udp(ntohs(udp->src), ntohs(udp->dest),(unsigned char *) command, COMMAND_LEN, (ip_header_t *)(pkt_buf + ETHER_H_LEN), (udp_header_t *)(pkt_buf + ETHER_H_LEN + IP_H_LEN));
  eth_txts(pkt_buf, ETHER_H_LEN + IP_H_LEN + UDP_H_LEN + COMMAND_LEN);

  syscall_retval = ntohl(command->address);
  escape_loop = 1;
  sem_signal(result_sema);
  if (waiting_thd) {
    thd_schedule_next(waiting_thd);
    waiting_thd = NULL;
  } else
    thd_schedule(1, 0);
}
Beispiel #2
0
static void asic_yuv_evt_handler(uint32 code) {
	sem_signal(&yuv_done);
	thd_schedule(1, 0);
}