{ ATACMD(READ), ATACMD(READ_EXT), ATACMD(WRITE), ATACMD(WRITE_EXT), ATACMD(PACKETCMD), ATACMD(SMART), ATACMD(FLUSH_CACHE), ATACMD(FLUSH_CACHE_EXT), ATACMD(IDENTIFY) }; #define CFGCMD(x) [AOE_CFG_ ## x] = #x static const char *const cfg_cmds[16] = { CFGCMD(READ), CFGCMD(TEST), CFGCMD(TEST_PREFIX), CFGCMD(SET), CFGCMD(FORCE_SET) }; #define MACMASKCMD(x) [AOE_MCMD_ ## x] = #x static const char *const macmask_cmds[256] = { MACMASKCMD(READ), MACMASKCMD(EDIT) }; #define RESERVECMD(x) [AOE_RESERVE_ ## x] = #x static const char *const reserve_cmds[256] =
char *subcmd_name(struct mbcmd *mb) { unsigned char cmd_h = mb->cmd_h; unsigned char cmd_l = mb->cmd_l; char *s; switch (cmd_h) { case MBCMD(RUNLEVEL): s = (cmd_l == RLCMD(USER)) ? "USER": (cmd_l == RLCMD(SUPER)) ? "SUPER": (cmd_l == RLCMD(RECOVERY)) ? "RECOVERY": NULL; break; case MBCMD(PM): s = (cmd_l == PMCMD(DISABLE)) ? "DISABLE": (cmd_l == PMCMD(ENABLE)) ? "ENABLE": NULL; break; case MBCMD(DSPCFG): { unsigned char cfgc = cmd_l & 0x7f; s = (cfgc == CFGCMD(REQ)) ? "REQ": (cfgc == CFGCMD(SYSADRH)) ? "SYSADRH": (cfgc == CFGCMD(SYSADRL)) ? "SYSADRL": (cfgc == CFGCMD(ABORT)) ? "ABORT": (cfgc == CFGCMD(PROTREV)) ? "PROTREV": NULL; break; } case MBCMD(REGRW): s = (cmd_l == REGCMD(MEMR)) ? "MEMR": (cmd_l == REGCMD(MEMW)) ? "MEMW": (cmd_l == REGCMD(IOR)) ? "IOR": (cmd_l == REGCMD(IOW)) ? "IOW": (cmd_l == REGCMD(DATA)) ? "DATA": NULL; break; case MBCMD(GETVAR): case MBCMD(SETVAR): s = (cmd_l == VICMD(ICRMASK)) ? "ICRMASK": (cmd_l == VICMD(LOADINFO)) ? "LOADINFO": NULL; break; case MBCMD(ERR): s = (cmd_l == EID(BADTID)) ? "BADTID": (cmd_l == EID(BADTCN)) ? "BADTCN": (cmd_l == EID(BADBID)) ? "BADBID": (cmd_l == EID(BADCNT)) ? "BADCNT": (cmd_l == EID(NOTLOCKED)) ? "NOTLOCKED": (cmd_l == EID(STVBUF)) ? "STVBUF": (cmd_l == EID(BADADR)) ? "BADADR": (cmd_l == EID(BADTCTL)) ? "BADTCTL": (cmd_l == EID(BADPARAM)) ? "BADPARAM": (cmd_l == EID(FATAL)) ? "FATAL": (cmd_l == EID(NOMEM)) ? "NOMEM": (cmd_l == EID(NORES)) ? "NORES": (cmd_l == EID(IPBFULL)) ? "IPBFULL": (cmd_l == EID(TASKNOTRDY)) ? "TASKNOTRDY": (cmd_l == EID(TASKBSY)) ? "TASKBSY": (cmd_l == EID(TASKERR)) ? "TASKERR": (cmd_l == EID(BADCFGTYP)) ? "BADCFGTYP": (cmd_l == EID(DEBUG)) ? "DEBUG": (cmd_l == EID(BADSEQ)) ? "BADSEQ": (cmd_l == EID(BADCMD)) ? "BADCMD": NULL; break; default: s = NULL; } return s; }