<dec f='src/src/sys/external/isc/atheros_hal/dist/ah.h' l='878' type='struct ath_hal * ath_hal_attach(__uint16_t devid, HAL_SOFTC , HAL_BUS_TAG , HAL_BUS_HANDLE , HAL_STATUS * status)'/>
<doc f='src/src/sys/external/isc/atheros_hal/dist/ah.h' l='865'>/*
 * Attach the HAL for use with the specified device.  The device is
 * defined by the PCI device ID.  The caller provides an opaque pointer
 * to an upper-layer data structure (HAL_SOFTC) that is stored in the
 * HAL state block for later use.  Hardware register accesses are done
 * using the specified bus tag and handle.  On successful return a
 * reference to a state block is returned that must be supplied in all
 * subsequent HAL calls.  Storage associated with this reference is
 * dynamically allocated and must be freed by calling the ah_detach
 * method when the client is done.  If the attach operation fails a
 * null (AH_NULL) reference will be returned and a status code will
 * be returned if the status parameter is non-zero.
 */</doc>
<use f='src/src/sys/dev/ic/ath.c' l='273' u='c' c='ath_attach'/>
<def f='src/src/sys/external/isc/atheros_hal/dist/ah.c' l='52' ll='79' type='struct ath_hal * ath_hal_attach(__uint16_t devid, HAL_SOFTC sc, HAL_BUS_TAG st, HAL_BUS_HANDLE sh, HAL_STATUS * error)'/>
<doc f='src/src/sys/external/isc/atheros_hal/dist/ah.c' l='45'>/*
 * Attach detects device chip revisions, initializes the hwLayer
 * function list, reads EEPROM information,
 * selects reset vectors, and performs a short self test.
 * Any failures will return an error that should cause a hardware
 * disable.
 */</doc>
