diff options
Diffstat (limited to 'sys/dev/hea/hea_freebsd.c')
-rw-r--r-- | sys/dev/hea/hea_freebsd.c | 19 |
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); } |