コード例 #1
0
ファイル: uipc_mbuf.c プロジェクト: orumin/openbsd-efivars
/*
 * Initialize the mbuf allocator.
 */
void
mbinit(void)
{
	int i;

#if DIAGNOSTIC
	if (mclsizes[0] != MCLBYTES)
		panic("mbinit: the smallest cluster size != MCLBYTES");
	if (mclsizes[nitems(mclsizes) - 1] != MAXMCLBYTES)
		panic("mbinit: the largest cluster size != MAXMCLBYTES");
#endif

	pool_init(&mbpool, MSIZE, 0, 0, 0, "mbufpl", NULL);
	pool_setipl(&mbpool, IPL_NET);
	pool_set_constraints(&mbpool, &kp_dma_contig);
	pool_setlowat(&mbpool, mblowat);

	pool_init(&mtagpool, PACKET_TAG_MAXSIZE + sizeof(struct m_tag),
	    0, 0, 0, "mtagpl", NULL);
	pool_setipl(&mtagpool, IPL_NET);

	for (i = 0; i < nitems(mclsizes); i++) {
		snprintf(mclnames[i], sizeof(mclnames[0]), "mcl%dk",
		    mclsizes[i] >> 10);
		pool_init(&mclpools[i], mclsizes[i], 0, 0, 0,
		    mclnames[i], NULL);
		pool_setipl(&mclpools[i], IPL_NET);
		pool_set_constraints(&mclpools[i], &kp_dma_contig);
		pool_setlowat(&mclpools[i], mcllowat);
	}

	nmbclust_update();
}
コード例 #2
0
ファイル: dma_alloc.c プロジェクト: appleorange1/bitrig
void
dma_alloc_init(void)
{
	int i;

	for (i = 0; i < nitems(dmapools); i++) {
		snprintf(dmanames[i], sizeof(dmanames[0]), "dma%d",
		    1 << (i + DMA_BUCKET_OFFSET));
		pool_init(&dmapools[i], 1 << (i + DMA_BUCKET_OFFSET), 0, 0, 0,
		    dmanames[i], NULL);
		pool_set_constraints(&dmapools[i], &kp_dma_contig);
		pool_setipl(&dmapools[i], IPL_VM);
		/* XXX need pool_setlowat(&dmapools[i], dmalowat); */
	}
}