ge
m &= ge(r->v[0],237);
struct mly_command_generic *ge = (struct mly_command_generic *)mc->mc_packet;
mly_printf(sc, " command_id %d\n", ge->command_id);
mly_printf(sc, " opcode %d\n", ge->opcode);
ge->command_control.force_unit_access,
ge->command_control.disable_page_out,
ge->command_control.extended_sg_table,
(ge->command_control.data_direction == MLY_CCB_WRITE) ? "WRITE" : "READ",
ge->command_control.no_auto_sense,
ge->command_control.disable_disconnect);
mly_printf(sc, " data_size %d\n", ge->data_size);
mly_printf(sc, " sense_buffer_address 0x%llx\n", ge->sense_buffer_address);
mly_printf(sc, " lun %d\n", ge->addr.phys.lun);
mly_printf(sc, " target %d\n", ge->addr.phys.target);
mly_printf(sc, " channel %d\n", ge->addr.phys.channel);
mly_printf(sc, " logical device %d\n", ge->addr.log.logdev);
mly_printf(sc, " controller %d\n", ge->addr.phys.controller);
ge->timeout.value,
(ge->timeout.scale == MLY_TIMEOUT_SECONDS) ? "seconds" :
((ge->timeout.scale == MLY_TIMEOUT_MINUTES) ? "minutes" : "hours"));
mly_printf(sc, " maximum_sense_size %d\n", ge->maximum_sense_size);
switch(ge->opcode) {
if (ge->command_control.extended_sg_table) {
ge->transfer.indirect.table_physaddr[0], ge->transfer.indirect.entries[0]);
ge->transfer.direct.sg[0].physaddr, ge->transfer.direct.sg[0].length);
ge->transfer.direct.sg[1].physaddr, ge->transfer.direct.sg[1].length);