};
static int pktgen_refcnt;
+static struct lwkt_token pktgen_tok = LWKT_TOKEN_INITIALIZER(pktgen_token);
MALLOC_DECLARE(M_PKTGEN);
MALLOC_DEFINE(M_PKTGEN, CDEV_NAME, "Packet generator");
if (error)
return error;
- get_mplock();
+ lwkt_gettoken(&pktgen_tok);
if (dev->si_drv1 != NULL) {
- rel_mplock();
+ lwkt_reltoken(&pktgen_tok);
return EBUSY;
}
pktgen_refcnt++;
- rel_mplock();
+ lwkt_reltoken(&pktgen_tok);
return 0;
}
cdev_t dev = ap->a_head.a_dev;
struct pktgen *pktg = dev->si_drv1;
- get_mplock();
+ lwkt_gettoken(&pktgen_tok);
KKASSERT(pktg->pktg_refcnt > 0);
if (--pktg->pktg_refcnt == 0)
KKASSERT(pktgen_refcnt > 0);
pktgen_refcnt--;
- rel_mplock();
+ lwkt_reltoken(&pktgen_tok);
return 0;
}
struct pktgen *pktg = dev->si_drv1;
int error;
- get_mplock();
+ lwkt_gettoken(&pktgen_tok);
switch (ap->a_cmd) {
case PKTGENSTART:
break;
}
- rel_mplock();
+ lwkt_reltoken(&pktgen_tok);
return error;
}
in_addr_t saddr, daddr;
u_short sport, dport;
- rel_mplock(); /* Don't need MP lock */
-
callout_reset(&pktg->pktg_stop, pktg->pktg_duration * hz,
pktgen_stop_cb, pktg);
in_addr_t saddr, daddr;
u_short sport, dport;
- rel_mplock(); /* Don't need MP lock */
-
callout_reset(&pktg->pktg_stop, pktg->pktg_duration * hz,
pktgen_stop_cb, pktg);
end = pktg->pktg_end;
timevalsub(&end, &pktg->pktg_start);
- kprintf("cnt %llu, err %llu, time %ld.%06ld\n",
- pktg->pktg_tx_cnt, pktg->pktg_err_cnt, end.tv_sec, end.tv_usec);
+ kprintf("cnt %ju, err %ju, time %ld.%06ld\n",
+ (uintmax_t)pktg->pktg_tx_cnt,
+ (uintmax_t)pktg->pktg_err_cnt, end.tv_sec, end.tv_usec);
pktg->pktg_flags &= ~(PKTG_F_STOP | PKTG_F_CONFIG | PKTG_F_RUNNING);