summaryrefslogtreecommitdiffstats
path: root/sys/dev/hea/hea_freebsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hea/hea_freebsd.c')
-rw-r--r--sys/dev/hea/hea_freebsd.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/sys/dev/hea/hea_freebsd.c b/sys/dev/hea/hea_freebsd.c
index 7499401..08b9e75 100644
--- a/sys/dev/hea/hea_freebsd.c
+++ b/sys/dev/hea/hea_freebsd.c
@@ -158,13 +158,25 @@ hea_attach (device_t dev)
eup = &sc->eup;
error = 0;
+ eni_vcc_zone = uma_zcreate("eni vcc", sizeof(Eni_vcc), NULL,
+ NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+ if (eni_vcc_zone == NULL)
+ panic("hea_attach: uma_zcreate vcc");
+ uma_zone_set_max(eni_vcc_zone, 100);
+
+ eni_nif_zone = uma_zcreate("eni nif", sizeof(struct atm_nif), NULL,
+ NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
+ if (eni_nif_zone == NULL)
+ panic("hea_attach: uma_zcreate nif");
+ uma_zone_set_max(eni_nif_zone, 52);
+
/*
* Start initializing it
*/
eup->eu_unit = device_get_unit(dev);
eup->eu_mtu = ENI_IFF_MTU;
- eup->eu_vcc_pool = &eni_vcc_pool;
- eup->eu_nif_pool = &eni_nif_pool;
+ eup->eu_vcc_zone = eni_vcc_zone;
+ eup->eu_nif_zone = eni_nif_zone;
eup->eu_ioctl = eni_atm_ioctl;
eup->eu_instvcc = eni_instvcc;
eup->eu_openvcc = eni_openvcc;
@@ -329,6 +341,9 @@ hea_detach (device_t dev)
hea_free(dev);
+ uma_zdestroy(eni_vcc_zone);
+ uma_zdestroy(eni_nif_zone);
+
return (error);
}
OpenPOWER on IntegriCloud