Changeset 89897 in vbox
- Timestamp:
- Jun 24, 2021 6:28:04 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 145355
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevHda.h
r89893 r89897 139 139 } HDAREGDESC; 140 140 141 #ifdef VBOX_STRICT 141 142 extern const HDAREGDESC g_aHdaRegMap[HDA_NUM_REGS]; 143 #endif 142 144 143 145 … … 163 165 #define HDA_REG_IND_NAME(x) HDA_REG_##x 164 166 #define HDA_MEM_IND_NAME(x) HDA_RMX_##x 165 #define HDA_REG_IND(pThis, x) ((pThis)->au32Regs[g_aHdaRegMap[x].mem_idx]) 166 #define HDA_REG(pThis, x) (HDA_REG_IND((pThis), HDA_REG_IND_NAME(x))) 167 168 /** Direct register access by HDASTATE::au32Reg index. */ 169 #define HDA_REG_BY_IDX(a_pThis, a_idxReg) ((a_pThis)->au32Regs[(a_idxReg)]) 170 /** Accesses register @a ShortRegNm. */ 171 #define HDA_REG(a_pThis, a_ShortRegNm) HDA_REG_BY_IDX(a_pThis, HDA_MEM_IND_NAME(a_ShortRegNm)) 172 /** Indirect register access via g_aHdaRegMap[].mem_idx. */ 173 #define HDA_REG_IND(a_pThis, a_idxMap) HDA_REG_BY_IDX(a_pThis, g_aHdaRegMap[(a_idxMap)].mem_idx) 167 174 168 175 … … 330 337 #define HDA_STREAM_RMX_DEF(name, num) (HDA_RMX_SD##num##name) 331 338 /** @note sdnum here _MUST_ be stream reg number [0,7]. */ 332 #define HDA_STREAM_REG(pThis, name, sdnum) (HDA_REG_IND((pThis), HDA_REG_SD0##name + (sdnum) * 10)) 339 #ifdef VBOX_STRICT 340 # define HDA_STREAM_REG(pThis, name, sdnum) (*hdaStrictStreamRegAccessor((pThis), HDA_REG_SD0##name, HDA_RMX_SD0##name, (sdnum))) 341 #else 342 # define HDA_STREAM_REG(pThis, name, sdnum) (HDA_REG_BY_IDX((pThis), HDA_RMX_SD0##name + (sdnum) * 10)) 343 #endif 333 344 334 345 #define HDA_SD_NUM_FROM_REG(pThis, func, reg) ((reg - HDA_STREAM_REG_DEF(func, 0)) / 10) … … 816 827 } 817 828 829 #ifdef VBOX_STRICT 830 DECLINLINE(uint32_t *) hdaStrictStreamRegAccessor(PHDASTATE pThis, uint32_t idxMap0, uint32_t idxReg0, size_t idxStream) 831 { 832 AssertMsg(idxStream < RT_ELEMENTS(pThis->aStreams), ("%#zx\n", idxStream)); 833 AssertMsg(idxReg0 + idxStream * 10 == g_aHdaRegMap[idxMap0 + idxStream * 10].mem_idx, 834 ("idxReg0=%d idxStream=%zx\n", idxReg0, idxStream)); 835 return &pThis->au32Regs[idxReg0 + idxStream * 10]; 836 } 837 #endif 838 818 839 /* Used by hdaR3StreamSetUp: */ 819 840 uint8_t hdaSDFIFOWToBytes(uint16_t u16RegFIFOW);
Note:
See TracChangeset
for help on using the changeset viewer.