Changeset 86084 in vbox for trunk/src/VBox/Devices/Bus
- Timestamp:
- Sep 10, 2020 1:12:30 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 140313
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp
r86080 r86084 403 403 404 404 /** 405 * An array of the shift values to select the device table segment index from a 406 * device ID. 407 */ 408 static uint8_t const g_auDevTabSegShifts[] = { 0, 15, 14, 13 }; 409 410 /** 405 411 * The maximum size (inclusive) of each device table segment (0 to 7). 406 412 * Indexed by the device table segment index. … … 1974 1980 1975 1981 uint8_t const idxSegsEn = Ctrl.n.u3DevTabSegEn; 1982 Assert(idxSegsEn < RT_ELEMENTS(g_auDevTabSegShifts)); 1976 1983 Assert(idxSegsEn < RT_ELEMENTS(g_auDevTabSegMasks)); 1977 1984 1978 uint8_t const idxSeg = uDevId & g_auDevTabSegMasks[idxSegsEn] >> 13;1985 uint8_t const idxSeg = (uDevId & g_auDevTabSegMasks[idxSegsEn]) >> g_auDevTabSegShifts[idxSegsEn]; 1979 1986 Assert(idxSeg < RT_ELEMENTS(pThis->aDevTabBaseAddrs)); 1980 1987 1981 1988 RTGCPHYS const GCPhysDevTab = pThis->aDevTabBaseAddrs[idxSeg].n.u40Base << X86_PAGE_4K_SHIFT; 1982 uint16_t const offDte = uDevId & ~g_auDevTabSegMasks[idxSegsEn];1989 uint16_t const offDte = (uDevId & ~g_auDevTabSegMasks[idxSegsEn]) * sizeof(DTE_T); 1983 1990 RTGCPHYS const GCPhysDte = GCPhysDevTab + offDte; 1984 1991
Note:
See TracChangeset
for help on using the changeset viewer.