aic7xxx_reg_print.c_shipped 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578
  1. /*
  2. * DO NOT EDIT - This file is automatically generated
  3. * from the following source files:
  4. *
  5. * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#58 $
  6. * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#40 $
  7. */
  8. #include "aic7xxx_osm.h"
  9. static const ahc_reg_parse_entry_t SCSISEQ_parse_table[] = {
  10. { "SCSIRSTO", 0x01, 0x01 },
  11. { "ENAUTOATNP", 0x02, 0x02 },
  12. { "ENAUTOATNI", 0x04, 0x04 },
  13. { "ENAUTOATNO", 0x08, 0x08 },
  14. { "ENRSELI", 0x10, 0x10 },
  15. { "ENSELI", 0x20, 0x20 },
  16. { "ENSELO", 0x40, 0x40 },
  17. { "TEMODE", 0x80, 0x80 }
  18. };
  19. int
  20. ahc_scsiseq_print(u_int regvalue, u_int *cur_col, u_int wrap)
  21. {
  22. return (ahc_print_register(SCSISEQ_parse_table, 8, "SCSISEQ",
  23. 0x00, regvalue, cur_col, wrap));
  24. }
  25. static const ahc_reg_parse_entry_t SXFRCTL0_parse_table[] = {
  26. { "CLRCHN", 0x02, 0x02 },
  27. { "SCAMEN", 0x04, 0x04 },
  28. { "SPIOEN", 0x08, 0x08 },
  29. { "CLRSTCNT", 0x10, 0x10 },
  30. { "FAST20", 0x20, 0x20 },
  31. { "DFPEXP", 0x40, 0x40 },
  32. { "DFON", 0x80, 0x80 }
  33. };
  34. int
  35. ahc_sxfrctl0_print(u_int regvalue, u_int *cur_col, u_int wrap)
  36. {
  37. return (ahc_print_register(SXFRCTL0_parse_table, 7, "SXFRCTL0",
  38. 0x01, regvalue, cur_col, wrap));
  39. }
  40. static const ahc_reg_parse_entry_t SXFRCTL1_parse_table[] = {
  41. { "STPWEN", 0x01, 0x01 },
  42. { "ACTNEGEN", 0x02, 0x02 },
  43. { "ENSTIMER", 0x04, 0x04 },
  44. { "ENSPCHK", 0x20, 0x20 },
  45. { "SWRAPEN", 0x40, 0x40 },
  46. { "BITBUCKET", 0x80, 0x80 },
  47. { "STIMESEL", 0x18, 0x18 }
  48. };
  49. int
  50. ahc_sxfrctl1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  51. {
  52. return (ahc_print_register(SXFRCTL1_parse_table, 7, "SXFRCTL1",
  53. 0x02, regvalue, cur_col, wrap));
  54. }
  55. static const ahc_reg_parse_entry_t SCSISIGO_parse_table[] = {
  56. { "ACKO", 0x01, 0x01 },
  57. { "REQO", 0x02, 0x02 },
  58. { "BSYO", 0x04, 0x04 },
  59. { "SELO", 0x08, 0x08 },
  60. { "ATNO", 0x10, 0x10 },
  61. { "MSGO", 0x20, 0x20 },
  62. { "IOO", 0x40, 0x40 },
  63. { "CDO", 0x80, 0x80 },
  64. { "P_DATAOUT", 0x00, 0x00 },
  65. { "P_DATAIN", 0x40, 0x40 },
  66. { "P_COMMAND", 0x80, 0x80 },
  67. { "P_MESGOUT", 0xa0, 0xa0 },
  68. { "P_STATUS", 0xc0, 0xc0 },
  69. { "PHASE_MASK", 0xe0, 0xe0 },
  70. { "P_MESGIN", 0xe0, 0xe0 }
  71. };
  72. int
  73. ahc_scsisigo_print(u_int regvalue, u_int *cur_col, u_int wrap)
  74. {
  75. return (ahc_print_register(SCSISIGO_parse_table, 15, "SCSISIGO",
  76. 0x03, regvalue, cur_col, wrap));
  77. }
  78. static const ahc_reg_parse_entry_t SCSISIGI_parse_table[] = {
  79. { "ACKI", 0x01, 0x01 },
  80. { "REQI", 0x02, 0x02 },
  81. { "BSYI", 0x04, 0x04 },
  82. { "SELI", 0x08, 0x08 },
  83. { "ATNI", 0x10, 0x10 },
  84. { "MSGI", 0x20, 0x20 },
  85. { "IOI", 0x40, 0x40 },
  86. { "CDI", 0x80, 0x80 },
  87. { "P_DATAOUT", 0x00, 0x00 },
  88. { "P_DATAOUT_DT", 0x20, 0x20 },
  89. { "P_DATAIN", 0x40, 0x40 },
  90. { "P_DATAIN_DT", 0x60, 0x60 },
  91. { "P_COMMAND", 0x80, 0x80 },
  92. { "P_MESGOUT", 0xa0, 0xa0 },
  93. { "P_STATUS", 0xc0, 0xc0 },
  94. { "PHASE_MASK", 0xe0, 0xe0 },
  95. { "P_MESGIN", 0xe0, 0xe0 }
  96. };
  97. int
  98. ahc_scsisigi_print(u_int regvalue, u_int *cur_col, u_int wrap)
  99. {
  100. return (ahc_print_register(SCSISIGI_parse_table, 17, "SCSISIGI",
  101. 0x03, regvalue, cur_col, wrap));
  102. }
  103. static const ahc_reg_parse_entry_t SCSIRATE_parse_table[] = {
  104. { "SINGLE_EDGE", 0x10, 0x10 },
  105. { "ENABLE_CRC", 0x40, 0x40 },
  106. { "WIDEXFER", 0x80, 0x80 },
  107. { "SXFR_ULTRA2", 0x0f, 0x0f },
  108. { "SOFS", 0x0f, 0x0f },
  109. { "SXFR", 0x70, 0x70 }
  110. };
  111. int
  112. ahc_scsirate_print(u_int regvalue, u_int *cur_col, u_int wrap)
  113. {
  114. return (ahc_print_register(SCSIRATE_parse_table, 6, "SCSIRATE",
  115. 0x04, regvalue, cur_col, wrap));
  116. }
  117. static const ahc_reg_parse_entry_t SCSIID_parse_table[] = {
  118. { "TWIN_CHNLB", 0x80, 0x80 },
  119. { "OID", 0x0f, 0x0f },
  120. { "TWIN_TID", 0x70, 0x70 },
  121. { "SOFS_ULTRA2", 0x7f, 0x7f },
  122. { "TID", 0xf0, 0xf0 }
  123. };
  124. int
  125. ahc_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap)
  126. {
  127. return (ahc_print_register(SCSIID_parse_table, 5, "SCSIID",
  128. 0x05, regvalue, cur_col, wrap));
  129. }
  130. int
  131. ahc_scsidatl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  132. {
  133. return (ahc_print_register(NULL, 0, "SCSIDATL",
  134. 0x06, regvalue, cur_col, wrap));
  135. }
  136. int
  137. ahc_stcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  138. {
  139. return (ahc_print_register(NULL, 0, "STCNT",
  140. 0x08, regvalue, cur_col, wrap));
  141. }
  142. static const ahc_reg_parse_entry_t OPTIONMODE_parse_table[] = {
  143. { "DIS_MSGIN_DUALEDGE", 0x01, 0x01 },
  144. { "AUTO_MSGOUT_DE", 0x02, 0x02 },
  145. { "SCSIDATL_IMGEN", 0x04, 0x04 },
  146. { "EXPPHASEDIS", 0x08, 0x08 },
  147. { "BUSFREEREV", 0x10, 0x10 },
  148. { "ATNMGMNTEN", 0x20, 0x20 },
  149. { "AUTOACKEN", 0x40, 0x40 },
  150. { "AUTORATEEN", 0x80, 0x80 },
  151. { "OPTIONMODE_DEFAULTS",0x03, 0x03 }
  152. };
  153. int
  154. ahc_optionmode_print(u_int regvalue, u_int *cur_col, u_int wrap)
  155. {
  156. return (ahc_print_register(OPTIONMODE_parse_table, 9, "OPTIONMODE",
  157. 0x08, regvalue, cur_col, wrap));
  158. }
  159. int
  160. ahc_targcrccnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  161. {
  162. return (ahc_print_register(NULL, 0, "TARGCRCCNT",
  163. 0x0a, regvalue, cur_col, wrap));
  164. }
  165. static const ahc_reg_parse_entry_t CLRSINT0_parse_table[] = {
  166. { "CLRSPIORDY", 0x02, 0x02 },
  167. { "CLRSWRAP", 0x08, 0x08 },
  168. { "CLRIOERR", 0x08, 0x08 },
  169. { "CLRSELINGO", 0x10, 0x10 },
  170. { "CLRSELDI", 0x20, 0x20 },
  171. { "CLRSELDO", 0x40, 0x40 }
  172. };
  173. int
  174. ahc_clrsint0_print(u_int regvalue, u_int *cur_col, u_int wrap)
  175. {
  176. return (ahc_print_register(CLRSINT0_parse_table, 6, "CLRSINT0",
  177. 0x0b, regvalue, cur_col, wrap));
  178. }
  179. static const ahc_reg_parse_entry_t SSTAT0_parse_table[] = {
  180. { "DMADONE", 0x01, 0x01 },
  181. { "SPIORDY", 0x02, 0x02 },
  182. { "SDONE", 0x04, 0x04 },
  183. { "SWRAP", 0x08, 0x08 },
  184. { "IOERR", 0x08, 0x08 },
  185. { "SELINGO", 0x10, 0x10 },
  186. { "SELDI", 0x20, 0x20 },
  187. { "SELDO", 0x40, 0x40 },
  188. { "TARGET", 0x80, 0x80 }
  189. };
  190. int
  191. ahc_sstat0_print(u_int regvalue, u_int *cur_col, u_int wrap)
  192. {
  193. return (ahc_print_register(SSTAT0_parse_table, 9, "SSTAT0",
  194. 0x0b, regvalue, cur_col, wrap));
  195. }
  196. static const ahc_reg_parse_entry_t CLRSINT1_parse_table[] = {
  197. { "CLRREQINIT", 0x01, 0x01 },
  198. { "CLRPHASECHG", 0x02, 0x02 },
  199. { "CLRSCSIPERR", 0x04, 0x04 },
  200. { "CLRBUSFREE", 0x08, 0x08 },
  201. { "CLRSCSIRSTI", 0x20, 0x20 },
  202. { "CLRATNO", 0x40, 0x40 },
  203. { "CLRSELTIMEO", 0x80, 0x80 }
  204. };
  205. int
  206. ahc_clrsint1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  207. {
  208. return (ahc_print_register(CLRSINT1_parse_table, 7, "CLRSINT1",
  209. 0x0c, regvalue, cur_col, wrap));
  210. }
  211. static const ahc_reg_parse_entry_t SSTAT1_parse_table[] = {
  212. { "REQINIT", 0x01, 0x01 },
  213. { "PHASECHG", 0x02, 0x02 },
  214. { "SCSIPERR", 0x04, 0x04 },
  215. { "BUSFREE", 0x08, 0x08 },
  216. { "PHASEMIS", 0x10, 0x10 },
  217. { "SCSIRSTI", 0x20, 0x20 },
  218. { "ATNTARG", 0x40, 0x40 },
  219. { "SELTO", 0x80, 0x80 }
  220. };
  221. int
  222. ahc_sstat1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  223. {
  224. return (ahc_print_register(SSTAT1_parse_table, 8, "SSTAT1",
  225. 0x0c, regvalue, cur_col, wrap));
  226. }
  227. static const ahc_reg_parse_entry_t SSTAT2_parse_table[] = {
  228. { "DUAL_EDGE_ERR", 0x01, 0x01 },
  229. { "CRCREQERR", 0x02, 0x02 },
  230. { "CRCENDERR", 0x04, 0x04 },
  231. { "CRCVALERR", 0x08, 0x08 },
  232. { "EXP_ACTIVE", 0x10, 0x10 },
  233. { "SHVALID", 0x40, 0x40 },
  234. { "OVERRUN", 0x80, 0x80 },
  235. { "SFCNT", 0x1f, 0x1f }
  236. };
  237. int
  238. ahc_sstat2_print(u_int regvalue, u_int *cur_col, u_int wrap)
  239. {
  240. return (ahc_print_register(SSTAT2_parse_table, 8, "SSTAT2",
  241. 0x0d, regvalue, cur_col, wrap));
  242. }
  243. static const ahc_reg_parse_entry_t SSTAT3_parse_table[] = {
  244. { "OFFCNT", 0x0f, 0x0f },
  245. { "U2OFFCNT", 0x7f, 0x7f },
  246. { "SCSICNT", 0xf0, 0xf0 }
  247. };
  248. int
  249. ahc_sstat3_print(u_int regvalue, u_int *cur_col, u_int wrap)
  250. {
  251. return (ahc_print_register(SSTAT3_parse_table, 3, "SSTAT3",
  252. 0x0e, regvalue, cur_col, wrap));
  253. }
  254. static const ahc_reg_parse_entry_t SCSIID_ULTRA2_parse_table[] = {
  255. { "OID", 0x0f, 0x0f },
  256. { "TID", 0xf0, 0xf0 }
  257. };
  258. int
  259. ahc_scsiid_ultra2_print(u_int regvalue, u_int *cur_col, u_int wrap)
  260. {
  261. return (ahc_print_register(SCSIID_ULTRA2_parse_table, 2, "SCSIID_ULTRA2",
  262. 0x0f, regvalue, cur_col, wrap));
  263. }
  264. static const ahc_reg_parse_entry_t SIMODE0_parse_table[] = {
  265. { "ENDMADONE", 0x01, 0x01 },
  266. { "ENSPIORDY", 0x02, 0x02 },
  267. { "ENSDONE", 0x04, 0x04 },
  268. { "ENSWRAP", 0x08, 0x08 },
  269. { "ENIOERR", 0x08, 0x08 },
  270. { "ENSELINGO", 0x10, 0x10 },
  271. { "ENSELDI", 0x20, 0x20 },
  272. { "ENSELDO", 0x40, 0x40 }
  273. };
  274. int
  275. ahc_simode0_print(u_int regvalue, u_int *cur_col, u_int wrap)
  276. {
  277. return (ahc_print_register(SIMODE0_parse_table, 8, "SIMODE0",
  278. 0x10, regvalue, cur_col, wrap));
  279. }
  280. static const ahc_reg_parse_entry_t SIMODE1_parse_table[] = {
  281. { "ENREQINIT", 0x01, 0x01 },
  282. { "ENPHASECHG", 0x02, 0x02 },
  283. { "ENSCSIPERR", 0x04, 0x04 },
  284. { "ENBUSFREE", 0x08, 0x08 },
  285. { "ENPHASEMIS", 0x10, 0x10 },
  286. { "ENSCSIRST", 0x20, 0x20 },
  287. { "ENATNTARG", 0x40, 0x40 },
  288. { "ENSELTIMO", 0x80, 0x80 }
  289. };
  290. int
  291. ahc_simode1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  292. {
  293. return (ahc_print_register(SIMODE1_parse_table, 8, "SIMODE1",
  294. 0x11, regvalue, cur_col, wrap));
  295. }
  296. int
  297. ahc_scsibusl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  298. {
  299. return (ahc_print_register(NULL, 0, "SCSIBUSL",
  300. 0x12, regvalue, cur_col, wrap));
  301. }
  302. int
  303. ahc_shaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  304. {
  305. return (ahc_print_register(NULL, 0, "SHADDR",
  306. 0x14, regvalue, cur_col, wrap));
  307. }
  308. static const ahc_reg_parse_entry_t SELTIMER_parse_table[] = {
  309. { "STAGE1", 0x01, 0x01 },
  310. { "STAGE2", 0x02, 0x02 },
  311. { "STAGE3", 0x04, 0x04 },
  312. { "STAGE4", 0x08, 0x08 },
  313. { "STAGE5", 0x10, 0x10 },
  314. { "STAGE6", 0x20, 0x20 }
  315. };
  316. int
  317. ahc_seltimer_print(u_int regvalue, u_int *cur_col, u_int wrap)
  318. {
  319. return (ahc_print_register(SELTIMER_parse_table, 6, "SELTIMER",
  320. 0x18, regvalue, cur_col, wrap));
  321. }
  322. static const ahc_reg_parse_entry_t SELID_parse_table[] = {
  323. { "ONEBIT", 0x08, 0x08 },
  324. { "SELID_MASK", 0xf0, 0xf0 }
  325. };
  326. int
  327. ahc_selid_print(u_int regvalue, u_int *cur_col, u_int wrap)
  328. {
  329. return (ahc_print_register(SELID_parse_table, 2, "SELID",
  330. 0x19, regvalue, cur_col, wrap));
  331. }
  332. int
  333. ahc_targid_print(u_int regvalue, u_int *cur_col, u_int wrap)
  334. {
  335. return (ahc_print_register(NULL, 0, "TARGID",
  336. 0x1b, regvalue, cur_col, wrap));
  337. }
  338. static const ahc_reg_parse_entry_t SPIOCAP_parse_table[] = {
  339. { "SSPIOCPS", 0x01, 0x01 },
  340. { "ROM", 0x02, 0x02 },
  341. { "EEPROM", 0x04, 0x04 },
  342. { "SEEPROM", 0x08, 0x08 },
  343. { "EXT_BRDCTL", 0x10, 0x10 },
  344. { "SOFTCMDEN", 0x20, 0x20 },
  345. { "SOFT0", 0x40, 0x40 },
  346. { "SOFT1", 0x80, 0x80 }
  347. };
  348. int
  349. ahc_spiocap_print(u_int regvalue, u_int *cur_col, u_int wrap)
  350. {
  351. return (ahc_print_register(SPIOCAP_parse_table, 8, "SPIOCAP",
  352. 0x1b, regvalue, cur_col, wrap));
  353. }
  354. static const ahc_reg_parse_entry_t BRDCTL_parse_table[] = {
  355. { "BRDCTL0", 0x01, 0x01 },
  356. { "BRDSTB_ULTRA2", 0x01, 0x01 },
  357. { "BRDCTL1", 0x02, 0x02 },
  358. { "BRDRW_ULTRA2", 0x02, 0x02 },
  359. { "BRDRW", 0x04, 0x04 },
  360. { "BRDDAT2", 0x04, 0x04 },
  361. { "BRDCS", 0x08, 0x08 },
  362. { "BRDDAT3", 0x08, 0x08 },
  363. { "BRDSTB", 0x10, 0x10 },
  364. { "BRDDAT4", 0x10, 0x10 },
  365. { "BRDDAT5", 0x20, 0x20 },
  366. { "BRDDAT6", 0x40, 0x40 },
  367. { "BRDDAT7", 0x80, 0x80 }
  368. };
  369. int
  370. ahc_brdctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  371. {
  372. return (ahc_print_register(BRDCTL_parse_table, 13, "BRDCTL",
  373. 0x1d, regvalue, cur_col, wrap));
  374. }
  375. static const ahc_reg_parse_entry_t SEECTL_parse_table[] = {
  376. { "SEEDI", 0x01, 0x01 },
  377. { "SEEDO", 0x02, 0x02 },
  378. { "SEECK", 0x04, 0x04 },
  379. { "SEECS", 0x08, 0x08 },
  380. { "SEERDY", 0x10, 0x10 },
  381. { "SEEMS", 0x20, 0x20 },
  382. { "EXTARBREQ", 0x40, 0x40 },
  383. { "EXTARBACK", 0x80, 0x80 }
  384. };
  385. int
  386. ahc_seectl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  387. {
  388. return (ahc_print_register(SEECTL_parse_table, 8, "SEECTL",
  389. 0x1e, regvalue, cur_col, wrap));
  390. }
  391. static const ahc_reg_parse_entry_t SBLKCTL_parse_table[] = {
  392. { "XCVR", 0x01, 0x01 },
  393. { "SELWIDE", 0x02, 0x02 },
  394. { "ENAB20", 0x04, 0x04 },
  395. { "SELBUSB", 0x08, 0x08 },
  396. { "ENAB40", 0x08, 0x08 },
  397. { "AUTOFLUSHDIS", 0x20, 0x20 },
  398. { "DIAGLEDON", 0x40, 0x40 },
  399. { "DIAGLEDEN", 0x80, 0x80 }
  400. };
  401. int
  402. ahc_sblkctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  403. {
  404. return (ahc_print_register(SBLKCTL_parse_table, 8, "SBLKCTL",
  405. 0x1f, regvalue, cur_col, wrap));
  406. }
  407. int
  408. ahc_busy_targets_print(u_int regvalue, u_int *cur_col, u_int wrap)
  409. {
  410. return (ahc_print_register(NULL, 0, "BUSY_TARGETS",
  411. 0x20, regvalue, cur_col, wrap));
  412. }
  413. int
  414. ahc_ultra_enb_print(u_int regvalue, u_int *cur_col, u_int wrap)
  415. {
  416. return (ahc_print_register(NULL, 0, "ULTRA_ENB",
  417. 0x30, regvalue, cur_col, wrap));
  418. }
  419. int
  420. ahc_disc_dsb_print(u_int regvalue, u_int *cur_col, u_int wrap)
  421. {
  422. return (ahc_print_register(NULL, 0, "DISC_DSB",
  423. 0x32, regvalue, cur_col, wrap));
  424. }
  425. int
  426. ahc_mwi_residual_print(u_int regvalue, u_int *cur_col, u_int wrap)
  427. {
  428. return (ahc_print_register(NULL, 0, "MWI_RESIDUAL",
  429. 0x38, regvalue, cur_col, wrap));
  430. }
  431. int
  432. ahc_next_queued_scb_print(u_int regvalue, u_int *cur_col, u_int wrap)
  433. {
  434. return (ahc_print_register(NULL, 0, "NEXT_QUEUED_SCB",
  435. 0x39, regvalue, cur_col, wrap));
  436. }
  437. int
  438. ahc_msg_out_print(u_int regvalue, u_int *cur_col, u_int wrap)
  439. {
  440. return (ahc_print_register(NULL, 0, "MSG_OUT",
  441. 0x3a, regvalue, cur_col, wrap));
  442. }
  443. static const ahc_reg_parse_entry_t DMAPARAMS_parse_table[] = {
  444. { "FIFORESET", 0x01, 0x01 },
  445. { "FIFOFLUSH", 0x02, 0x02 },
  446. { "DIRECTION", 0x04, 0x04 },
  447. { "HDMAEN", 0x08, 0x08 },
  448. { "HDMAENACK", 0x08, 0x08 },
  449. { "SDMAEN", 0x10, 0x10 },
  450. { "SDMAENACK", 0x10, 0x10 },
  451. { "SCSIEN", 0x20, 0x20 },
  452. { "WIDEODD", 0x40, 0x40 },
  453. { "PRELOADEN", 0x80, 0x80 }
  454. };
  455. int
  456. ahc_dmaparams_print(u_int regvalue, u_int *cur_col, u_int wrap)
  457. {
  458. return (ahc_print_register(DMAPARAMS_parse_table, 10, "DMAPARAMS",
  459. 0x3b, regvalue, cur_col, wrap));
  460. }
  461. static const ahc_reg_parse_entry_t SEQ_FLAGS_parse_table[] = {
  462. { "NO_DISCONNECT", 0x01, 0x01 },
  463. { "SPHASE_PENDING", 0x02, 0x02 },
  464. { "DPHASE_PENDING", 0x04, 0x04 },
  465. { "CMDPHASE_PENDING", 0x08, 0x08 },
  466. { "TARG_CMD_PENDING", 0x10, 0x10 },
  467. { "DPHASE", 0x20, 0x20 },
  468. { "NO_CDB_SENT", 0x40, 0x40 },
  469. { "TARGET_CMD_IS_TAGGED",0x40, 0x40 },
  470. { "NOT_IDENTIFIED", 0x80, 0x80 }
  471. };
  472. int
  473. ahc_seq_flags_print(u_int regvalue, u_int *cur_col, u_int wrap)
  474. {
  475. return (ahc_print_register(SEQ_FLAGS_parse_table, 9, "SEQ_FLAGS",
  476. 0x3c, regvalue, cur_col, wrap));
  477. }
  478. int
  479. ahc_saved_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap)
  480. {
  481. return (ahc_print_register(NULL, 0, "SAVED_SCSIID",
  482. 0x3d, regvalue, cur_col, wrap));
  483. }
  484. int
  485. ahc_saved_lun_print(u_int regvalue, u_int *cur_col, u_int wrap)
  486. {
  487. return (ahc_print_register(NULL, 0, "SAVED_LUN",
  488. 0x3e, regvalue, cur_col, wrap));
  489. }
  490. static const ahc_reg_parse_entry_t LASTPHASE_parse_table[] = {
  491. { "MSGI", 0x20, 0x20 },
  492. { "IOI", 0x40, 0x40 },
  493. { "CDI", 0x80, 0x80 },
  494. { "P_DATAOUT", 0x00, 0x00 },
  495. { "P_BUSFREE", 0x01, 0x01 },
  496. { "P_DATAIN", 0x40, 0x40 },
  497. { "P_COMMAND", 0x80, 0x80 },
  498. { "P_MESGOUT", 0xa0, 0xa0 },
  499. { "P_STATUS", 0xc0, 0xc0 },
  500. { "PHASE_MASK", 0xe0, 0xe0 },
  501. { "P_MESGIN", 0xe0, 0xe0 }
  502. };
  503. int
  504. ahc_lastphase_print(u_int regvalue, u_int *cur_col, u_int wrap)
  505. {
  506. return (ahc_print_register(LASTPHASE_parse_table, 11, "LASTPHASE",
  507. 0x3f, regvalue, cur_col, wrap));
  508. }
  509. int
  510. ahc_waiting_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap)
  511. {
  512. return (ahc_print_register(NULL, 0, "WAITING_SCBH",
  513. 0x40, regvalue, cur_col, wrap));
  514. }
  515. int
  516. ahc_disconnected_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap)
  517. {
  518. return (ahc_print_register(NULL, 0, "DISCONNECTED_SCBH",
  519. 0x41, regvalue, cur_col, wrap));
  520. }
  521. int
  522. ahc_free_scbh_print(u_int regvalue, u_int *cur_col, u_int wrap)
  523. {
  524. return (ahc_print_register(NULL, 0, "FREE_SCBH",
  525. 0x42, regvalue, cur_col, wrap));
  526. }
  527. int
  528. ahc_hscb_addr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  529. {
  530. return (ahc_print_register(NULL, 0, "HSCB_ADDR",
  531. 0x44, regvalue, cur_col, wrap));
  532. }
  533. int
  534. ahc_shared_data_addr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  535. {
  536. return (ahc_print_register(NULL, 0, "SHARED_DATA_ADDR",
  537. 0x48, regvalue, cur_col, wrap));
  538. }
  539. int
  540. ahc_kernel_qinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
  541. {
  542. return (ahc_print_register(NULL, 0, "KERNEL_QINPOS",
  543. 0x4c, regvalue, cur_col, wrap));
  544. }
  545. int
  546. ahc_qinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
  547. {
  548. return (ahc_print_register(NULL, 0, "QINPOS",
  549. 0x4d, regvalue, cur_col, wrap));
  550. }
  551. int
  552. ahc_qoutpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
  553. {
  554. return (ahc_print_register(NULL, 0, "QOUTPOS",
  555. 0x4e, regvalue, cur_col, wrap));
  556. }
  557. int
  558. ahc_kernel_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
  559. {
  560. return (ahc_print_register(NULL, 0, "KERNEL_TQINPOS",
  561. 0x4f, regvalue, cur_col, wrap));
  562. }
  563. int
  564. ahc_tqinpos_print(u_int regvalue, u_int *cur_col, u_int wrap)
  565. {
  566. return (ahc_print_register(NULL, 0, "TQINPOS",
  567. 0x50, regvalue, cur_col, wrap));
  568. }
  569. static const ahc_reg_parse_entry_t ARG_1_parse_table[] = {
  570. { "CONT_TARG_SESSION", 0x02, 0x02 },
  571. { "CONT_MSG_LOOP", 0x04, 0x04 },
  572. { "EXIT_MSG_LOOP", 0x08, 0x08 },
  573. { "MSGOUT_PHASEMIS", 0x10, 0x10 },
  574. { "SEND_REJ", 0x20, 0x20 },
  575. { "SEND_SENSE", 0x40, 0x40 },
  576. { "SEND_MSG", 0x80, 0x80 }
  577. };
  578. int
  579. ahc_arg_1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  580. {
  581. return (ahc_print_register(ARG_1_parse_table, 7, "ARG_1",
  582. 0x51, regvalue, cur_col, wrap));
  583. }
  584. int
  585. ahc_arg_2_print(u_int regvalue, u_int *cur_col, u_int wrap)
  586. {
  587. return (ahc_print_register(NULL, 0, "ARG_2",
  588. 0x52, regvalue, cur_col, wrap));
  589. }
  590. int
  591. ahc_last_msg_print(u_int regvalue, u_int *cur_col, u_int wrap)
  592. {
  593. return (ahc_print_register(NULL, 0, "LAST_MSG",
  594. 0x53, regvalue, cur_col, wrap));
  595. }
  596. static const ahc_reg_parse_entry_t SCSISEQ_TEMPLATE_parse_table[] = {
  597. { "ENAUTOATNP", 0x02, 0x02 },
  598. { "ENAUTOATNI", 0x04, 0x04 },
  599. { "ENAUTOATNO", 0x08, 0x08 },
  600. { "ENRSELI", 0x10, 0x10 },
  601. { "ENSELI", 0x20, 0x20 },
  602. { "ENSELO", 0x40, 0x40 }
  603. };
  604. int
  605. ahc_scsiseq_template_print(u_int regvalue, u_int *cur_col, u_int wrap)
  606. {
  607. return (ahc_print_register(SCSISEQ_TEMPLATE_parse_table, 6, "SCSISEQ_TEMPLATE",
  608. 0x54, regvalue, cur_col, wrap));
  609. }
  610. static const ahc_reg_parse_entry_t HA_274_BIOSGLOBAL_parse_table[] = {
  611. { "HA_274_EXTENDED_TRANS",0x01, 0x01 }
  612. };
  613. int
  614. ahc_ha_274_biosglobal_print(u_int regvalue, u_int *cur_col, u_int wrap)
  615. {
  616. return (ahc_print_register(HA_274_BIOSGLOBAL_parse_table, 1, "HA_274_BIOSGLOBAL",
  617. 0x56, regvalue, cur_col, wrap));
  618. }
  619. static const ahc_reg_parse_entry_t SEQ_FLAGS2_parse_table[] = {
  620. { "SCB_DMA", 0x01, 0x01 },
  621. { "TARGET_MSG_PENDING", 0x02, 0x02 }
  622. };
  623. int
  624. ahc_seq_flags2_print(u_int regvalue, u_int *cur_col, u_int wrap)
  625. {
  626. return (ahc_print_register(SEQ_FLAGS2_parse_table, 2, "SEQ_FLAGS2",
  627. 0x57, regvalue, cur_col, wrap));
  628. }
  629. static const ahc_reg_parse_entry_t SCSICONF_parse_table[] = {
  630. { "ENSPCHK", 0x20, 0x20 },
  631. { "RESET_SCSI", 0x40, 0x40 },
  632. { "TERM_ENB", 0x80, 0x80 },
  633. { "HSCSIID", 0x07, 0x07 },
  634. { "HWSCSIID", 0x0f, 0x0f }
  635. };
  636. int
  637. ahc_scsiconf_print(u_int regvalue, u_int *cur_col, u_int wrap)
  638. {
  639. return (ahc_print_register(SCSICONF_parse_table, 5, "SCSICONF",
  640. 0x5a, regvalue, cur_col, wrap));
  641. }
  642. static const ahc_reg_parse_entry_t INTDEF_parse_table[] = {
  643. { "EDGE_TRIG", 0x80, 0x80 },
  644. { "VECTOR", 0x0f, 0x0f }
  645. };
  646. int
  647. ahc_intdef_print(u_int regvalue, u_int *cur_col, u_int wrap)
  648. {
  649. return (ahc_print_register(INTDEF_parse_table, 2, "INTDEF",
  650. 0x5c, regvalue, cur_col, wrap));
  651. }
  652. int
  653. ahc_hostconf_print(u_int regvalue, u_int *cur_col, u_int wrap)
  654. {
  655. return (ahc_print_register(NULL, 0, "HOSTCONF",
  656. 0x5d, regvalue, cur_col, wrap));
  657. }
  658. static const ahc_reg_parse_entry_t HA_274_BIOSCTRL_parse_table[] = {
  659. { "CHANNEL_B_PRIMARY", 0x08, 0x08 },
  660. { "BIOSMODE", 0x30, 0x30 },
  661. { "BIOSDISABLED", 0x30, 0x30 }
  662. };
  663. int
  664. ahc_ha_274_biosctrl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  665. {
  666. return (ahc_print_register(HA_274_BIOSCTRL_parse_table, 3, "HA_274_BIOSCTRL",
  667. 0x5f, regvalue, cur_col, wrap));
  668. }
  669. static const ahc_reg_parse_entry_t SEQCTL_parse_table[] = {
  670. { "LOADRAM", 0x01, 0x01 },
  671. { "SEQRESET", 0x02, 0x02 },
  672. { "STEP", 0x04, 0x04 },
  673. { "BRKADRINTEN", 0x08, 0x08 },
  674. { "FASTMODE", 0x10, 0x10 },
  675. { "FAILDIS", 0x20, 0x20 },
  676. { "PAUSEDIS", 0x40, 0x40 },
  677. { "PERRORDIS", 0x80, 0x80 }
  678. };
  679. int
  680. ahc_seqctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  681. {
  682. return (ahc_print_register(SEQCTL_parse_table, 8, "SEQCTL",
  683. 0x60, regvalue, cur_col, wrap));
  684. }
  685. int
  686. ahc_seqram_print(u_int regvalue, u_int *cur_col, u_int wrap)
  687. {
  688. return (ahc_print_register(NULL, 0, "SEQRAM",
  689. 0x61, regvalue, cur_col, wrap));
  690. }
  691. int
  692. ahc_seqaddr0_print(u_int regvalue, u_int *cur_col, u_int wrap)
  693. {
  694. return (ahc_print_register(NULL, 0, "SEQADDR0",
  695. 0x62, regvalue, cur_col, wrap));
  696. }
  697. static const ahc_reg_parse_entry_t SEQADDR1_parse_table[] = {
  698. { "SEQADDR1_MASK", 0x01, 0x01 }
  699. };
  700. int
  701. ahc_seqaddr1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  702. {
  703. return (ahc_print_register(SEQADDR1_parse_table, 1, "SEQADDR1",
  704. 0x63, regvalue, cur_col, wrap));
  705. }
  706. int
  707. ahc_accum_print(u_int regvalue, u_int *cur_col, u_int wrap)
  708. {
  709. return (ahc_print_register(NULL, 0, "ACCUM",
  710. 0x64, regvalue, cur_col, wrap));
  711. }
  712. int
  713. ahc_sindex_print(u_int regvalue, u_int *cur_col, u_int wrap)
  714. {
  715. return (ahc_print_register(NULL, 0, "SINDEX",
  716. 0x65, regvalue, cur_col, wrap));
  717. }
  718. int
  719. ahc_dindex_print(u_int regvalue, u_int *cur_col, u_int wrap)
  720. {
  721. return (ahc_print_register(NULL, 0, "DINDEX",
  722. 0x66, regvalue, cur_col, wrap));
  723. }
  724. int
  725. ahc_allones_print(u_int regvalue, u_int *cur_col, u_int wrap)
  726. {
  727. return (ahc_print_register(NULL, 0, "ALLONES",
  728. 0x69, regvalue, cur_col, wrap));
  729. }
  730. int
  731. ahc_allzeros_print(u_int regvalue, u_int *cur_col, u_int wrap)
  732. {
  733. return (ahc_print_register(NULL, 0, "ALLZEROS",
  734. 0x6a, regvalue, cur_col, wrap));
  735. }
  736. int
  737. ahc_none_print(u_int regvalue, u_int *cur_col, u_int wrap)
  738. {
  739. return (ahc_print_register(NULL, 0, "NONE",
  740. 0x6a, regvalue, cur_col, wrap));
  741. }
  742. static const ahc_reg_parse_entry_t FLAGS_parse_table[] = {
  743. { "CARRY", 0x01, 0x01 },
  744. { "ZERO", 0x02, 0x02 }
  745. };
  746. int
  747. ahc_flags_print(u_int regvalue, u_int *cur_col, u_int wrap)
  748. {
  749. return (ahc_print_register(FLAGS_parse_table, 2, "FLAGS",
  750. 0x6b, regvalue, cur_col, wrap));
  751. }
  752. int
  753. ahc_sindir_print(u_int regvalue, u_int *cur_col, u_int wrap)
  754. {
  755. return (ahc_print_register(NULL, 0, "SINDIR",
  756. 0x6c, regvalue, cur_col, wrap));
  757. }
  758. int
  759. ahc_dindir_print(u_int regvalue, u_int *cur_col, u_int wrap)
  760. {
  761. return (ahc_print_register(NULL, 0, "DINDIR",
  762. 0x6d, regvalue, cur_col, wrap));
  763. }
  764. int
  765. ahc_stack_print(u_int regvalue, u_int *cur_col, u_int wrap)
  766. {
  767. return (ahc_print_register(NULL, 0, "STACK",
  768. 0x6f, regvalue, cur_col, wrap));
  769. }
  770. int
  771. ahc_targ_offset_print(u_int regvalue, u_int *cur_col, u_int wrap)
  772. {
  773. return (ahc_print_register(NULL, 0, "TARG_OFFSET",
  774. 0x70, regvalue, cur_col, wrap));
  775. }
  776. int
  777. ahc_sram_base_print(u_int regvalue, u_int *cur_col, u_int wrap)
  778. {
  779. return (ahc_print_register(NULL, 0, "SRAM_BASE",
  780. 0x70, regvalue, cur_col, wrap));
  781. }
  782. static const ahc_reg_parse_entry_t DSCOMMAND0_parse_table[] = {
  783. { "CIOPARCKEN", 0x01, 0x01 },
  784. { "USCBSIZE32", 0x02, 0x02 },
  785. { "RAMPS", 0x04, 0x04 },
  786. { "INTSCBRAMSEL", 0x08, 0x08 },
  787. { "EXTREQLCK", 0x10, 0x10 },
  788. { "MPARCKEN", 0x20, 0x20 },
  789. { "DPARCKEN", 0x40, 0x40 },
  790. { "CACHETHEN", 0x80, 0x80 }
  791. };
  792. int
  793. ahc_dscommand0_print(u_int regvalue, u_int *cur_col, u_int wrap)
  794. {
  795. return (ahc_print_register(DSCOMMAND0_parse_table, 8, "DSCOMMAND0",
  796. 0x84, regvalue, cur_col, wrap));
  797. }
  798. static const ahc_reg_parse_entry_t BUSTIME_parse_table[] = {
  799. { "BON", 0x0f, 0x0f },
  800. { "BOFF", 0xf0, 0xf0 }
  801. };
  802. int
  803. ahc_bustime_print(u_int regvalue, u_int *cur_col, u_int wrap)
  804. {
  805. return (ahc_print_register(BUSTIME_parse_table, 2, "BUSTIME",
  806. 0x85, regvalue, cur_col, wrap));
  807. }
  808. static const ahc_reg_parse_entry_t DSCOMMAND1_parse_table[] = {
  809. { "HADDLDSEL0", 0x01, 0x01 },
  810. { "HADDLDSEL1", 0x02, 0x02 },
  811. { "DSLATT", 0xfc, 0xfc }
  812. };
  813. int
  814. ahc_dscommand1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  815. {
  816. return (ahc_print_register(DSCOMMAND1_parse_table, 3, "DSCOMMAND1",
  817. 0x85, regvalue, cur_col, wrap));
  818. }
  819. static const ahc_reg_parse_entry_t BUSSPD_parse_table[] = {
  820. { "STBON", 0x07, 0x07 },
  821. { "STBOFF", 0x38, 0x38 },
  822. { "DFTHRSH_75", 0x80, 0x80 },
  823. { "DFTHRSH", 0xc0, 0xc0 },
  824. { "DFTHRSH_100", 0xc0, 0xc0 }
  825. };
  826. int
  827. ahc_busspd_print(u_int regvalue, u_int *cur_col, u_int wrap)
  828. {
  829. return (ahc_print_register(BUSSPD_parse_table, 5, "BUSSPD",
  830. 0x86, regvalue, cur_col, wrap));
  831. }
  832. static const ahc_reg_parse_entry_t HS_MAILBOX_parse_table[] = {
  833. { "SEQ_MAILBOX", 0x0f, 0x0f },
  834. { "HOST_TQINPOS", 0x80, 0x80 },
  835. { "HOST_MAILBOX", 0xf0, 0xf0 }
  836. };
  837. int
  838. ahc_hs_mailbox_print(u_int regvalue, u_int *cur_col, u_int wrap)
  839. {
  840. return (ahc_print_register(HS_MAILBOX_parse_table, 3, "HS_MAILBOX",
  841. 0x86, regvalue, cur_col, wrap));
  842. }
  843. static const ahc_reg_parse_entry_t DSPCISTATUS_parse_table[] = {
  844. { "DFTHRSH_100", 0xc0, 0xc0 }
  845. };
  846. int
  847. ahc_dspcistatus_print(u_int regvalue, u_int *cur_col, u_int wrap)
  848. {
  849. return (ahc_print_register(DSPCISTATUS_parse_table, 1, "DSPCISTATUS",
  850. 0x86, regvalue, cur_col, wrap));
  851. }
  852. static const ahc_reg_parse_entry_t HCNTRL_parse_table[] = {
  853. { "CHIPRST", 0x01, 0x01 },
  854. { "CHIPRSTACK", 0x01, 0x01 },
  855. { "INTEN", 0x02, 0x02 },
  856. { "PAUSE", 0x04, 0x04 },
  857. { "IRQMS", 0x08, 0x08 },
  858. { "SWINT", 0x10, 0x10 },
  859. { "POWRDN", 0x40, 0x40 }
  860. };
  861. int
  862. ahc_hcntrl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  863. {
  864. return (ahc_print_register(HCNTRL_parse_table, 7, "HCNTRL",
  865. 0x87, regvalue, cur_col, wrap));
  866. }
  867. int
  868. ahc_haddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  869. {
  870. return (ahc_print_register(NULL, 0, "HADDR",
  871. 0x88, regvalue, cur_col, wrap));
  872. }
  873. int
  874. ahc_hcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  875. {
  876. return (ahc_print_register(NULL, 0, "HCNT",
  877. 0x8c, regvalue, cur_col, wrap));
  878. }
  879. int
  880. ahc_scbptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  881. {
  882. return (ahc_print_register(NULL, 0, "SCBPTR",
  883. 0x90, regvalue, cur_col, wrap));
  884. }
  885. static const ahc_reg_parse_entry_t INTSTAT_parse_table[] = {
  886. { "SEQINT", 0x01, 0x01 },
  887. { "CMDCMPLT", 0x02, 0x02 },
  888. { "SCSIINT", 0x04, 0x04 },
  889. { "BRKADRINT", 0x08, 0x08 },
  890. { "BAD_PHASE", 0x01, 0x01 },
  891. { "INT_PEND", 0x0f, 0x0f },
  892. { "SEND_REJECT", 0x11, 0x11 },
  893. { "PROTO_VIOLATION", 0x21, 0x21 },
  894. { "NO_MATCH", 0x31, 0x31 },
  895. { "IGN_WIDE_RES", 0x41, 0x41 },
  896. { "PDATA_REINIT", 0x51, 0x51 },
  897. { "HOST_MSG_LOOP", 0x61, 0x61 },
  898. { "BAD_STATUS", 0x71, 0x71 },
  899. { "PERR_DETECTED", 0x81, 0x81 },
  900. { "DATA_OVERRUN", 0x91, 0x91 },
  901. { "MKMSG_FAILED", 0xa1, 0xa1 },
  902. { "MISSED_BUSFREE", 0xb1, 0xb1 },
  903. { "SCB_MISMATCH", 0xc1, 0xc1 },
  904. { "NO_FREE_SCB", 0xd1, 0xd1 },
  905. { "OUT_OF_RANGE", 0xe1, 0xe1 },
  906. { "SEQINT_MASK", 0xf1, 0xf1 }
  907. };
  908. int
  909. ahc_intstat_print(u_int regvalue, u_int *cur_col, u_int wrap)
  910. {
  911. return (ahc_print_register(INTSTAT_parse_table, 21, "INTSTAT",
  912. 0x91, regvalue, cur_col, wrap));
  913. }
  914. static const ahc_reg_parse_entry_t CLRINT_parse_table[] = {
  915. { "CLRSEQINT", 0x01, 0x01 },
  916. { "CLRCMDINT", 0x02, 0x02 },
  917. { "CLRSCSIINT", 0x04, 0x04 },
  918. { "CLRBRKADRINT", 0x08, 0x08 },
  919. { "CLRPARERR", 0x10, 0x10 }
  920. };
  921. int
  922. ahc_clrint_print(u_int regvalue, u_int *cur_col, u_int wrap)
  923. {
  924. return (ahc_print_register(CLRINT_parse_table, 5, "CLRINT",
  925. 0x92, regvalue, cur_col, wrap));
  926. }
  927. static const ahc_reg_parse_entry_t ERROR_parse_table[] = {
  928. { "ILLHADDR", 0x01, 0x01 },
  929. { "ILLSADDR", 0x02, 0x02 },
  930. { "ILLOPCODE", 0x04, 0x04 },
  931. { "SQPARERR", 0x08, 0x08 },
  932. { "DPARERR", 0x10, 0x10 },
  933. { "MPARERR", 0x20, 0x20 },
  934. { "PCIERRSTAT", 0x40, 0x40 },
  935. { "CIOPARERR", 0x80, 0x80 }
  936. };
  937. int
  938. ahc_error_print(u_int regvalue, u_int *cur_col, u_int wrap)
  939. {
  940. return (ahc_print_register(ERROR_parse_table, 8, "ERROR",
  941. 0x92, regvalue, cur_col, wrap));
  942. }
  943. static const ahc_reg_parse_entry_t DFCNTRL_parse_table[] = {
  944. { "FIFORESET", 0x01, 0x01 },
  945. { "FIFOFLUSH", 0x02, 0x02 },
  946. { "DIRECTION", 0x04, 0x04 },
  947. { "HDMAEN", 0x08, 0x08 },
  948. { "HDMAENACK", 0x08, 0x08 },
  949. { "SDMAEN", 0x10, 0x10 },
  950. { "SDMAENACK", 0x10, 0x10 },
  951. { "SCSIEN", 0x20, 0x20 },
  952. { "WIDEODD", 0x40, 0x40 },
  953. { "PRELOADEN", 0x80, 0x80 }
  954. };
  955. int
  956. ahc_dfcntrl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  957. {
  958. return (ahc_print_register(DFCNTRL_parse_table, 10, "DFCNTRL",
  959. 0x93, regvalue, cur_col, wrap));
  960. }
  961. static const ahc_reg_parse_entry_t DFSTATUS_parse_table[] = {
  962. { "FIFOEMP", 0x01, 0x01 },
  963. { "FIFOFULL", 0x02, 0x02 },
  964. { "DFTHRESH", 0x04, 0x04 },
  965. { "HDONE", 0x08, 0x08 },
  966. { "MREQPEND", 0x10, 0x10 },
  967. { "FIFOQWDEMP", 0x20, 0x20 },
  968. { "DFCACHETH", 0x40, 0x40 },
  969. { "PRELOAD_AVAIL", 0x80, 0x80 }
  970. };
  971. int
  972. ahc_dfstatus_print(u_int regvalue, u_int *cur_col, u_int wrap)
  973. {
  974. return (ahc_print_register(DFSTATUS_parse_table, 8, "DFSTATUS",
  975. 0x94, regvalue, cur_col, wrap));
  976. }
  977. int
  978. ahc_dfwaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  979. {
  980. return (ahc_print_register(NULL, 0, "DFWADDR",
  981. 0x95, regvalue, cur_col, wrap));
  982. }
  983. int
  984. ahc_dfdat_print(u_int regvalue, u_int *cur_col, u_int wrap)
  985. {
  986. return (ahc_print_register(NULL, 0, "DFDAT",
  987. 0x99, regvalue, cur_col, wrap));
  988. }
  989. static const ahc_reg_parse_entry_t SCBCNT_parse_table[] = {
  990. { "SCBAUTO", 0x80, 0x80 },
  991. { "SCBCNT_MASK", 0x1f, 0x1f }
  992. };
  993. int
  994. ahc_scbcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  995. {
  996. return (ahc_print_register(SCBCNT_parse_table, 2, "SCBCNT",
  997. 0x9a, regvalue, cur_col, wrap));
  998. }
  999. int
  1000. ahc_qinfifo_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1001. {
  1002. return (ahc_print_register(NULL, 0, "QINFIFO",
  1003. 0x9b, regvalue, cur_col, wrap));
  1004. }
  1005. int
  1006. ahc_qoutfifo_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1007. {
  1008. return (ahc_print_register(NULL, 0, "QOUTFIFO",
  1009. 0x9d, regvalue, cur_col, wrap));
  1010. }
  1011. static const ahc_reg_parse_entry_t CRCCONTROL1_parse_table[] = {
  1012. { "TARGCRCCNTEN", 0x04, 0x04 },
  1013. { "TARGCRCENDEN", 0x08, 0x08 },
  1014. { "CRCREQCHKEN", 0x10, 0x10 },
  1015. { "CRCENDCHKEN", 0x20, 0x20 },
  1016. { "CRCVALCHKEN", 0x40, 0x40 },
  1017. { "CRCONSEEN", 0x80, 0x80 }
  1018. };
  1019. int
  1020. ahc_crccontrol1_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1021. {
  1022. return (ahc_print_register(CRCCONTROL1_parse_table, 6, "CRCCONTROL1",
  1023. 0x9d, regvalue, cur_col, wrap));
  1024. }
  1025. static const ahc_reg_parse_entry_t SCSIPHASE_parse_table[] = {
  1026. { "DATA_OUT_PHASE", 0x01, 0x01 },
  1027. { "DATA_IN_PHASE", 0x02, 0x02 },
  1028. { "MSG_OUT_PHASE", 0x04, 0x04 },
  1029. { "MSG_IN_PHASE", 0x08, 0x08 },
  1030. { "COMMAND_PHASE", 0x10, 0x10 },
  1031. { "STATUS_PHASE", 0x20, 0x20 },
  1032. { "DATA_PHASE_MASK", 0x03, 0x03 }
  1033. };
  1034. int
  1035. ahc_scsiphase_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1036. {
  1037. return (ahc_print_register(SCSIPHASE_parse_table, 7, "SCSIPHASE",
  1038. 0x9e, regvalue, cur_col, wrap));
  1039. }
  1040. static const ahc_reg_parse_entry_t SFUNCT_parse_table[] = {
  1041. { "ALT_MODE", 0x80, 0x80 }
  1042. };
  1043. int
  1044. ahc_sfunct_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1045. {
  1046. return (ahc_print_register(SFUNCT_parse_table, 1, "SFUNCT",
  1047. 0x9f, regvalue, cur_col, wrap));
  1048. }
  1049. int
  1050. ahc_scb_base_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1051. {
  1052. return (ahc_print_register(NULL, 0, "SCB_BASE",
  1053. 0xa0, regvalue, cur_col, wrap));
  1054. }
  1055. int
  1056. ahc_scb_cdb_ptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1057. {
  1058. return (ahc_print_register(NULL, 0, "SCB_CDB_PTR",
  1059. 0xa0, regvalue, cur_col, wrap));
  1060. }
  1061. int
  1062. ahc_scb_residual_sgptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1063. {
  1064. return (ahc_print_register(NULL, 0, "SCB_RESIDUAL_SGPTR",
  1065. 0xa4, regvalue, cur_col, wrap));
  1066. }
  1067. int
  1068. ahc_scb_scsi_status_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1069. {
  1070. return (ahc_print_register(NULL, 0, "SCB_SCSI_STATUS",
  1071. 0xa8, regvalue, cur_col, wrap));
  1072. }
  1073. int
  1074. ahc_scb_target_phases_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1075. {
  1076. return (ahc_print_register(NULL, 0, "SCB_TARGET_PHASES",
  1077. 0xa9, regvalue, cur_col, wrap));
  1078. }
  1079. int
  1080. ahc_scb_target_data_dir_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1081. {
  1082. return (ahc_print_register(NULL, 0, "SCB_TARGET_DATA_DIR",
  1083. 0xaa, regvalue, cur_col, wrap));
  1084. }
  1085. int
  1086. ahc_scb_target_itag_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1087. {
  1088. return (ahc_print_register(NULL, 0, "SCB_TARGET_ITAG",
  1089. 0xab, regvalue, cur_col, wrap));
  1090. }
  1091. int
  1092. ahc_scb_dataptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1093. {
  1094. return (ahc_print_register(NULL, 0, "SCB_DATAPTR",
  1095. 0xac, regvalue, cur_col, wrap));
  1096. }
  1097. static const ahc_reg_parse_entry_t SCB_DATACNT_parse_table[] = {
  1098. { "SG_LAST_SEG", 0x80, 0x80 },
  1099. { "SG_HIGH_ADDR_BITS", 0x7f, 0x7f }
  1100. };
  1101. int
  1102. ahc_scb_datacnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1103. {
  1104. return (ahc_print_register(SCB_DATACNT_parse_table, 2, "SCB_DATACNT",
  1105. 0xb0, regvalue, cur_col, wrap));
  1106. }
  1107. static const ahc_reg_parse_entry_t SCB_SGPTR_parse_table[] = {
  1108. { "SG_LIST_NULL", 0x01, 0x01 },
  1109. { "SG_FULL_RESID", 0x02, 0x02 },
  1110. { "SG_RESID_VALID", 0x04, 0x04 }
  1111. };
  1112. int
  1113. ahc_scb_sgptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1114. {
  1115. return (ahc_print_register(SCB_SGPTR_parse_table, 3, "SCB_SGPTR",
  1116. 0xb4, regvalue, cur_col, wrap));
  1117. }
  1118. static const ahc_reg_parse_entry_t SCB_CONTROL_parse_table[] = {
  1119. { "DISCONNECTED", 0x04, 0x04 },
  1120. { "ULTRAENB", 0x08, 0x08 },
  1121. { "MK_MESSAGE", 0x10, 0x10 },
  1122. { "TAG_ENB", 0x20, 0x20 },
  1123. { "DISCENB", 0x40, 0x40 },
  1124. { "TARGET_SCB", 0x80, 0x80 },
  1125. { "STATUS_RCVD", 0x80, 0x80 },
  1126. { "SCB_TAG_TYPE", 0x03, 0x03 }
  1127. };
  1128. int
  1129. ahc_scb_control_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1130. {
  1131. return (ahc_print_register(SCB_CONTROL_parse_table, 8, "SCB_CONTROL",
  1132. 0xb8, regvalue, cur_col, wrap));
  1133. }
  1134. static const ahc_reg_parse_entry_t SCB_SCSIID_parse_table[] = {
  1135. { "TWIN_CHNLB", 0x80, 0x80 },
  1136. { "OID", 0x0f, 0x0f },
  1137. { "TWIN_TID", 0x70, 0x70 },
  1138. { "TID", 0xf0, 0xf0 }
  1139. };
  1140. int
  1141. ahc_scb_scsiid_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1142. {
  1143. return (ahc_print_register(SCB_SCSIID_parse_table, 4, "SCB_SCSIID",
  1144. 0xb9, regvalue, cur_col, wrap));
  1145. }
  1146. static const ahc_reg_parse_entry_t SCB_LUN_parse_table[] = {
  1147. { "SCB_XFERLEN_ODD", 0x80, 0x80 },
  1148. { "LID", 0x3f, 0x3f }
  1149. };
  1150. int
  1151. ahc_scb_lun_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1152. {
  1153. return (ahc_print_register(SCB_LUN_parse_table, 2, "SCB_LUN",
  1154. 0xba, regvalue, cur_col, wrap));
  1155. }
  1156. int
  1157. ahc_scb_tag_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1158. {
  1159. return (ahc_print_register(NULL, 0, "SCB_TAG",
  1160. 0xbb, regvalue, cur_col, wrap));
  1161. }
  1162. int
  1163. ahc_scb_cdb_len_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1164. {
  1165. return (ahc_print_register(NULL, 0, "SCB_CDB_LEN",
  1166. 0xbc, regvalue, cur_col, wrap));
  1167. }
  1168. int
  1169. ahc_scb_scsirate_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1170. {
  1171. return (ahc_print_register(NULL, 0, "SCB_SCSIRATE",
  1172. 0xbd, regvalue, cur_col, wrap));
  1173. }
  1174. int
  1175. ahc_scb_scsioffset_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1176. {
  1177. return (ahc_print_register(NULL, 0, "SCB_SCSIOFFSET",
  1178. 0xbe, regvalue, cur_col, wrap));
  1179. }
  1180. int
  1181. ahc_scb_next_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1182. {
  1183. return (ahc_print_register(NULL, 0, "SCB_NEXT",
  1184. 0xbf, regvalue, cur_col, wrap));
  1185. }
  1186. static const ahc_reg_parse_entry_t SEECTL_2840_parse_table[] = {
  1187. { "DO_2840", 0x01, 0x01 },
  1188. { "CK_2840", 0x02, 0x02 },
  1189. { "CS_2840", 0x04, 0x04 }
  1190. };
  1191. int
  1192. ahc_seectl_2840_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1193. {
  1194. return (ahc_print_register(SEECTL_2840_parse_table, 3, "SEECTL_2840",
  1195. 0xc0, regvalue, cur_col, wrap));
  1196. }
  1197. static const ahc_reg_parse_entry_t STATUS_2840_parse_table[] = {
  1198. { "DI_2840", 0x01, 0x01 },
  1199. { "EEPROM_TF", 0x80, 0x80 },
  1200. { "ADSEL", 0x1e, 0x1e },
  1201. { "BIOS_SEL", 0x60, 0x60 }
  1202. };
  1203. int
  1204. ahc_status_2840_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1205. {
  1206. return (ahc_print_register(STATUS_2840_parse_table, 4, "STATUS_2840",
  1207. 0xc1, regvalue, cur_col, wrap));
  1208. }
  1209. int
  1210. ahc_scb_64_btt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1211. {
  1212. return (ahc_print_register(NULL, 0, "SCB_64_BTT",
  1213. 0xd0, regvalue, cur_col, wrap));
  1214. }
  1215. int
  1216. ahc_cchaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1217. {
  1218. return (ahc_print_register(NULL, 0, "CCHADDR",
  1219. 0xe0, regvalue, cur_col, wrap));
  1220. }
  1221. int
  1222. ahc_cchcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1223. {
  1224. return (ahc_print_register(NULL, 0, "CCHCNT",
  1225. 0xe8, regvalue, cur_col, wrap));
  1226. }
  1227. int
  1228. ahc_ccsgram_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1229. {
  1230. return (ahc_print_register(NULL, 0, "CCSGRAM",
  1231. 0xe9, regvalue, cur_col, wrap));
  1232. }
  1233. int
  1234. ahc_ccsgaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1235. {
  1236. return (ahc_print_register(NULL, 0, "CCSGADDR",
  1237. 0xea, regvalue, cur_col, wrap));
  1238. }
  1239. static const ahc_reg_parse_entry_t CCSGCTL_parse_table[] = {
  1240. { "CCSGRESET", 0x01, 0x01 },
  1241. { "SG_FETCH_NEEDED", 0x02, 0x02 },
  1242. { "CCSGEN", 0x08, 0x08 },
  1243. { "CCSGDONE", 0x80, 0x80 }
  1244. };
  1245. int
  1246. ahc_ccsgctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1247. {
  1248. return (ahc_print_register(CCSGCTL_parse_table, 4, "CCSGCTL",
  1249. 0xeb, regvalue, cur_col, wrap));
  1250. }
  1251. int
  1252. ahc_ccscbram_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1253. {
  1254. return (ahc_print_register(NULL, 0, "CCSCBRAM",
  1255. 0xec, regvalue, cur_col, wrap));
  1256. }
  1257. int
  1258. ahc_ccscbaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1259. {
  1260. return (ahc_print_register(NULL, 0, "CCSCBADDR",
  1261. 0xed, regvalue, cur_col, wrap));
  1262. }
  1263. static const ahc_reg_parse_entry_t CCSCBCTL_parse_table[] = {
  1264. { "CCSCBRESET", 0x01, 0x01 },
  1265. { "CCSCBDIR", 0x04, 0x04 },
  1266. { "CCSCBEN", 0x08, 0x08 },
  1267. { "CCARREN", 0x10, 0x10 },
  1268. { "ARRDONE", 0x40, 0x40 },
  1269. { "CCSCBDONE", 0x80, 0x80 }
  1270. };
  1271. int
  1272. ahc_ccscbctl_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1273. {
  1274. return (ahc_print_register(CCSCBCTL_parse_table, 6, "CCSCBCTL",
  1275. 0xee, regvalue, cur_col, wrap));
  1276. }
  1277. int
  1278. ahc_ccscbcnt_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1279. {
  1280. return (ahc_print_register(NULL, 0, "CCSCBCNT",
  1281. 0xef, regvalue, cur_col, wrap));
  1282. }
  1283. int
  1284. ahc_scbbaddr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1285. {
  1286. return (ahc_print_register(NULL, 0, "SCBBADDR",
  1287. 0xf0, regvalue, cur_col, wrap));
  1288. }
  1289. int
  1290. ahc_ccscbptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1291. {
  1292. return (ahc_print_register(NULL, 0, "CCSCBPTR",
  1293. 0xf1, regvalue, cur_col, wrap));
  1294. }
  1295. int
  1296. ahc_hnscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1297. {
  1298. return (ahc_print_register(NULL, 0, "HNSCB_QOFF",
  1299. 0xf4, regvalue, cur_col, wrap));
  1300. }
  1301. int
  1302. ahc_snscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1303. {
  1304. return (ahc_print_register(NULL, 0, "SNSCB_QOFF",
  1305. 0xf6, regvalue, cur_col, wrap));
  1306. }
  1307. int
  1308. ahc_sdscb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1309. {
  1310. return (ahc_print_register(NULL, 0, "SDSCB_QOFF",
  1311. 0xf8, regvalue, cur_col, wrap));
  1312. }
  1313. static const ahc_reg_parse_entry_t QOFF_CTLSTA_parse_table[] = {
  1314. { "SDSCB_ROLLOVER", 0x10, 0x10 },
  1315. { "SNSCB_ROLLOVER", 0x20, 0x20 },
  1316. { "SCB_AVAIL", 0x40, 0x40 },
  1317. { "SCB_QSIZE_256", 0x06, 0x06 },
  1318. { "SCB_QSIZE", 0x07, 0x07 }
  1319. };
  1320. int
  1321. ahc_qoff_ctlsta_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1322. {
  1323. return (ahc_print_register(QOFF_CTLSTA_parse_table, 5, "QOFF_CTLSTA",
  1324. 0xfa, regvalue, cur_col, wrap));
  1325. }
  1326. static const ahc_reg_parse_entry_t DFF_THRSH_parse_table[] = {
  1327. { "RD_DFTHRSH_MIN", 0x00, 0x00 },
  1328. { "WR_DFTHRSH_MIN", 0x00, 0x00 },
  1329. { "RD_DFTHRSH_25", 0x01, 0x01 },
  1330. { "RD_DFTHRSH_50", 0x02, 0x02 },
  1331. { "RD_DFTHRSH_63", 0x03, 0x03 },
  1332. { "RD_DFTHRSH_75", 0x04, 0x04 },
  1333. { "RD_DFTHRSH_85", 0x05, 0x05 },
  1334. { "RD_DFTHRSH_90", 0x06, 0x06 },
  1335. { "RD_DFTHRSH", 0x07, 0x07 },
  1336. { "RD_DFTHRSH_MAX", 0x07, 0x07 },
  1337. { "WR_DFTHRSH_25", 0x10, 0x10 },
  1338. { "WR_DFTHRSH_50", 0x20, 0x20 },
  1339. { "WR_DFTHRSH_63", 0x30, 0x30 },
  1340. { "WR_DFTHRSH_75", 0x40, 0x40 },
  1341. { "WR_DFTHRSH_85", 0x50, 0x50 },
  1342. { "WR_DFTHRSH_90", 0x60, 0x60 },
  1343. { "WR_DFTHRSH", 0x70, 0x70 },
  1344. { "WR_DFTHRSH_MAX", 0x70, 0x70 }
  1345. };
  1346. int
  1347. ahc_dff_thrsh_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1348. {
  1349. return (ahc_print_register(DFF_THRSH_parse_table, 18, "DFF_THRSH",
  1350. 0xfb, regvalue, cur_col, wrap));
  1351. }
  1352. static const ahc_reg_parse_entry_t SG_CACHE_SHADOW_parse_table[] = {
  1353. { "LAST_SEG_DONE", 0x01, 0x01 },
  1354. { "LAST_SEG", 0x02, 0x02 },
  1355. { "SG_ADDR_MASK", 0xf8, 0xf8 }
  1356. };
  1357. int
  1358. ahc_sg_cache_shadow_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1359. {
  1360. return (ahc_print_register(SG_CACHE_SHADOW_parse_table, 3, "SG_CACHE_SHADOW",
  1361. 0xfc, regvalue, cur_col, wrap));
  1362. }
  1363. static const ahc_reg_parse_entry_t SG_CACHE_PRE_parse_table[] = {
  1364. { "LAST_SEG_DONE", 0x01, 0x01 },
  1365. { "LAST_SEG", 0x02, 0x02 },
  1366. { "SG_ADDR_MASK", 0xf8, 0xf8 }
  1367. };
  1368. int
  1369. ahc_sg_cache_pre_print(u_int regvalue, u_int *cur_col, u_int wrap)
  1370. {
  1371. return (ahc_print_register(SG_CACHE_PRE_parse_table, 3, "SG_CACHE_PRE",
  1372. 0xfc, regvalue, cur_col, wrap));
  1373. }