/* * Initialize ATM kernel * * Performs any initialization required before things really get underway. * Called from ATM domain initialization or from first registration function * which gets called. * * Arguments: * none * * Returns: * none * */ void atm_initialize(void) { /* * Never called from interrupts, so no locking needed */ if (atm_init) return; atm_init = 1; atm_intrq.ifq_maxlen = ATM_INTRQ_MAX; netisr_register(NETISR_ATM, atm_intr, NULL); /* * Initialize subsystems */ atm_aal5_init(); /* * Prime the timer */ callout_init(&atm_timexp_ch); callout_reset(&atm_timexp_ch, hz / ATM_HZ, atm_timexp, NULL); /* * Start the compaction timer */ atm_timeout(&atm_compactimer, SPOOL_COMPACT, atm_compact); }
/* * Initialize ATM kernel * * Performs any initialization required before things really get underway. * Called from ATM domain initialization or from first registration function * which gets called. * * Arguments: * none * * Returns: * none * */ void atm_initialize() { /* * Never called from interrupts, so no locking needed */ if (atm_init) return; atm_init = 1; #ifndef __FreeBSD__ /* * Add ATM protocol family */ (void) protocol_family(&atmdomain, NULL, NULL); #endif atm_intrq.ifq_maxlen = ATM_INTRQ_MAX; #ifdef sgi atm_intr_index = register_isr(atm_intr); #endif /* * Initialize subsystems */ atm_aal5_init(); /* * Prime the timer */ (void) timeout(atm_timexp, (void *)0, hz/ATM_HZ); /* * Start the compaction timer */ atm_timeout(&atm_compactimer, SPOOL_COMPACT, atm_compact); }