static int ethernet_send(struct netbuf *pkt)                    
{                                                               
...
  if (!memcmp(pkt->option.ethernet.send.dst_macaddr,        
              "\x00\x00\x00\x00\x00\x00", MACADDR_SIZE)) {   MACAhX
    pkt->cmd = ARP_CMD_SEND;                                 s̏ꍇɂ́Carp^XN
    kz_send(MSGBOX_ID_ARPPROC, 0, (char *)pkt);              nARP
    return 1;                                                Ă炤
  }                                                         
                                                                
  pkt->cmd = NETDRV_CMD_SEND;          hCoE^XNւ̑Mv
                                                                
  pkt->top  -= ETHERNET_HEADER_SIZE;            f[^̐擪w|C^
  pkt->size += ETHERNET_HEADER_SIZE;            Zċ󂫂CEthernet
  ethhdr = (struct ethernet_header *)pkt->top;  wb_}
                                                                
  memcpy(ethhdr->dst_addr, pkt->option.ethernet.send.dst_macaddr, MACADDR_SIZE);
  memcpy(ethhdr->src_addr, my_macaddr, MACADDR_SIZE);           
  ethhdr->type = hton2(pkt->option.ethernet.send.type);         
                                                                
  kz_send(MSGBOX_ID_NETPROC, 0, (char *)pkt);   MACAhXUς݂̏ꍇɂ́ChCoE^XNɑMv𔭍s
  return 1;                                                     
}                                                               
                                                                
static int ethernet_proc(struct netbuf *buf)                    
{                                                               
...
  switch (buf->cmd) {                                           
...
  case ETHERNET_CMD_SEND:           pPbg̑M˗ꍇɂ́C
    ret = ethernet_send(buf);       Mp֐Ăяo
...
}                                                               
                                                                
int ethernet_main(int argc, char *argv[])                       
{                                                               
...
  if (kz_recv(MSGBOX_ID_ETHPROC, NULL, (void *)&buf) != -1) {   ^XN̗vM
    ret = ethernet_proc(buf);                                   
...(㗪)...
