Changeset 81994 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Nov 19, 2019 12:58:23 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 134793
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevACPI.cpp
r81993 r81994 49 49 #ifdef IN_RING3 50 50 /** Locks the device state, ring-3 only. */ 51 # define DEVACPI_LOCK_R3(a_p This) \51 # define DEVACPI_LOCK_R3(a_pDevIns, a_pThis) \ 52 52 do { \ 53 int rcLock = PDM CritSectEnter(&(a_pThis)->CritSect, VERR_IGNORED); \53 int rcLock = PDMDevHlpCritSectEnter((a_pDevIns), &(a_pThis)->CritSect, VERR_IGNORED); \ 54 54 AssertRC(rcLock); \ 55 55 } while (0) 56 56 #endif 57 57 /** Unlocks the device state (all contexts). */ 58 #define DEVACPI_UNLOCK(a_p This) \59 do { PDM CritSectLeave(&(a_pThis)->CritSect); } while (0)58 #define DEVACPI_UNLOCK(a_pDevIns, a_pThis) \ 59 do { PDMDevHlpCritSectLeave((a_pDevIns), &(a_pThis)->CritSect); } while (0) 60 60 61 61 … … 418 418 /** ACPI port interface. */ 419 419 PDMIACPIPORT IACPIPort; 420 /** Pointer to the device instance so we can get our bearings from 421 * interface functions. */ 422 PPDMDEVINSR3 pDevIns; 423 420 424 /** Pointer to the device instance. */ 421 425 PPDMDEVINSR3 pDevInsR3; … … 822 826 static void acpiUpdatePm1a(PPDMDEVINS pDevIns, ACPIState *pThis, uint32_t sts, uint32_t en) 823 827 { 824 Assert(PDM CritSectIsOwner(&pThis->CritSect));828 Assert(PDMDevHlpCritSectIsOwner(pDevIns, &pThis->CritSect)); 825 829 826 830 const bool old_level = acpiSCILevel(pDevIns, pThis); … … 850 854 static void apicR3UpdateGpe0(PPDMDEVINS pDevIns, ACPIState *pThis, uint32_t sts, uint32_t en) 851 855 { 852 Assert(PDM CritSectIsOwner(&pThis->CritSect));856 Assert(PDMDevHlpCritSectIsOwner(pDevIns, &pThis->CritSect)); 853 857 854 858 const bool old_level = acpiSCILevel(pDevIns, pThis); … … 917 921 { 918 922 ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IACPIPort); 919 DEVACPI_LOCK_R3(pThis); 923 PPDMDEVINS pDevIns = pThis->pDevIns; 924 DEVACPI_LOCK_R3(pDevIns, pThis); 920 925 921 926 Log(("acpiR3Port_PowerButtonPress: handled=%d status=%x\n", pThis->fPowerButtonHandled, pThis->pm1a_sts)); 922 927 pThis->fPowerButtonHandled = false; 923 acpiUpdatePm1a(p This->pDevInsR3, pThis, pThis->pm1a_sts | PWRBTN_STS, pThis->pm1a_en);924 925 DEVACPI_UNLOCK(p This);928 acpiUpdatePm1a(pDevIns, pThis, pThis->pm1a_sts | PWRBTN_STS, pThis->pm1a_en); 929 930 DEVACPI_UNLOCK(pDevIns, pThis); 926 931 return VINF_SUCCESS; 927 932 } … … 933 938 { 934 939 ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IACPIPort); 935 DEVACPI_LOCK_R3(pThis); 940 PPDMDEVINS pDevIns = pThis->pDevIns; 941 DEVACPI_LOCK_R3(pDevIns, pThis); 936 942 937 943 *pfHandled = pThis->fPowerButtonHandled; 938 944 939 DEVACPI_UNLOCK(p This);945 DEVACPI_UNLOCK(pDevIns, pThis); 940 946 return VINF_SUCCESS; 941 947 } … … 948 954 { 949 955 ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IACPIPort); 950 DEVACPI_LOCK_R3(pThis); 956 PPDMDEVINS pDevIns = pThis->pDevIns; 957 DEVACPI_LOCK_R3(pDevIns, pThis); 951 958 952 959 *pfEntered = (pThis->pm1a_ctl & SCI_EN) != 0; 953 960 954 DEVACPI_UNLOCK(p This);961 DEVACPI_UNLOCK(pDevIns, pThis); 955 962 return VINF_SUCCESS; 956 963 } … … 962 969 { 963 970 ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IACPIPort); 964 DEVACPI_LOCK_R3(pThis); 971 PPDMDEVINS pDevIns = pThis->pDevIns; 972 DEVACPI_LOCK_R3(pDevIns, pThis); 965 973 966 974 *pfLocked = VMCPUSET_IS_PRESENT(&pThis->CpuSetLocked, uCpu); 967 975 968 DEVACPI_UNLOCK(p This);976 DEVACPI_UNLOCK(pDevIns, pThis); 969 977 return VINF_SUCCESS; 970 978 } … … 979 987 { 980 988 ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IACPIPort); 981 DEVACPI_LOCK_R3(pThis); 982 983 acpiUpdatePm1a(pThis->pDevInsR3, pThis, pThis->pm1a_sts | SLPBTN_STS, pThis->pm1a_en); 984 985 DEVACPI_UNLOCK(pThis); 989 PPDMDEVINS pDevIns = pThis->pDevIns; 990 DEVACPI_LOCK_R3(pDevIns, pThis); 991 992 acpiUpdatePm1a(pDevIns, pThis, pThis->pm1a_sts | SLPBTN_STS, pThis->pm1a_en); 993 994 DEVACPI_UNLOCK(pDevIns, pThis); 986 995 return VINF_SUCCESS; 987 996 } … … 997 1006 { 998 1007 ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IACPIPort); 999 DEVACPI_LOCK_R3(pThis); 1000 1001 apicR3UpdateGpe0(pThis->pDevInsR3, pThis, pThis->gpe0_sts | 0x4, pThis->gpe0_en); 1002 1003 DEVACPI_UNLOCK(pThis); 1008 PPDMDEVINS pDevIns = pThis->pDevIns; 1009 DEVACPI_LOCK_R3(pDevIns, pThis); 1010 1011 apicR3UpdateGpe0(pDevIns, pThis, pThis->gpe0_sts | 0x4, pThis->gpe0_en); 1012 1013 DEVACPI_UNLOCK(pDevIns, pThis); 1004 1014 return VINF_SUCCESS; 1005 1015 } … … 1015 1025 { 1016 1026 ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IACPIPort); 1017 DEVACPI_LOCK_R3(pThis); 1018 1019 apicR3UpdateGpe0(pThis->pDevInsR3, pThis, pThis->gpe0_sts | 0x1, pThis->gpe0_en); 1020 1021 DEVACPI_UNLOCK(pThis); 1027 PPDMDEVINS pDevIns = pThis->pDevIns; 1028 DEVACPI_LOCK_R3(pDevIns, pThis); 1029 1030 apicR3UpdateGpe0(pDevIns, pThis, pThis->gpe0_sts | 0x1, pThis->gpe0_en); 1031 1032 DEVACPI_UNLOCK(pDevIns, pThis); 1022 1033 return VINF_SUCCESS; 1023 1034 } … … 1076 1087 RT_NOREF(pvUser); 1077 1088 1078 DEVACPI_LOCK_R3(p This);1089 DEVACPI_LOCK_R3(pDevIns, pThis); 1079 1090 Log(("acpi: pm timer sts %#x (%d), en %#x (%d)\n", 1080 1091 pThis->pm1a_sts, (pThis->pm1a_sts & TMR_STS) != 0, … … 1082 1093 uint64_t u64Now = TMTimerGet(pTimer); 1083 1094 acpiPmTimerUpdate(pDevIns, pThis, u64Now); 1084 DEVACPI_UNLOCK(p This);1095 DEVACPI_UNLOCK(pDevIns, pThis); 1085 1096 1086 1097 acpiR3PmTimerReset(pThis, u64Now); … … 1206 1217 1207 1218 ACPIState *pThis = (ACPIState *)pvUser; 1208 DEVACPI_LOCK_R3(p This);1219 DEVACPI_LOCK_R3(pDevIns, pThis); 1209 1220 1210 1221 u32 >>= pThis->u8IndexShift; … … 1218 1229 pThis->uBatteryIndex = u32; 1219 1230 1220 DEVACPI_UNLOCK(p This);1231 DEVACPI_UNLOCK(pDevIns, pThis); 1221 1232 return VINF_SUCCESS; 1222 1233 } … … 1231 1242 1232 1243 ACPIState *pThis = (ACPIState *)pvUser; 1233 DEVACPI_LOCK_R3(p This);1244 DEVACPI_LOCK_R3(pDevIns, pThis); 1234 1245 1235 1246 int rc = VINF_SUCCESS; … … 1273 1284 } 1274 1285 1275 DEVACPI_UNLOCK(p This);1286 DEVACPI_UNLOCK(pDevIns, pThis); 1276 1287 return rc; 1277 1288 } … … 1287 1298 1288 1299 ACPIState *pThis = (ACPIState *)pvUser; 1289 DEVACPI_LOCK_R3(p This);1300 DEVACPI_LOCK_R3(pDevIns, pThis); 1290 1301 1291 1302 if (u32 == SYSTEM_INFO_INDEX_VALID || u32 == SYSTEM_INFO_INDEX_INVALID) … … 1305 1316 } 1306 1317 1307 DEVACPI_UNLOCK(p This);1318 DEVACPI_UNLOCK(pDevIns, pThis); 1308 1319 return VINF_SUCCESS; 1309 1320 } … … 1318 1329 1319 1330 ACPIState *pThis = (ACPIState *)pvUser; 1320 DEVACPI_LOCK_R3(p This);1331 DEVACPI_LOCK_R3(pDevIns, pThis); 1321 1332 1322 1333 int rc = VINF_SUCCESS; … … 1500 1511 } 1501 1512 1502 DEVACPI_UNLOCK(p This);1513 DEVACPI_UNLOCK(pDevIns, pThis); 1503 1514 Log(("acpiR3SysInfoDataRead: idx=%d val=%#x (%u) rc=%Rrc\n", uSystemInfoIndex, *pu32, *pu32, rc)); 1504 1515 return rc; … … 1514 1525 return PDMDevHlpDBGFStop(pDevIns, RT_SRC_POS, "cb=%d Port=%u u32=%#x idx=%u\n", cb, Port, u32, pThis->uSystemInfoIndex); 1515 1526 1516 DEVACPI_LOCK_R3(p This);1527 DEVACPI_LOCK_R3(pDevIns, pThis); 1517 1528 Log(("addr=%#x cb=%d u32=%#x si=%#x\n", Port, cb, u32, pThis->uSystemInfoIndex)); 1518 1529 … … 1546 1557 } 1547 1558 1548 DEVACPI_UNLOCK(p This);1559 DEVACPI_UNLOCK(pDevIns, pThis); 1549 1560 return rc; 1550 1561 } … … 1560 1571 1561 1572 ACPIState *pThis = (ACPIState *)pvUser; 1562 DEVACPI_LOCK_R3(p This);1573 DEVACPI_LOCK_R3(pDevIns, pThis); 1563 1574 1564 1575 *pu32 = pThis->pm1a_en; 1565 1576 1566 DEVACPI_UNLOCK(p This);1577 DEVACPI_UNLOCK(pDevIns, pThis); 1567 1578 Log(("acpiR3Pm1aEnRead -> %#x\n", *pu32)); 1568 1579 return VINF_SUCCESS; … … 1578 1589 1579 1590 ACPIState *pThis = (ACPIState *)pvUser; 1580 DEVACPI_LOCK_R3(p This);1591 DEVACPI_LOCK_R3(pDevIns, pThis); 1581 1592 1582 1593 Log(("acpiR3PM1aEnWrite: %#x (%#x)\n", u32, u32 & ~(RSR_EN | IGN_EN) & 0xffff)); … … 1585 1596 acpiUpdatePm1a(pDevIns, pThis, pThis->pm1a_sts, u32); 1586 1597 1587 DEVACPI_UNLOCK(p This);1598 DEVACPI_UNLOCK(pDevIns, pThis); 1588 1599 return VINF_SUCCESS; 1589 1600 } … … 1601 1612 1602 1613 ACPIState *pThis = (ACPIState *)pvUser; 1603 DEVACPI_LOCK_R3(p This);1614 DEVACPI_LOCK_R3(pDevIns, pThis); 1604 1615 1605 1616 *pu32 = pThis->pm1a_sts; 1606 1617 1607 DEVACPI_UNLOCK(p This);1618 DEVACPI_UNLOCK(pDevIns, pThis); 1608 1619 Log(("acpiR3Pm1aStsRead: %#x\n", *pu32)); 1609 1620 return VINF_SUCCESS; … … 1619 1630 1620 1631 ACPIState *pThis = (ACPIState *)pvUser; 1621 DEVACPI_LOCK_R3(p This);1632 DEVACPI_LOCK_R3(pDevIns, pThis); 1622 1633 1623 1634 Log(("acpiR3PM1aStsWrite: %#x (%#x)\n", u32, u32 & ~(RSR_STS | IGN_STS) & 0xffff)); … … 1628 1639 acpiUpdatePm1a(pDevIns, pThis, u32, pThis->pm1a_en); 1629 1640 1630 DEVACPI_UNLOCK(p This);1641 DEVACPI_UNLOCK(pDevIns, pThis); 1631 1642 return VINF_SUCCESS; 1632 1643 } … … 1644 1655 1645 1656 ACPIState *pThis = (ACPIState *)pvUser; 1646 DEVACPI_LOCK_R3(p This);1657 DEVACPI_LOCK_R3(pDevIns, pThis); 1647 1658 1648 1659 *pu32 = pThis->pm1a_ctl; 1649 1660 1650 DEVACPI_UNLOCK(p This);1661 DEVACPI_UNLOCK(pDevIns, pThis); 1651 1662 Log(("acpiR3Pm1aCtlRead: %#x\n", *pu32)); 1652 1663 return VINF_SUCCESS; … … 1662 1673 1663 1674 ACPIState *pThis = (ACPIState *)pvUser; 1664 DEVACPI_LOCK_R3(p This);1675 DEVACPI_LOCK_R3(pDevIns, pThis); 1665 1676 1666 1677 Log(("acpiR3PM1aCtlWrite: %#x (%#x)\n", u32, u32 & ~(RSR_CNT | IGN_CNT) & 0xffff)); … … 1709 1720 } 1710 1721 1711 DEVACPI_UNLOCK(p This);1722 DEVACPI_UNLOCK(pDevIns, pThis); 1712 1723 Log(("acpiR3PM1aCtlWrite: rc=%Rrc\n", rc)); 1713 1724 return rc; … … 1738 1749 return rc; 1739 1750 1740 rc = PDM CritSectEnter(&pThis->CritSect, VINF_IOM_R3_IOPORT_READ);1751 rc = PDMDevHlpCritSectEnter(pDevIns, &pThis->CritSect, VINF_IOM_R3_IOPORT_READ); 1741 1752 if (rc != VINF_SUCCESS) 1742 1753 { … … 1749 1760 *pu32 = pThis->uPmTimerVal; 1750 1761 1751 DEVACPI_UNLOCK(p This);1762 DEVACPI_UNLOCK(pDevIns, pThis); 1752 1763 TMTimerUnlock(pThis->CTX_SUFF(pPmTimer)); 1753 1764 … … 1760 1771 if (*pu32 - uOld >= 0x10000000) 1761 1772 { 1762 # if defined(IN_RING0)1773 # if defined(IN_RING0) 1763 1774 pThis->uPmTimeA = uOld; 1764 1775 pThis->uPmTimeB = *pu32; 1765 1776 return VERR_TM_TIMER_BAD_CLOCK; 1766 # elif defined(IN_RING3)1777 # elif defined(IN_RING3) 1767 1778 AssertReleaseMsgFailed(("acpiPMTmrRead: old=%08RX32, current=%08RX32\n", uOld, *pu32)); 1768 # endif1779 # endif 1769 1780 } 1770 1781 #endif … … 1796 1807 1797 1808 ACPIState *pThis = (ACPIState *)pvUser; 1798 DEVACPI_LOCK_R3(p This);1809 DEVACPI_LOCK_R3(pDevIns, pThis); 1799 1810 1800 1811 *pu32 = pThis->gpe0_sts & 0xff; 1801 1812 1802 DEVACPI_UNLOCK(p This);1813 DEVACPI_UNLOCK(pDevIns, pThis); 1803 1814 Log(("acpiR3Gpe0StsRead: %#x\n", *pu32)); 1804 1815 return VINF_SUCCESS; … … 1814 1825 1815 1826 ACPIState *pThis = (ACPIState *)pvUser; 1816 DEVACPI_LOCK_R3(p This);1827 DEVACPI_LOCK_R3(pDevIns, pThis); 1817 1828 1818 1829 Log(("acpiR3Gpe0StsWrite: %#x (%#x)\n", u32, pThis->gpe0_sts & ~u32)); … … 1820 1831 apicR3UpdateGpe0(pDevIns, pThis, u32, pThis->gpe0_en); 1821 1832 1822 DEVACPI_UNLOCK(p This);1833 DEVACPI_UNLOCK(pDevIns, pThis); 1823 1834 return VINF_SUCCESS; 1824 1835 } … … 1836 1847 1837 1848 ACPIState *pThis = (ACPIState *)pvUser; 1838 DEVACPI_LOCK_R3(p This);1849 DEVACPI_LOCK_R3(pDevIns, pThis); 1839 1850 1840 1851 *pu32 = pThis->gpe0_en & 0xff; 1841 1852 1842 DEVACPI_UNLOCK(p This);1853 DEVACPI_UNLOCK(pDevIns, pThis); 1843 1854 Log(("acpiR3Gpe0EnRead: %#x\n", *pu32)); 1844 1855 return VINF_SUCCESS; … … 1854 1865 1855 1866 ACPIState *pThis = (ACPIState *)pvUser; 1856 DEVACPI_LOCK_R3(p This);1867 DEVACPI_LOCK_R3(pDevIns, pThis); 1857 1868 1858 1869 Log(("acpiR3Gpe0EnWrite: %#x\n", u32)); 1859 1870 apicR3UpdateGpe0(pDevIns, pThis, pThis->gpe0_sts, u32); 1860 1871 1861 DEVACPI_UNLOCK(p This);1872 DEVACPI_UNLOCK(pDevIns, pThis); 1862 1873 return VINF_SUCCESS; 1863 1874 } … … 1873 1884 1874 1885 ACPIState *pThis = (ACPIState *)pvUser; 1875 DEVACPI_LOCK_R3(p This);1886 DEVACPI_LOCK_R3(pDevIns, pThis); 1876 1887 1877 1888 if (u32 == ACPI_ENABLE) … … 1882 1893 Log(("acpiR3SmiWrite: %#x <- unknown value\n", u32)); 1883 1894 1884 DEVACPI_UNLOCK(p This);1895 DEVACPI_UNLOCK(pDevIns, pThis); 1885 1896 return VINF_SUCCESS; 1886 1897 } … … 2116 2127 return PDMDevHlpDBGFStop(pDevIns, RT_SRC_POS, "cb=%d Port=%u u32=%#x\n", cb, Port, u32); 2117 2128 2118 DEVACPI_LOCK_R3(p This);2129 DEVACPI_LOCK_R3(pDevIns, pThis); 2119 2130 switch (off) 2120 2131 { … … 2129 2140 case SMBHSTCNT_OFF: 2130 2141 { 2131 Assert(PDM CritSectIsOwner(&pThis->CritSect));2142 Assert(PDMDevHlpCritSectIsOwner(pDevIns, &pThis->CritSect)); 2132 2143 2133 2144 const bool old_level = acpiSCILevel(pDevIns, pThis); … … 2187 2198 } 2188 2199 2189 DEVACPI_UNLOCK(p This);2200 DEVACPI_UNLOCK(pDevIns, pThis); 2190 2201 return VINF_SUCCESS; 2191 2202 } … … 2206 2217 return VERR_IOM_IOPORT_UNUSED; 2207 2218 2208 DEVACPI_LOCK_R3(p This);2219 DEVACPI_LOCK_R3(pDevIns, pThis); 2209 2220 switch (off) 2210 2221 { … … 2253 2264 } 2254 2265 2255 DEVACPI_UNLOCK(p This);2266 DEVACPI_UNLOCK(pDevIns, pThis); 2256 2267 LogFunc(("Port=%#x u32=%#x cb=%u rc=%Rrc\n", Port, *pu32, cb, rc)); 2257 2268 return rc; … … 2563 2574 return rc; 2564 2575 TMTimerLock(pThis->pPmTimerR3, VERR_IGNORED); 2565 DEVACPI_LOCK_R3(p This);2576 DEVACPI_LOCK_R3(pDevIns, pThis); 2566 2577 uint64_t u64Now = TMTimerGet(pThis->pPmTimerR3); 2567 2578 /* The interrupt may be incorrectly re-generated if the state is restored from versions < 7. */ 2568 2579 acpiPmTimerUpdate(pDevIns, pThis, u64Now); 2569 2580 acpiR3PmTimerReset(pThis, u64Now); 2570 DEVACPI_UNLOCK(p This);2581 DEVACPI_UNLOCK(pDevIns, pThis); 2571 2582 TMTimerUnlock(pThis->pPmTimerR3); 2572 2583 } … … 3372 3383 3373 3384 Log2(("acpi: PCI config write: 0x%x -> 0x%x (%d)\n", u32Value, uAddress, cb)); 3374 DEVACPI_LOCK_R3(p This);3385 DEVACPI_LOCK_R3(pDevIns, pThis); 3375 3386 3376 3387 if (uAddress == VBOX_PCI_INTERRUPT_LINE) … … 3414 3425 } 3415 3426 3416 DEVACPI_UNLOCK(p This);3427 DEVACPI_UNLOCK(pDevIns, pThis); 3417 3428 return rcStrict; 3418 3429 } … … 3440 3451 /* Check if it was already attached */ 3441 3452 int rc = VINF_SUCCESS; 3442 DEVACPI_LOCK_R3(p This);3453 DEVACPI_LOCK_R3(pDevIns, pThis); 3443 3454 if (!VMCPUSET_IS_PRESENT(&pThis->CpuSetAttached, iLUN)) 3444 3455 { … … 3462 3473 } 3463 3474 } 3464 DEVACPI_UNLOCK(p This);3475 DEVACPI_UNLOCK(pDevIns, pThis); 3465 3476 return rc; 3466 3477 } … … 3483 3494 3484 3495 /* Check if it was already detached */ 3485 DEVACPI_LOCK_R3(p This);3496 DEVACPI_LOCK_R3(pDevIns, pThis); 3486 3497 if (VMCPUSET_IS_PRESENT(&pThis->CpuSetAttached, iLUN)) 3487 3498 { … … 3499 3510 AssertMsgFailed(("CPU is still locked by the guest\n")); 3500 3511 } 3501 DEVACPI_UNLOCK(p This);3512 DEVACPI_UNLOCK(pDevIns, pThis); 3502 3513 } 3503 3514 … … 3607 3618 /** @todo move more of the code up! */ 3608 3619 3620 pThis->pDevIns = pDevIns; 3609 3621 pThis->pDevInsR3 = pDevIns; 3610 3622 pThis->pDevInsR0 = PDMDEVINS_2_R0PTR(pDevIns); … … 4100 4112 } 4101 4113 4102 #endif /* IN_RING3 */ 4114 #else /* !IN_RING3 */ 4115 4116 /** 4117 * @callback_method_impl{PDMDEVREGR0,pfnConstruct} 4118 */ 4119 static DECLCALLBACK(int) acpiRZConstruct(PPDMDEVINS pDevIns) 4120 { 4121 PDMDEV_CHECK_VERSIONS_RETURN(pDevIns); 4122 //PACPISTATE pThis = PDMDEVINS_2_DATA(pDevIns, PACPISTATE); 4123 4124 int rc = PDMDevHlpSetDeviceCritSect(pDevIns, PDMDevHlpCritSectGetNop(pDevIns)); 4125 AssertRCReturn(rc, rc); 4126 4127 return VINF_SUCCESS; 4128 } 4129 4130 #endif /* !IN_RING3 */ 4103 4131 4104 4132 /** … … 4147 4175 #elif defined(IN_RING0) 4148 4176 /* .pfnEarlyConstruct = */ NULL, 4149 /* .pfnConstruct = */ NULL,4177 /* .pfnConstruct = */ acpiRZConstruct, 4150 4178 /* .pfnDestruct = */ NULL, 4151 4179 /* .pfnFinalDestruct = */ NULL, … … 4160 4188 /* .pfnReserved7 = */ NULL, 4161 4189 #elif defined(IN_RC) 4162 /* .pfnConstruct = */ NULL,4190 /* .pfnConstruct = */ acpiRZConstruct, 4163 4191 /* .pfnReserved0 = */ NULL, 4164 4192 /* .pfnReserved1 = */ NULL,
Note:
See TracChangeset
for help on using the changeset viewer.