/*
 * DO NOT EDIT - This file is automatically generated
 *		 from the following source files:
 *
 * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#56 $
 * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#39 $
 */

#include "aic7xxx_osm.h"

static ahc_reg_parse_entry_t SCSISEQ_parse_table[] = {
	{ "SCSIRSTO",		0x01, 0x01 },
	{ "ENAUTOATNP",		0x02, 0x02 },
	{ "ENAUTOATNI",		0x04, 0x04 },
	{ "ENAUTOATNO",		0x08, 0x08 },
	{ "ENRSELI",		0x10, 0x10 },
	{ "ENSELI",		0x20, 0x20 },
	{ "ENSELO",		0x40, 0x40 },
	{ "TEMODE",		0x80, 0x80 }
};

int
ahc_scsiseq_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSISEQ_parse_table, 8, "SCSISEQ",
	    0x00, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SXFRCTL0_parse_table[] = {
	{ "CLRCHN",		0x02, 0x02 },
	{ "SCAMEN",		0x04, 0x04 },
	{ "SPIOEN",		0x08, 0x08 },
	{ "CLRSTCNT",		0x10, 0x10 },
	{ "FAST20",		0x20, 0x20 },
	{ "DFPEXP",		0x40, 0x40 },
	{ "DFON",		0x80, 0x80 }
};

int
ahc_sxfrctl0_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SXFRCTL0_parse_table, 7, "SXFRCTL0",
	    0x01, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SXFRCTL1_parse_table[] = {
	{ "STPWEN",		0x01, 0x01 },
	{ "ACTNEGEN",		0x02, 0x02 },
	{ "ENSTIMER",		0x04, 0x04 },
	{ "ENSPCHK",		0x20, 0x20 },
	{ "SWRAPEN",		0x40, 0x40 },
	{ "BITBUCKET",		0x80, 0x80 },
	{ "STIMESEL",		0x18, 0x18 }
};

int
ahc_sxfrctl1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SXFRCTL1_parse_table, 7, "SXFRCTL1",
	    0x02, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSISIGO_parse_table[] = {
	{ "ACKO",		0x01, 0x01 },
	{ "REQO",		0x02, 0x02 },
	{ "BSYO",		0x04, 0x04 },
	{ "SELO",		0x08, 0x08 },
	{ "ATNO",		0x10, 0x10 },
	{ "MSGO",		0x20, 0x20 },
	{ "IOO",		0x40, 0x40 },
	{ "CDO",		0x80, 0x80 },
	{ "P_DATAOUT",		0x00, 0x00 },
	{ "P_DATAIN",		0x40, 0x40 },
	{ "P_COMMAND",		0x80, 0x80 },
	{ "P_MESGOUT",		0xa0, 0xa0 },
	{ "P_STATUS",		0xc0, 0xc0 },
	{ "PHASE_MASK",		0xe0, 0xe0 },
	{ "P_MESGIN",		0xe0, 0xe0 }
};

int
ahc_scsisigo_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSISIGO_parse_table, 15, "SCSISIGO",
	    0x03, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSISIGI_parse_table[] = {
	{ "ACKI",		0x01, 0x01 },
	{ "REQI",		0x02, 0x02 },
	{ "BSYI",		0x04, 0x04 },
	{ "SELI",		0x08, 0x08 },
	{ "ATNI",		0x10, 0x10 },
	{ "MSGI",		0x20, 0x20 },
	{ "IOI",		0x40, 0x40 },
	{ "CDI",		0x80, 0x80 },
	{ "P_DATAOUT",		0x00, 0x00 },
	{ "P_DATAOUT_DT",	0x20, 0x20 },
	{ "P_DATAIN",		0x40, 0x40 },
	{ "P_DATAIN_DT",	0x60, 0x60 },
	{ "P_COMMAND",		0x80, 0x80 },
	{ "P_MESGOUT",		0xa0, 0xa0 },
	{ "P_STATUS",		0xc0, 0xc0 },
	{ "PHASE_MASK",		0xe0, 0xe0 },
	{ "P_MESGIN",		0xe0, 0xe0 }
};

int
ahc_scsisigi_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSISIGI_parse_table, 17, "SCSISIGI",
	    0x03, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSIRATE_parse_table[] = {
	{ "SINGLE_EDGE",	0x10, 0x10 },
	{ "ENABLE_CRC",		0x40, 0x40 },
	{ "WIDEXFER",		0x80, 0x80 },
	{ "SXFR_ULTRA2",	0x0f, 0x0f },
	{ "SOFS",		0x0f, 0x0f },
	{ "SXFR",		0x70, 0x70 }
};

int
ahc_scsirate_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSIRATE_parse_table, 6, "SCSIRATE",
	    0x04, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSIID_parse_table[] = {
	{ "TWIN_CHNLB",		0x80, 0x80 },
	{ "OID",		0x0f, 0x0f },
	{ "TWIN_TID",		0x70, 0x70 },
	{ "SOFS_ULTRA2",	0x7f, 0x7f },
	{ "TID",		0xf0, 0xf0 }
};

int
ahc_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSIID_parse_table, 5, "SCSIID",
	    0x05, regvalue, cur_col, wrap));
}

int
ahc_scsidatl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCSIDATL",
	    0x06, regvalue, cur_col, wrap));
}

int
ahc_scsidath_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCSIDATH",
	    0x07, regvalue, cur_col, wrap));
}

int
ahc_stcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "STCNT",
	    0x08, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t OPTIONMODE_parse_table[] = {
	{ "DIS_MSGIN_DUALEDGE",	0x01, 0x01 },
	{ "AUTO_MSGOUT_DE",	0x02, 0x02 },
	{ "SCSIDATL_IMGEN",	0x04, 0x04 },
	{ "EXPPHASEDIS",	0x08, 0x08 },
	{ "BUSFREEREV",		0x10, 0x10 },
	{ "ATNMGMNTEN",		0x20, 0x20 },
	{ "AUTOACKEN",		0x40, 0x40 },
	{ "AUTORATEEN",		0x80, 0x80 },
	{ "OPTIONMODE_DEFAULTS",0x03, 0x03 }
};

int
ahc_optionmode_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(OPTIONMODE_parse_table, 9, "OPTIONMODE",
	    0x08, regvalue, cur_col, wrap));
}

int
ahc_targcrccnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "TARGCRCCNT",
	    0x0a, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t CLRSINT0_parse_table[] = {
	{ "CLRSPIORDY",		0x02, 0x02 },
	{ "CLRSWRAP",		0x08, 0x08 },
	{ "CLRIOERR",		0x08, 0x08 },
	{ "CLRSELINGO",		0x10, 0x10 },
	{ "CLRSELDI",		0x20, 0x20 },
	{ "CLRSELDO",		0x40, 0x40 }
};

int
ahc_clrsint0_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(CLRSINT0_parse_table, 6, "CLRSINT0",
	    0x0b, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SSTAT0_parse_table[] = {
	{ "DMADONE",		0x01, 0x01 },
	{ "SPIORDY",		0x02, 0x02 },
	{ "SDONE",		0x04, 0x04 },
	{ "SWRAP",		0x08, 0x08 },
	{ "IOERR",		0x08, 0x08 },
	{ "SELINGO",		0x10, 0x10 },
	{ "SELDI",		0x20, 0x20 },
	{ "SELDO",		0x40, 0x40 },
	{ "TARGET",		0x80, 0x80 }
};

int
ahc_sstat0_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SSTAT0_parse_table, 9, "SSTAT0",
	    0x0b, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t CLRSINT1_parse_table[] = {
	{ "CLRREQINIT",		0x01, 0x01 },
	{ "CLRPHASECHG",	0x02, 0x02 },
	{ "CLRSCSIPERR",	0x04, 0x04 },
	{ "CLRBUSFREE",		0x08, 0x08 },
	{ "CLRSCSIRSTI",	0x20, 0x20 },
	{ "CLRATNO",		0x40, 0x40 },
	{ "CLRSELTIMEO",	0x80, 0x80 }
};

int
ahc_clrsint1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(CLRSINT1_parse_table, 7, "CLRSINT1",
	    0x0c, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SSTAT1_parse_table[] = {
	{ "REQINIT",		0x01, 0x01 },
	{ "PHASECHG",		0x02, 0x02 },
	{ "SCSIPERR",		0x04, 0x04 },
	{ "BUSFREE",		0x08, 0x08 },
	{ "PHASEMIS",		0x10, 0x10 },
	{ "SCSIRSTI",		0x20, 0x20 },
	{ "ATNTARG",		0x40, 0x40 },
	{ "SELTO",		0x80, 0x80 }
};

int
ahc_sstat1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SSTAT1_parse_table, 8, "SSTAT1",
	    0x0c, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SSTAT2_parse_table[] = {
	{ "DUAL_EDGE_ERR",	0x01, 0x01 },
	{ "CRCREQERR",		0x02, 0x02 },
	{ "CRCENDERR",		0x04, 0x04 },
	{ "CRCVALERR",		0x08, 0x08 },
	{ "EXP_ACTIVE",		0x10, 0x10 },
	{ "SHVALID",		0x40, 0x40 },
	{ "OVERRUN",		0x80, 0x80 },
	{ "SFCNT",		0x1f, 0x1f }
};

int
ahc_sstat2_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SSTAT2_parse_table, 8, "SSTAT2",
	    0x0d, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SSTAT3_parse_table[] = {
	{ "OFFCNT",		0x0f, 0x0f },
	{ "U2OFFCNT",		0x7f, 0x7f },
	{ "SCSICNT",		0xf0, 0xf0 }
};

int
ahc_sstat3_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SSTAT3_parse_table, 3, "SSTAT3",
	    0x0e, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSIID_ULTRA2_parse_table[] = {
	{ "OID",		0x0f, 0x0f },
	{ "TID",		0xf0, 0xf0 }
};

int
ahc_scsiid_ultra2_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSIID_ULTRA2_parse_table, 2, "SCSIID_ULTRA2",
	    0x0f, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SIMODE0_parse_table[] = {
	{ "ENDMADONE",		0x01, 0x01 },
	{ "ENSPIORDY",		0x02, 0x02 },
	{ "ENSDONE",		0x04, 0x04 },
	{ "ENSWRAP",		0x08, 0x08 },
	{ "ENIOERR",		0x08, 0x08 },
	{ "ENSELINGO",		0x10, 0x10 },
	{ "ENSELDI",		0x20, 0x20 },
	{ "ENSELDO",		0x40, 0x40 }
};

int
ahc_simode0_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SIMODE0_parse_table, 8, "SIMODE0",
	    0x10, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SIMODE1_parse_table[] = {
	{ "ENREQINIT",		0x01, 0x01 },
	{ "ENPHASECHG",		0x02, 0x02 },
	{ "ENSCSIPERR",		0x04, 0x04 },
	{ "ENBUSFREE",		0x08, 0x08 },
	{ "ENPHASEMIS",		0x10, 0x10 },
	{ "ENSCSIRST",		0x20, 0x20 },
	{ "ENATNTARG",		0x40, 0x40 },
	{ "ENSELTIMO",		0x80, 0x80 }
};

int
ahc_simode1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SIMODE1_parse_table, 8, "SIMODE1",
	    0x11, regvalue, cur_col, wrap));
}

int
ahc_scsibusl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCSIBUSL",
	    0x12, regvalue, cur_col, wrap));
}

int
ahc_scsibush_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCSIBUSH",
	    0x13, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SXFRCTL2_parse_table[] = {
	{ "CMDDMAEN",		0x08, 0x08 },
	{ "AUTORSTDIS",		0x10, 0x10 },
	{ "ASYNC_SETUP",	0x07, 0x07 }
};

int
ahc_sxfrctl2_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SXFRCTL2_parse_table, 3, "SXFRCTL2",
	    0x13, regvalue, cur_col, wrap));
}

int
ahc_shaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SHADDR",
	    0x14, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SELTIMER_parse_table[] = {
	{ "STAGE1",		0x01, 0x01 },
	{ "STAGE2",		0x02, 0x02 },
	{ "STAGE3",		0x04, 0x04 },
	{ "STAGE4",		0x08, 0x08 },
	{ "STAGE5",		0x10, 0x10 },
	{ "STAGE6",		0x20, 0x20 }
};

int
ahc_seltimer_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SELTIMER_parse_table, 6, "SELTIMER",
	    0x18, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SELID_parse_table[] = {
	{ "ONEBIT",		0x08, 0x08 },
	{ "SELID_MASK",		0xf0, 0xf0 }
};

int
ahc_selid_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SELID_parse_table, 2, "SELID",
	    0x19, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCAMCTL_parse_table[] = {
	{ "DFLTTID",		0x10, 0x10 },
	{ "ALTSTIM",		0x20, 0x20 },
	{ "CLRSCAMSELID",	0x40, 0x40 },
	{ "ENSCAMSELO",		0x80, 0x80 },
	{ "SCAMLVL",		0x03, 0x03 }
};

int
ahc_scamctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCAMCTL_parse_table, 5, "SCAMCTL",
	    0x1a, regvalue, cur_col, wrap));
}

int
ahc_targid_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "TARGID",
	    0x1b, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SPIOCAP_parse_table[] = {
	{ "SSPIOCPS",		0x01, 0x01 },
	{ "ROM",		0x02, 0x02 },
	{ "EEPROM",		0x04, 0x04 },
	{ "SEEPROM",		0x08, 0x08 },
	{ "EXT_BRDCTL",		0x10, 0x10 },
	{ "SOFTCMDEN",		0x20, 0x20 },
	{ "SOFT0",		0x40, 0x40 },
	{ "SOFT1",		0x80, 0x80 }
};

int
ahc_spiocap_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SPIOCAP_parse_table, 8, "SPIOCAP",
	    0x1b, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t BRDCTL_parse_table[] = {
	{ "BRDCTL0",		0x01, 0x01 },
	{ "BRDSTB_ULTRA2",	0x01, 0x01 },
	{ "BRDCTL1",		0x02, 0x02 },
	{ "BRDRW_ULTRA2",	0x02, 0x02 },
	{ "BRDRW",		0x04, 0x04 },
	{ "BRDDAT2",		0x04, 0x04 },
	{ "BRDCS",		0x08, 0x08 },
	{ "BRDDAT3",		0x08, 0x08 },
	{ "BRDSTB",		0x10, 0x10 },
	{ "BRDDAT4",		0x10, 0x10 },
	{ "BRDDAT5",		0x20, 0x20 },
	{ "BRDDAT6",		0x40, 0x40 },
	{ "BRDDAT7",		0x80, 0x80 }
};

int
ahc_brdctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(BRDCTL_parse_table, 13, "BRDCTL",
	    0x1d, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SEECTL_parse_table[] = {
	{ "SEEDI",		0x01, 0x01 },
	{ "SEEDO",		0x02, 0x02 },
	{ "SEECK",		0x04, 0x04 },
	{ "SEECS",		0x08, 0x08 },
	{ "SEERDY",		0x10, 0x10 },
	{ "SEEMS",		0x20, 0x20 },
	{ "EXTARBREQ",		0x40, 0x40 },
	{ "EXTARBACK",		0x80, 0x80 }
};

int
ahc_seectl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SEECTL_parse_table, 8, "SEECTL",
	    0x1e, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SBLKCTL_parse_table[] = {
	{ "XCVR",		0x01, 0x01 },
	{ "SELWIDE",		0x02, 0x02 },
	{ "ENAB20",		0x04, 0x04 },
	{ "SELBUSB",		0x08, 0x08 },
	{ "ENAB40",		0x08, 0x08 },
	{ "AUTOFLUSHDIS",	0x20, 0x20 },
	{ "DIAGLEDON",		0x40, 0x40 },
	{ "DIAGLEDEN",		0x80, 0x80 }
};

int
ahc_sblkctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SBLKCTL_parse_table, 8, "SBLKCTL",
	    0x1f, regvalue, cur_col, wrap));
}

int
ahc_busy_targets_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "BUSY_TARGETS",
	    0x20, regvalue, cur_col, wrap));
}

int
ahc_ultra_enb_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "ULTRA_ENB",
	    0x30, regvalue, cur_col, wrap));
}

int
ahc_disc_dsb_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "DISC_DSB",
	    0x32, regvalue, cur_col, wrap));
}

int
ahc_cmdsize_table_tail_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CMDSIZE_TABLE_TAIL",
	    0x34, regvalue, cur_col, wrap));
}

int
ahc_mwi_residual_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "MWI_RESIDUAL",
	    0x38, regvalue, cur_col, wrap));
}

int
ahc_next_queued_scb_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "NEXT_QUEUED_SCB",
	    0x39, regvalue, cur_col, wrap));
}

int
ahc_msg_out_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "MSG_OUT",
	    0x3a, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t DMAPARAMS_parse_table[] = {
	{ "FIFORESET",		0x01, 0x01 },
	{ "FIFOFLUSH",		0x02, 0x02 },
	{ "DIRECTION",		0x04, 0x04 },
	{ "HDMAEN",		0x08, 0x08 },
	{ "HDMAENACK",		0x08, 0x08 },
	{ "SDMAEN",		0x10, 0x10 },
	{ "SDMAENACK",		0x10, 0x10 },
	{ "SCSIEN",		0x20, 0x20 },
	{ "WIDEODD",		0x40, 0x40 },
	{ "PRELOADEN",		0x80, 0x80 }
};

int
ahc_dmaparams_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(DMAPARAMS_parse_table, 10, "DMAPARAMS",
	    0x3b, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SEQ_FLAGS_parse_table[] = {
	{ "NO_DISCONNECT",	0x01, 0x01 },
	{ "SPHASE_PENDING",	0x02, 0x02 },
	{ "DPHASE_PENDING",	0x04, 0x04 },
	{ "CMDPHASE_PENDING",	0x08, 0x08 },
	{ "TARG_CMD_PENDING",	0x10, 0x10 },
	{ "DPHASE",		0x20, 0x20 },
	{ "NO_CDB_SENT",	0x40, 0x40 },
	{ "TARGET_CMD_IS_TAGGED",0x40, 0x40 },
	{ "NOT_IDENTIFIED",	0x80, 0x80 }
};

int
ahc_seq_flags_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SEQ_FLAGS_parse_table, 9, "SEQ_FLAGS",
	    0x3c, regvalue, cur_col, wrap));
}

int
ahc_saved_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SAVED_SCSIID",
	    0x3d, regvalue, cur_col, wrap));
}

int
ahc_saved_lun_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SAVED_LUN",
	    0x3e, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t LASTPHASE_parse_table[] = {
	{ "MSGI",		0x20, 0x20 },
	{ "IOI",		0x40, 0x40 },
	{ "CDI",		0x80, 0x80 },
	{ "P_DATAOUT",		0x00, 0x00 },
	{ "P_BUSFREE",		0x01, 0x01 },
	{ "P_DATAIN",		0x40, 0x40 },
	{ "P_COMMAND",		0x80, 0x80 },
	{ "P_MESGOUT",		0xa0, 0xa0 },
	{ "P_STATUS",		0xc0, 0xc0 },
	{ "PHASE_MASK",		0xe0, 0xe0 },
	{ "P_MESGIN",		0xe0, 0xe0 }
};

int
ahc_lastphase_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(LASTPHASE_parse_table, 11, "LASTPHASE",
	    0x3f, regvalue, cur_col, wrap));
}

int
ahc_waiting_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "WAITING_SCBH",
	    0x40, regvalue, cur_col, wrap));
}

int
ahc_disconnected_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "DISCONNECTED_SCBH",
	    0x41, regvalue, cur_col, wrap));
}

int
ahc_free_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "FREE_SCBH",
	    0x42, regvalue, cur_col, wrap));
}

int
ahc_complete_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "COMPLETE_SCBH",
	    0x43, regvalue, cur_col, wrap));
}

int
ahc_hscb_addr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "HSCB_ADDR",
	    0x44, regvalue, cur_col, wrap));
}

int
ahc_shared_data_addr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SHARED_DATA_ADDR",
	    0x48, regvalue, cur_col, wrap));
}

int
ahc_kernel_qinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "KERNEL_QINPOS",
	    0x4c, regvalue, cur_col, wrap));
}

int
ahc_qinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "QINPOS",
	    0x4d, regvalue, cur_col, wrap));
}

int
ahc_qoutpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "QOUTPOS",
	    0x4e, regvalue, cur_col, wrap));
}

int
ahc_kernel_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "KERNEL_TQINPOS",
	    0x4f, regvalue, cur_col, wrap));
}

int
ahc_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "TQINPOS",
	    0x50, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t ARG_1_parse_table[] = {
	{ "CONT_TARG_SESSION",	0x02, 0x02 },
	{ "CONT_MSG_LOOP",	0x04, 0x04 },
	{ "EXIT_MSG_LOOP",	0x08, 0x08 },
	{ "MSGOUT_PHASEMIS",	0x10, 0x10 },
	{ "SEND_REJ",		0x20, 0x20 },
	{ "SEND_SENSE",		0x40, 0x40 },
	{ "SEND_MSG",		0x80, 0x80 }
};

int
ahc_arg_1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(ARG_1_parse_table, 7, "ARG_1",
	    0x51, regvalue, cur_col, wrap));
}

int
ahc_arg_2_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "ARG_2",
	    0x52, regvalue, cur_col, wrap));
}

int
ahc_last_msg_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "LAST_MSG",
	    0x53, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSISEQ_TEMPLATE_parse_table[] = {
	{ "ENAUTOATNP",		0x02, 0x02 },
	{ "ENAUTOATNI",		0x04, 0x04 },
	{ "ENAUTOATNO",		0x08, 0x08 },
	{ "ENRSELI",		0x10, 0x10 },
	{ "ENSELI",		0x20, 0x20 },
	{ "ENSELO",		0x40, 0x40 }
};

int
ahc_scsiseq_template_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSISEQ_TEMPLATE_parse_table, 6, "SCSISEQ_TEMPLATE",
	    0x54, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t HA_274_BIOSGLOBAL_parse_table[] = {
	{ "HA_274_EXTENDED_TRANS",0x01, 0x01 }
};

int
ahc_ha_274_biosglobal_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(HA_274_BIOSGLOBAL_parse_table, 1, "HA_274_BIOSGLOBAL",
	    0x56, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SEQ_FLAGS2_parse_table[] = {
	{ "SCB_DMA",		0x01, 0x01 },
	{ "TARGET_MSG_PENDING",	0x02, 0x02 }
};

int
ahc_seq_flags2_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SEQ_FLAGS2_parse_table, 2, "SEQ_FLAGS2",
	    0x57, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSICONF_parse_table[] = {
	{ "ENSPCHK",		0x20, 0x20 },
	{ "RESET_SCSI",		0x40, 0x40 },
	{ "TERM_ENB",		0x80, 0x80 },
	{ "HSCSIID",		0x07, 0x07 },
	{ "HWSCSIID",		0x0f, 0x0f }
};

int
ahc_scsiconf_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSICONF_parse_table, 5, "SCSICONF",
	    0x5a, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t INTDEF_parse_table[] = {
	{ "EDGE_TRIG",		0x80, 0x80 },
	{ "VECTOR",		0x0f, 0x0f }
};

int
ahc_intdef_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(INTDEF_parse_table, 2, "INTDEF",
	    0x5c, regvalue, cur_col, wrap));
}

int
ahc_hostconf_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "HOSTCONF",
	    0x5d, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t HA_274_BIOSCTRL_parse_table[] = {
	{ "CHANNEL_B_PRIMARY",	0x08, 0x08 },
	{ "BIOSMODE",		0x30, 0x30 },
	{ "BIOSDISABLED",	0x30, 0x30 }
};

int
ahc_ha_274_biosctrl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(HA_274_BIOSCTRL_parse_table, 3, "HA_274_BIOSCTRL",
	    0x5f, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SEQCTL_parse_table[] = {
	{ "LOADRAM",		0x01, 0x01 },
	{ "SEQRESET",		0x02, 0x02 },
	{ "STEP",		0x04, 0x04 },
	{ "BRKADRINTEN",	0x08, 0x08 },
	{ "FASTMODE",		0x10, 0x10 },
	{ "FAILDIS",		0x20, 0x20 },
	{ "PAUSEDIS",		0x40, 0x40 },
	{ "PERRORDIS",		0x80, 0x80 }
};

int
ahc_seqctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SEQCTL_parse_table, 8, "SEQCTL",
	    0x60, regvalue, cur_col, wrap));
}

int
ahc_seqram_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SEQRAM",
	    0x61, regvalue, cur_col, wrap));
}

int
ahc_seqaddr0_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SEQADDR0",
	    0x62, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SEQADDR1_parse_table[] = {
	{ "SEQADDR1_MASK",	0x01, 0x01 }
};

int
ahc_seqaddr1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SEQADDR1_parse_table, 1, "SEQADDR1",
	    0x63, regvalue, cur_col, wrap));
}

int
ahc_accum_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "ACCUM",
	    0x64, regvalue, cur_col, wrap));
}

int
ahc_sindex_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SINDEX",
	    0x65, regvalue, cur_col, wrap));
}

int
ahc_dindex_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "DINDEX",
	    0x66, regvalue, cur_col, wrap));
}

int
ahc_allones_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "ALLONES",
	    0x69, regvalue, cur_col, wrap));
}

int
ahc_allzeros_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "ALLZEROS",
	    0x6a, regvalue, cur_col, wrap));
}

int
ahc_none_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "NONE",
	    0x6a, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t FLAGS_parse_table[] = {
	{ "CARRY",		0x01, 0x01 },
	{ "ZERO",		0x02, 0x02 }
};

int
ahc_flags_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(FLAGS_parse_table, 2, "FLAGS",
	    0x6b, regvalue, cur_col, wrap));
}

int
ahc_sindir_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SINDIR",
	    0x6c, regvalue, cur_col, wrap));
}

int
ahc_dindir_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "DINDIR",
	    0x6d, regvalue, cur_col, wrap));
}

int
ahc_function1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "FUNCTION1",
	    0x6e, regvalue, cur_col, wrap));
}

int
ahc_stack_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "STACK",
	    0x6f, regvalue, cur_col, wrap));
}

int
ahc_targ_offset_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "TARG_OFFSET",
	    0x70, regvalue, cur_col, wrap));
}

int
ahc_sram_base_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SRAM_BASE",
	    0x70, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t BCTL_parse_table[] = {
	{ "ENABLE",		0x01, 0x01 },
	{ "ACE",		0x08, 0x08 }
};

int
ahc_bctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(BCTL_parse_table, 2, "BCTL",
	    0x84, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t DSCOMMAND0_parse_table[] = {
	{ "CIOPARCKEN",		0x01, 0x01 },
	{ "USCBSIZE32",		0x02, 0x02 },
	{ "RAMPS",		0x04, 0x04 },
	{ "INTSCBRAMSEL",	0x08, 0x08 },
	{ "EXTREQLCK",		0x10, 0x10 },
	{ "MPARCKEN",		0x20, 0x20 },
	{ "DPARCKEN",		0x40, 0x40 },
	{ "CACHETHEN",		0x80, 0x80 }
};

int
ahc_dscommand0_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(DSCOMMAND0_parse_table, 8, "DSCOMMAND0",
	    0x84, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t BUSTIME_parse_table[] = {
	{ "BON",		0x0f, 0x0f },
	{ "BOFF",		0xf0, 0xf0 }
};

int
ahc_bustime_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(BUSTIME_parse_table, 2, "BUSTIME",
	    0x85, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t DSCOMMAND1_parse_table[] = {
	{ "HADDLDSEL0",		0x01, 0x01 },
	{ "HADDLDSEL1",		0x02, 0x02 },
	{ "DSLATT",		0xfc, 0xfc }
};

int
ahc_dscommand1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(DSCOMMAND1_parse_table, 3, "DSCOMMAND1",
	    0x85, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t BUSSPD_parse_table[] = {
	{ "STBON",		0x07, 0x07 },
	{ "STBOFF",		0x38, 0x38 },
	{ "DFTHRSH_75",		0x80, 0x80 },
	{ "DFTHRSH",		0xc0, 0xc0 },
	{ "DFTHRSH_100",	0xc0, 0xc0 }
};

int
ahc_busspd_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(BUSSPD_parse_table, 5, "BUSSPD",
	    0x86, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t HS_MAILBOX_parse_table[] = {
	{ "SEQ_MAILBOX",	0x0f, 0x0f },
	{ "HOST_TQINPOS",	0x80, 0x80 },
	{ "HOST_MAILBOX",	0xf0, 0xf0 }
};

int
ahc_hs_mailbox_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(HS_MAILBOX_parse_table, 3, "HS_MAILBOX",
	    0x86, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t DSPCISTATUS_parse_table[] = {
	{ "DFTHRSH_100",	0xc0, 0xc0 }
};

int
ahc_dspcistatus_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(DSPCISTATUS_parse_table, 1, "DSPCISTATUS",
	    0x86, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t HCNTRL_parse_table[] = {
	{ "CHIPRST",		0x01, 0x01 },
	{ "CHIPRSTACK",		0x01, 0x01 },
	{ "INTEN",		0x02, 0x02 },
	{ "PAUSE",		0x04, 0x04 },
	{ "IRQMS",		0x08, 0x08 },
	{ "SWINT",		0x10, 0x10 },
	{ "POWRDN",		0x40, 0x40 }
};

int
ahc_hcntrl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(HCNTRL_parse_table, 7, "HCNTRL",
	    0x87, regvalue, cur_col, wrap));
}

int
ahc_haddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "HADDR",
	    0x88, regvalue, cur_col, wrap));
}

int
ahc_hcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "HCNT",
	    0x8c, regvalue, cur_col, wrap));
}

int
ahc_scbptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCBPTR",
	    0x90, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t INTSTAT_parse_table[] = {
	{ "SEQINT",		0x01, 0x01 },
	{ "CMDCMPLT",		0x02, 0x02 },
	{ "SCSIINT",		0x04, 0x04 },
	{ "BRKADRINT",		0x08, 0x08 },
	{ "BAD_PHASE",		0x01, 0x01 },
	{ "INT_PEND",		0x0f, 0x0f },
	{ "SEND_REJECT",	0x11, 0x11 },
	{ "PROTO_VIOLATION",	0x21, 0x21 },
	{ "NO_MATCH",		0x31, 0x31 },
	{ "IGN_WIDE_RES",	0x41, 0x41 },
	{ "PDATA_REINIT",	0x51, 0x51 },
	{ "HOST_MSG_LOOP",	0x61, 0x61 },
	{ "BAD_STATUS",		0x71, 0x71 },
	{ "PERR_DETECTED",	0x81, 0x81 },
	{ "DATA_OVERRUN",	0x91, 0x91 },
	{ "MKMSG_FAILED",	0xa1, 0xa1 },
	{ "MISSED_BUSFREE",	0xb1, 0xb1 },
	{ "SCB_MISMATCH",	0xc1, 0xc1 },
	{ "NO_FREE_SCB",	0xd1, 0xd1 },
	{ "OUT_OF_RANGE",	0xe1, 0xe1 },
	{ "SEQINT_MASK",	0xf1, 0xf1 }
};

int
ahc_intstat_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(INTSTAT_parse_table, 21, "INTSTAT",
	    0x91, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t CLRINT_parse_table[] = {
	{ "CLRSEQINT",		0x01, 0x01 },
	{ "CLRCMDINT",		0x02, 0x02 },
	{ "CLRSCSIINT",		0x04, 0x04 },
	{ "CLRBRKADRINT",	0x08, 0x08 },
	{ "CLRPARERR",		0x10, 0x10 }
};

int
ahc_clrint_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(CLRINT_parse_table, 5, "CLRINT",
	    0x92, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t ERROR_parse_table[] = {
	{ "ILLHADDR",		0x01, 0x01 },
	{ "ILLSADDR",		0x02, 0x02 },
	{ "ILLOPCODE",		0x04, 0x04 },
	{ "SQPARERR",		0x08, 0x08 },
	{ "DPARERR",		0x10, 0x10 },
	{ "MPARERR",		0x20, 0x20 },
	{ "PCIERRSTAT",		0x40, 0x40 },
	{ "CIOPARERR",		0x80, 0x80 }
};

int
ahc_error_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(ERROR_parse_table, 8, "ERROR",
	    0x92, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t DFCNTRL_parse_table[] = {
	{ "FIFORESET",		0x01, 0x01 },
	{ "FIFOFLUSH",		0x02, 0x02 },
	{ "DIRECTION",		0x04, 0x04 },
	{ "HDMAEN",		0x08, 0x08 },
	{ "HDMAENACK",		0x08, 0x08 },
	{ "SDMAEN",		0x10, 0x10 },
	{ "SDMAENACK",		0x10, 0x10 },
	{ "SCSIEN",		0x20, 0x20 },
	{ "WIDEODD",		0x40, 0x40 },
	{ "PRELOADEN",		0x80, 0x80 }
};

int
ahc_dfcntrl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(DFCNTRL_parse_table, 10, "DFCNTRL",
	    0x93, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t DFSTATUS_parse_table[] = {
	{ "FIFOEMP",		0x01, 0x01 },
	{ "FIFOFULL",		0x02, 0x02 },
	{ "DFTHRESH",		0x04, 0x04 },
	{ "HDONE",		0x08, 0x08 },
	{ "MREQPEND",		0x10, 0x10 },
	{ "FIFOQWDEMP",		0x20, 0x20 },
	{ "DFCACHETH",		0x40, 0x40 },
	{ "PRELOAD_AVAIL",	0x80, 0x80 }
};

int
ahc_dfstatus_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(DFSTATUS_parse_table, 8, "DFSTATUS",
	    0x94, regvalue, cur_col, wrap));
}

int
ahc_dfwaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "DFWADDR",
	    0x95, regvalue, cur_col, wrap));
}

int
ahc_dfraddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "DFRADDR",
	    0x97, regvalue, cur_col, wrap));
}

int
ahc_dfdat_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "DFDAT",
	    0x99, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCBCNT_parse_table[] = {
	{ "SCBAUTO",		0x80, 0x80 },
	{ "SCBCNT_MASK",	0x1f, 0x1f }
};

int
ahc_scbcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCBCNT_parse_table, 2, "SCBCNT",
	    0x9a, regvalue, cur_col, wrap));
}

int
ahc_qinfifo_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "QINFIFO",
	    0x9b, regvalue, cur_col, wrap));
}

int
ahc_qincnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "QINCNT",
	    0x9c, regvalue, cur_col, wrap));
}

int
ahc_qoutfifo_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "QOUTFIFO",
	    0x9d, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t CRCCONTROL1_parse_table[] = {
	{ "TARGCRCCNTEN",	0x04, 0x04 },
	{ "TARGCRCENDEN",	0x08, 0x08 },
	{ "CRCREQCHKEN",	0x10, 0x10 },
	{ "CRCENDCHKEN",	0x20, 0x20 },
	{ "CRCVALCHKEN",	0x40, 0x40 },
	{ "CRCONSEEN",		0x80, 0x80 }
};

int
ahc_crccontrol1_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(CRCCONTROL1_parse_table, 6, "CRCCONTROL1",
	    0x9d, regvalue, cur_col, wrap));
}

int
ahc_qoutcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "QOUTCNT",
	    0x9e, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCSIPHASE_parse_table[] = {
	{ "DATA_OUT_PHASE",	0x01, 0x01 },
	{ "DATA_IN_PHASE",	0x02, 0x02 },
	{ "MSG_OUT_PHASE",	0x04, 0x04 },
	{ "MSG_IN_PHASE",	0x08, 0x08 },
	{ "COMMAND_PHASE",	0x10, 0x10 },
	{ "STATUS_PHASE",	0x20, 0x20 },
	{ "DATA_PHASE_MASK",	0x03, 0x03 }
};

int
ahc_scsiphase_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCSIPHASE_parse_table, 7, "SCSIPHASE",
	    0x9e, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SFUNCT_parse_table[] = {
	{ "ALT_MODE",		0x80, 0x80 }
};

int
ahc_sfunct_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SFUNCT_parse_table, 1, "SFUNCT",
	    0x9f, regvalue, cur_col, wrap));
}

int
ahc_scb_base_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_BASE",
	    0xa0, regvalue, cur_col, wrap));
}

int
ahc_scb_cdb_ptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_CDB_PTR",
	    0xa0, regvalue, cur_col, wrap));
}

int
ahc_scb_residual_sgptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_RESIDUAL_SGPTR",
	    0xa4, regvalue, cur_col, wrap));
}

int
ahc_scb_scsi_status_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_SCSI_STATUS",
	    0xa8, regvalue, cur_col, wrap));
}

int
ahc_scb_target_phases_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_TARGET_PHASES",
	    0xa9, regvalue, cur_col, wrap));
}

int
ahc_scb_target_data_dir_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_TARGET_DATA_DIR",
	    0xaa, regvalue, cur_col, wrap));
}

int
ahc_scb_target_itag_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_TARGET_ITAG",
	    0xab, regvalue, cur_col, wrap));
}

int
ahc_scb_dataptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_DATAPTR",
	    0xac, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCB_DATACNT_parse_table[] = {
	{ "SG_LAST_SEG",	0x80, 0x80 },
	{ "SG_HIGH_ADDR_BITS",	0x7f, 0x7f }
};

int
ahc_scb_datacnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCB_DATACNT_parse_table, 2, "SCB_DATACNT",
	    0xb0, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCB_SGPTR_parse_table[] = {
	{ "SG_LIST_NULL",	0x01, 0x01 },
	{ "SG_FULL_RESID",	0x02, 0x02 },
	{ "SG_RESID_VALID",	0x04, 0x04 }
};

int
ahc_scb_sgptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCB_SGPTR_parse_table, 3, "SCB_SGPTR",
	    0xb4, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCB_CONTROL_parse_table[] = {
	{ "DISCONNECTED",	0x04, 0x04 },
	{ "ULTRAENB",		0x08, 0x08 },
	{ "MK_MESSAGE",		0x10, 0x10 },
	{ "TAG_ENB",		0x20, 0x20 },
	{ "DISCENB",		0x40, 0x40 },
	{ "TARGET_SCB",		0x80, 0x80 },
	{ "STATUS_RCVD",	0x80, 0x80 },
	{ "SCB_TAG_TYPE",	0x03, 0x03 }
};

int
ahc_scb_control_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCB_CONTROL_parse_table, 8, "SCB_CONTROL",
	    0xb8, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCB_SCSIID_parse_table[] = {
	{ "TWIN_CHNLB",		0x80, 0x80 },
	{ "OID",		0x0f, 0x0f },
	{ "TWIN_TID",		0x70, 0x70 },
	{ "TID",		0xf0, 0xf0 }
};

int
ahc_scb_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCB_SCSIID_parse_table, 4, "SCB_SCSIID",
	    0xb9, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SCB_LUN_parse_table[] = {
	{ "SCB_XFERLEN_ODD",	0x80, 0x80 },
	{ "LID",		0x3f, 0x3f }
};

int
ahc_scb_lun_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SCB_LUN_parse_table, 2, "SCB_LUN",
	    0xba, regvalue, cur_col, wrap));
}

int
ahc_scb_tag_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_TAG",
	    0xbb, regvalue, cur_col, wrap));
}

int
ahc_scb_cdb_len_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_CDB_LEN",
	    0xbc, regvalue, cur_col, wrap));
}

int
ahc_scb_scsirate_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_SCSIRATE",
	    0xbd, regvalue, cur_col, wrap));
}

int
ahc_scb_scsioffset_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_SCSIOFFSET",
	    0xbe, regvalue, cur_col, wrap));
}

int
ahc_scb_next_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_NEXT",
	    0xbf, regvalue, cur_col, wrap));
}

int
ahc_scb_64_spare_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_64_SPARE",
	    0xc0, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SEECTL_2840_parse_table[] = {
	{ "DO_2840",		0x01, 0x01 },
	{ "CK_2840",		0x02, 0x02 },
	{ "CS_2840",		0x04, 0x04 }
};

int
ahc_seectl_2840_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SEECTL_2840_parse_table, 3, "SEECTL_2840",
	    0xc0, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t STATUS_2840_parse_table[] = {
	{ "DI_2840",		0x01, 0x01 },
	{ "EEPROM_TF",		0x80, 0x80 },
	{ "ADSEL",		0x1e, 0x1e },
	{ "BIOS_SEL",		0x60, 0x60 }
};

int
ahc_status_2840_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(STATUS_2840_parse_table, 4, "STATUS_2840",
	    0xc1, regvalue, cur_col, wrap));
}

int
ahc_scb_64_btt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCB_64_BTT",
	    0xd0, regvalue, cur_col, wrap));
}

int
ahc_cchaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCHADDR",
	    0xe0, regvalue, cur_col, wrap));
}

int
ahc_cchcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCHCNT",
	    0xe8, regvalue, cur_col, wrap));
}

int
ahc_ccsgram_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCSGRAM",
	    0xe9, regvalue, cur_col, wrap));
}

int
ahc_ccsgaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCSGADDR",
	    0xea, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t CCSGCTL_parse_table[] = {
	{ "CCSGRESET",		0x01, 0x01 },
	{ "SG_FETCH_NEEDED",	0x02, 0x02 },
	{ "CCSGEN",		0x08, 0x08 },
	{ "CCSGDONE",		0x80, 0x80 }
};

int
ahc_ccsgctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(CCSGCTL_parse_table, 4, "CCSGCTL",
	    0xeb, regvalue, cur_col, wrap));
}

int
ahc_ccscbram_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCSCBRAM",
	    0xec, regvalue, cur_col, wrap));
}

int
ahc_ccscbaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCSCBADDR",
	    0xed, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t CCSCBCTL_parse_table[] = {
	{ "CCSCBRESET",		0x01, 0x01 },
	{ "CCSCBDIR",		0x04, 0x04 },
	{ "CCSCBEN",		0x08, 0x08 },
	{ "CCARREN",		0x10, 0x10 },
	{ "ARRDONE",		0x40, 0x40 },
	{ "CCSCBDONE",		0x80, 0x80 }
};

int
ahc_ccscbctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(CCSCBCTL_parse_table, 6, "CCSCBCTL",
	    0xee, regvalue, cur_col, wrap));
}

int
ahc_ccscbcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCSCBCNT",
	    0xef, regvalue, cur_col, wrap));
}

int
ahc_scbbaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SCBBADDR",
	    0xf0, regvalue, cur_col, wrap));
}

int
ahc_ccscbptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "CCSCBPTR",
	    0xf1, regvalue, cur_col, wrap));
}

int
ahc_hnscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "HNSCB_QOFF",
	    0xf4, regvalue, cur_col, wrap));
}

int
ahc_snscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SNSCB_QOFF",
	    0xf6, regvalue, cur_col, wrap));
}

int
ahc_sdscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(NULL, 0, "SDSCB_QOFF",
	    0xf8, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t QOFF_CTLSTA_parse_table[] = {
	{ "SDSCB_ROLLOVER",	0x10, 0x10 },
	{ "SNSCB_ROLLOVER",	0x20, 0x20 },
	{ "SCB_AVAIL",		0x40, 0x40 },
	{ "SCB_QSIZE_256",	0x06, 0x06 },
	{ "SCB_QSIZE",		0x07, 0x07 }
};

int
ahc_qoff_ctlsta_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(QOFF_CTLSTA_parse_table, 5, "QOFF_CTLSTA",
	    0xfa, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t DFF_THRSH_parse_table[] = {
	{ "RD_DFTHRSH_MIN",	0x00, 0x00 },
	{ "WR_DFTHRSH_MIN",	0x00, 0x00 },
	{ "RD_DFTHRSH_25",	0x01, 0x01 },
	{ "RD_DFTHRSH_50",	0x02, 0x02 },
	{ "RD_DFTHRSH_63",	0x03, 0x03 },
	{ "RD_DFTHRSH_75",	0x04, 0x04 },
	{ "RD_DFTHRSH_85",	0x05, 0x05 },
	{ "RD_DFTHRSH_90",	0x06, 0x06 },
	{ "RD_DFTHRSH",		0x07, 0x07 },
	{ "RD_DFTHRSH_MAX",	0x07, 0x07 },
	{ "WR_DFTHRSH_25",	0x10, 0x10 },
	{ "WR_DFTHRSH_50",	0x20, 0x20 },
	{ "WR_DFTHRSH_63",	0x30, 0x30 },
	{ "WR_DFTHRSH_75",	0x40, 0x40 },
	{ "WR_DFTHRSH_85",	0x50, 0x50 },
	{ "WR_DFTHRSH_90",	0x60, 0x60 },
	{ "WR_DFTHRSH",		0x70, 0x70 },
	{ "WR_DFTHRSH_MAX",	0x70, 0x70 }
};

int
ahc_dff_thrsh_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(DFF_THRSH_parse_table, 18, "DFF_THRSH",
	    0xfb, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SG_CACHE_SHADOW_parse_table[] = {
	{ "LAST_SEG_DONE",	0x01, 0x01 },
	{ "LAST_SEG",		0x02, 0x02 },
	{ "SG_ADDR_MASK",	0xf8, 0xf8 }
};

int
ahc_sg_cache_shadow_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SG_CACHE_SHADOW_parse_table, 3, "SG_CACHE_SHADOW",
	    0xfc, regvalue, cur_col, wrap));
}

static ahc_reg_parse_entry_t SG_CACHE_PRE_parse_table[] = {
	{ "LAST_SEG_DONE",	0x01, 0x01 },
	{ "LAST_SEG",		0x02, 0x02 },
	{ "SG_ADDR_MASK",	0xf8, 0xf8 }
};

int
ahc_sg_cache_pre_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
	return (ahc_print_register(SG_CACHE_PRE_parse_table, 3, "SG_CACHE_PRE",
	    0xfc, regvalue, cur_col, wrap));
}

