ifp->if_flags |= IFF_RUNNING;
1
ifp->if_flags &=
~ IFF_OACTIVE;
2
1
Sets the
IFF_RUNNING
flag to mark the device as running.
2
Clears the
IFF_OACTIVE
flag to indicate that there is no output
outstanding.
8.2.16 Starting the Autosense Kernel Thread
The following code shows how the
el_init_locked( )
routine starts the
autosense kernel thread. Only network device drivers that implement an
autosense kernel thread perform this task.
if (sc->lm_media_mode == LAN_MODE_AUTOSENSE) {
1
sc->lm_media_state = LAN_MEDIA_STATE_SENSING;
thread_wakeup_one((vm_offset_t)&sc->autosense_flag);
}
1
If in autosense mode, starts the autosense kernel thread.
8.2.17 Starting the Transmit of Pending Packets
The following code shows how the
el_init_locked( )
routine starts
transmitting pending packets. Because
el_init_locked( )
may have
been called as a result of an error or a reset operation, it needs to examine
its transmit queue for any pending transmit requests. If there are any, it
starts transmitting them.
if (ifp->if_snd.ifq_head)
1
el_start_locked(sc, ifp);
return ESUCCESS;
2
}
1
If there are any pending packets, starts transmitting them by calling
the
el_start_locked( )
routine.
2
Returns
ESUCCESS
to the calling routine.
Implementing the Initialization Section 8–11