mlx_command
void (*complete)(struct mlx_command *mc));
static int mlx_wait_command(struct mlx_command *mc);
static int mlx_poll_command(struct mlx_command *mc);
static void mlx_completeio(struct mlx_command *mc);
mlx_periodic_enquiry(struct mlx_command *mc)
static struct mlx_command *mlx_alloccmd(struct mlx_softc *sc);
static void mlx_releasecmd(struct mlx_command *mc);
static void mlx_freecmd(struct mlx_command *mc);
struct mlx_command *mc;
mc = (struct mlx_command *)arg;
struct mlx_command *mc;
static int mlx_getslot(struct mlx_command *mc);
static void mlx_setup_dmamap(struct mlx_command *mc,
static void mlx_unmapcmd(struct mlx_command *mc);
mlx_periodic_eventlog_respond(struct mlx_command *mc)
static int mlx_start(struct mlx_command *mc);
static char *mlx_diagnose_command(struct mlx_command *mc);
mlx_periodic_rebuild(struct mlx_command *mc)
struct mlx_command *mc;
mlx_pause_done(struct mlx_command *mc)
struct mlx_command *mc;
mc = (struct mlx_command *)arg;
mlx_enquire(struct mlx_softc *sc, int command, size_t bufsize, void (* complete)(struct mlx_command *mc))
struct mlx_command *mc;
struct mlx_command *mc;
struct mlx_command *mc;
struct mlx_command *mc;
struct mlx_command *mc;
mlx_wait_command(struct mlx_command *mc)
mlx_poll_command(struct mlx_command *mc)
struct mlx_command *mc;
mc = (struct mlx_command *)arg;
struct mlx_command *mc;
mlx_completeio(struct mlx_command *mc)
struct mlx_command *mc;
mc = (struct mlx_command *)arg;
struct mlx_command *mc;
mlx_getslot(struct mlx_command *mc)
mlx_setup_dmamap(struct mlx_command *mc, bus_dma_segment_t *segs, int nsegments,
mlx_unmapcmd(struct mlx_command *mc)
mlx_start(struct mlx_command *mc)
struct mlx_command *mc;
struct mlx_command *mc, *nc;
static struct mlx_command *
struct mlx_command *mc;
mc = (struct mlx_command *)malloc(sizeof(*mc), M_DEVBUF, M_NOWAIT | M_ZERO);
mlx_releasecmd(struct mlx_command *mc)
mlx_freecmd(struct mlx_command *mc)
mlx_v3_tryqueue(struct mlx_softc *sc, struct mlx_command *mc)
mlx_v4_tryqueue(struct mlx_softc *sc, struct mlx_command *mc)
mlx_v5_tryqueue(struct mlx_softc *sc, struct mlx_command *mc)
mlx_diagnose_command(struct mlx_command *mc)
static int mlx_v3_tryqueue(struct mlx_softc *sc, struct mlx_command *mc);
static int mlx_v4_tryqueue(struct mlx_softc *sc, struct mlx_command *mc);
static int mlx_v5_tryqueue(struct mlx_softc *sc, struct mlx_command *mc);
static void mlx_periodic_enquiry(struct mlx_command *mc);
static void mlx_periodic_eventlog_respond(struct mlx_command *mc);
static void mlx_periodic_rebuild(struct mlx_command *mc);
static void mlx_pause_done(struct mlx_command *mc);
mlx_make_type1(struct mlx_command *mc,
mlx_make_type2(struct mlx_command *mc,
mlx_make_type3(struct mlx_command *mc,
mlx_make_type4(struct mlx_command *mc,
mlx_make_type5(struct mlx_command *mc,
void (* mc_complete)(struct mlx_command *mc); /* completion handler */
TAILQ_HEAD(, mlx_command) mlx_freecmds; /* command structures available for reuse */
TAILQ_HEAD(, mlx_command) mlx_work; /* active commands */
struct mlx_command *mlx_busycmd[MLX_NSLOTS]; /* busy commands */
int (* mlx_tryqueue)(struct mlx_softc *sc, struct mlx_command *mc);
TAILQ_ENTRY(mlx_command) mc_link; /* list linkage */
mlx_perform(unit, mlx_command, (void *)&cmd);
mlx_perform(unit, mlx_command, (void *)&cmd);
mlx_perform(unit, mlx_command, &cmd);
mlx_perform(unit, mlx_command, (void *)&cmd);
extern void mlx_command(int fd, void *arg);