/*---------------------------------------------------------------------------*/ static void packet_sent(void *ptr, int status, int num_tx) { struct channel *c = ptr; struct rime_sniffer *s; switch(status) { case MAC_TX_COLLISION: PRINTF("rime: collision after %d tx\n", num_tx); break; case MAC_TX_NOACK: PRINTF("rime: noack after %d tx\n", num_tx); break; case MAC_TX_OK: PRINTF("rime: sent after %d tx\n", num_tx); break; default: PRINTF("rime: error %d after %d tx\n", status, num_tx); } /* Call sniffers, pass along the MAC status code. */ for(s = list_head(sniffers); s != NULL; s = list_item_next(s)) { if(s->output_callback != NULL) { s->output_callback(status); } } abc_sent(c, status, num_tx); }
/*---------------------------------------------------------------------------*/ static void packet_sent(void *ptr, int status, int num_tx) { struct channel *c = ptr; switch(status) { case MAC_TX_COLLISION: PRINTF("rime: collision after %d tx\n", num_tx); break; case MAC_TX_NOACK: PRINTF("rime: noack after %d tx\n", num_tx); break; case MAC_TX_OK: PRINTF("rime: sent after %d tx\n", num_tx); break; default: PRINTF("rime: error %d after %d tx\n", status, num_tx); } if(status == MAC_TX_OK) { struct rime_sniffer *s; /* Call sniffers, but only if the packet was sent. */ for(s = list_head(sniffers); s != NULL; s = s->next) { if(s->output_callback != NULL) { s->output_callback(); } } } abc_sent(c, status, num_tx); }