mfcb
struct mfcb *mfcbp;
release_mfc(struct mfcb *mfcbp)
struct mfcb *mfcbp;
static void release_mfc(struct mfcb *);
#define MFCB_REFHOLD(mfcb) { \
mutex_enter(&(mfcb)->mfcb_lock); \
(mfcb)->mfcb_refcnt++; \
ASSERT((mfcb)->mfcb_refcnt != 0); \
mutex_exit(&(mfcb)->mfcb_lock); \
#define MFCB_REFRELE(mfcb) { \
mutex_enter(&(mfcb)->mfcb_lock); \
ASSERT((mfcb)->mfcb_refcnt != 0); \
if (--(mfcb)->mfcb_refcnt == 0 && \
((mfcb)->mfcb_marks & MFCB_MARK_CONDEMNED)) { \
release_mfc(mfcb); \
mutex_exit(&(mfcb)->mfcb_lock); \
struct mfcb *mfcbp;
ipst->ips_mfcs = kmem_zalloc(sizeof (struct mfcb) * MFCTBLSIZ,
struct mfcb *mfcbp;
kmem_free(ipst->ips_mfcs, sizeof (struct mfcb) * MFCTBLSIZ);
struct mfcb *ips_mfcs; /* kernel routing table */