ahb_ecb
struct ahb_ecb *sc_immed_ecb; /* an outstanding immediete command */
static void ahb_send_mbox(struct ahb_softc *, int, struct ahb_ecb *);
static void ahb_send_immed(struct ahb_softc *, u_int32_t, struct ahb_ecb *);
static void ahb_free_ecb(struct ahb_softc *, struct ahb_ecb *);
static struct ahb_ecb *ahb_get_ecb(struct ahb_softc *);
static struct ahb_ecb *ahb_ecb_lookup(struct ahb_softc *, uint32_t);
static void ahb_done(struct ahb_softc *, struct ahb_ecb *);
static int ahb_create_ecbs(struct ahb_softc *, struct ahb_ecb *, int);
static int ahb_init_ecb(struct ahb_softc *, struct ahb_ecb *);
ahb_send_mbox(struct ahb_softc *sc, int opcode, struct ahb_ecb *ecb)
ahb_send_immed(struct ahb_softc *sc, u_int32_t cmd, struct ahb_ecb *ecb)
struct ahb_ecb *ecb;
ahb_reset_ecb(struct ahb_softc *sc, struct ahb_ecb *ecb)
ahb_free_ecb(struct ahb_softc *sc, struct ahb_ecb *ecb)
ahb_init_ecb(struct ahb_softc *sc, struct ahb_ecb *ecb)
ahb_create_ecbs(struct ahb_softc *sc, struct ahb_ecb *ecbstore, int count)
struct ahb_ecb *ecb;
memset(ecbstore, 0, sizeof(struct ahb_ecb) * count);
static struct ahb_ecb *
struct ahb_ecb *ecb;
static struct ahb_ecb *
struct ahb_ecb *ecb = sc->sc_ecbhash[hashnum];
ahb_done(struct ahb_softc *sc, struct ahb_ecb *ecb)
AHB_ECB_OFF(ecb), sizeof(struct ahb_ecb),
#define ECBSIZE (AHB_ECB_MAX * sizeof(struct ahb_ecb))
struct ahb_ecb *ecb;
offsetof(struct ahb_ecb, ecb_sense);
offsetof(struct ahb_ecb, ecb_status);
offsetof(struct ahb_ecb, ahb_dma);
AHB_ECB_OFF(ecb), sizeof(struct ahb_ecb),
struct ahb_ecb *sc_ecbs; /* all our ecbs */
struct ahb_ecb *sc_ecbhash[ECB_HASH_SIZE];
TAILQ_HEAD(, ahb_ecb) sc_free_ecb;
struct ahb_ecb *ecb = arg;
TAILQ_ENTRY(ahb_ecb) chain;
struct ahb_ecb *nexthash;