Changeset 26183 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Feb 3, 2010 12:46:34 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57202
- Location:
- trunk/src/VBox/Devices/PC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/ACPI/VBoxAcpi.cpp
r26172 r26183 42 42 /* Statically compiled AML */ 43 43 # include <vboxaml.hex> 44 # include <vboxssdt-standard.hex> 45 # include <vboxssdt-cpuhotplug.hex> 44 46 #endif 45 47 … … 178 180 */ 179 181 if ( RT_FAILURE(rc) 180 || strncmp((const char *)pbAmlCode, "DSDT", 4))182 || strncmp((const char *)pbAmlCode, pcszSignature, 4)) 181 183 { 182 184 RTMemFree(pbAmlCode); … … 186 188 if (RT_SUCCESS(rc)) 187 189 rc = VERR_PARSE_ERROR; 190 } 191 else 192 { 193 *ppbAmlCode = pbAmlCode; 194 *pcbAmlCode = cbAmlCode; 195 rc = VINF_SUCCESS; 188 196 } 189 197 } … … 196 204 MMR3HeapFree(pszAmlFilePath); 197 205 } 198 else if (rc == VERR_CFGM_VALUE_NOT_FOUND) 206 207 return rc; 208 } 209 210 /* Two only public functions */ 211 int acpiPrepareDsdt(PPDMDEVINS pDevIns, void * *ppPtr, size_t *puDsdtLen) 212 { 213 #ifdef VBOX_WITH_DYNAMIC_DSDT 214 return prepareDynamicDsdt(pDevIns, ppPtr, puDsdtLen); 215 #else 216 uint8_t *pbAmlCodeDsdt = NULL; 217 size_t cbAmlCodeDsdt = 0; 218 int rc = acpiAmlLoadExternal(pDevIns, "DsdtFilePath", "DSDT", &pbAmlCodeDsdt, &cbAmlCodeDsdt); 219 220 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 199 221 { 200 222 rc = VINF_SUCCESS; 201 223 202 224 /* Use the compiled in AML code */ 203 cbAmlCode = sizeof(AmlCode);204 pbAmlCode = (uint8_t *)RTMemAllocZ(cbAmlCode);205 if (pbAmlCode )206 memcpy(pbAmlCode , AmlCode, cbAmlCode);225 cbAmlCodeDsdt = sizeof(AmlCode); 226 pbAmlCodeDsdt = (uint8_t *)RTMemAllocZ(cbAmlCodeDsdt); 227 if (pbAmlCodeDsdt) 228 memcpy(pbAmlCodeDsdt, AmlCode, cbAmlCodeDsdt); 207 229 else 208 230 rc = VERR_NO_MEMORY; … … 210 232 else if (RT_FAILURE(rc)) 211 233 return PDMDEV_SET_ERROR(pDevIns, rc, 212 N_("Configuration error: Failed to read \" AmlFilePath\""));234 N_("Configuration error: Failed to read \"DsdtFilePath\"")); 213 235 214 236 if (RT_SUCCESS(rc)) 215 237 { 216 patchAml(pDevIns, pbAmlCode , cbAmlCode);217 *ppPtr = pbAmlCode ;218 *puDsdtLen = cbAmlCode ;238 patchAml(pDevIns, pbAmlCodeDsdt, cbAmlCodeDsdt); 239 *ppPtr = pbAmlCodeDsdt; 240 *puDsdtLen = cbAmlCodeDsdt; 219 241 } 220 242 return rc; … … 233 255 } 234 256 257 int acpiPrepareSsdt(PPDMDEVINS pDevIns, void* *ppPtr, size_t *puSsdtLen) 258 { 259 uint8_t *pbAmlCodeSsdt = NULL; 260 size_t cbAmlCodeSsdt = 0; 261 int rc = acpiAmlLoadExternal(pDevIns, "SsdtFilePath", "SSDT", &pbAmlCodeSsdt, &cbAmlCodeSsdt); 262 263 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 264 { 265 bool fCpuHotPlug = false; 266 uint8_t *pbAmlCode = NULL; 267 rc = CFGMR3QueryBoolDef(pDevIns->pCfgHandle, "CpuHotPlug", &fCpuHotPlug, false); 268 269 if (RT_FAILURE(rc)) 270 return rc; 271 272 if (fCpuHotPlug) 273 { 274 pbAmlCode = AmlCodeSsdtCpuHotPlug; 275 cbAmlCodeSsdt = sizeof(AmlCodeSsdtCpuHotPlug); 276 } 277 else 278 { 279 pbAmlCode = AmlCodeSsdtStandard; 280 cbAmlCodeSsdt = sizeof(AmlCodeSsdtStandard); 281 } 282 283 pbAmlCodeSsdt = (uint8_t *)RTMemAllocZ(cbAmlCodeSsdt); 284 if (pbAmlCodeSsdt) 285 memcpy(pbAmlCodeSsdt, pbAmlCode, cbAmlCodeSsdt); 286 else 287 rc = VERR_NO_MEMORY; 288 } 289 else if (RT_FAILURE(rc)) 290 return PDMDEV_SET_ERROR(pDevIns, rc, 291 N_("Configuration error: Failed to read \"SsdtFilePath\"")); 292 293 if (RT_SUCCESS(rc)) 294 { 295 patchAml(pDevIns, pbAmlCodeSsdt, cbAmlCodeSsdt); 296 *ppPtr = pbAmlCodeSsdt; 297 *puSsdtLen = cbAmlCodeSsdt; 298 } 299 300 return VINF_SUCCESS; 301 } 302 303 int acpiCleanupSsdt(PPDMDEVINS pDevIns, void* pPtr) 304 { 305 if (pPtr) 306 RTMemFree(pPtr); 307 return VINF_SUCCESS; 308 } 309 -
trunk/src/VBox/Devices/PC/DevACPI.cpp
r26173 r26183 45 45 int acpiPrepareDsdt(PPDMDEVINS pDevIns, void* *ppPtr, size_t *puDsdtLen); 46 46 int acpiCleanupDsdt(PPDMDEVINS pDevIns, void* pPtr); 47 48 int acpiPrepareSsdt(PPDMDEVINS pDevIns, void* *ppPtr, size_t *puSsdtLen); 49 int acpiCleanupSsdt(PPDMDEVINS pDevIns, void* pPtr); 47 50 #endif /* !IN_RING3 */ 48 51 … … 682 685 } 683 686 687 /** Secondary System Description Table (SSDT) */ 688 689 static void acpiSetupSSDT(ACPIState *s, RTGCPHYS32 addr, 690 void* pPtr, size_t uSsdtLen) 691 { 692 acpiPhyscpy(s, addr, pPtr, uSsdtLen); 693 } 694 684 695 /** Firmware ACPI Control Structure (FACS) */ 685 696 static void acpiSetupFACS(ACPIState *s, RTGCPHYS32 addr) … … 1940 1951 int rc; 1941 1952 RTGCPHYS32 GCPhysCur, GCPhysRsdt, GCPhysXsdt, GCPhysFadtAcpi1, GCPhysFadtAcpi2, GCPhysFacs, GCPhysDsdt; 1942 RTGCPHYS32 GCPhysHpet = 0, GCPhysApic = 0 ;1953 RTGCPHYS32 GCPhysHpet = 0, GCPhysApic = 0, GCPhysSsdt = 0; 1943 1954 uint32_t addend = 0; 1944 1955 RTGCPHYS32 aGCPhysRsdt[4]; 1945 1956 RTGCPHYS32 aGCPhysXsdt[4]; 1946 uint32_t cAddr, iMadt = 0, iHpet = 0 ;1957 uint32_t cAddr, iMadt = 0, iHpet = 0, iSsdt = 0; 1947 1958 size_t cbRsdt = sizeof(ACPITBLHEADER); 1948 1959 size_t cbXsdt = sizeof(ACPITBLHEADER); … … 1954 1965 if (s->fUseHpet) 1955 1966 iHpet = cAddr++; /* HPET */ 1967 1968 iSsdt = cAddr++; /* SSDT */ 1956 1969 1957 1970 cbRsdt += cAddr*sizeof(uint32_t); /* each entry: 32 bits phys. address. */ … … 2009 2022 GCPhysCur = RT_ALIGN_32(GCPhysCur + sizeof(ACPITBLHPET), 16); 2010 2023 } 2024 2025 void* pSsdtCode = NULL; 2026 size_t cbSsdtSize = 0; 2027 rc = acpiPrepareSsdt(s->pDevIns, &pSsdtCode, &cbSsdtSize); 2028 if (RT_FAILURE(rc)) 2029 return rc; 2030 2031 GCPhysSsdt = GCPhysCur; 2032 GCPhysCur = RT_ALIGN_32(GCPhysCur + cbSsdtSize, 16); 2033 2011 2034 GCPhysDsdt = GCPhysCur; 2012 2035 … … 2018 2041 2019 2042 GCPhysCur = RT_ALIGN_32(GCPhysCur + cbDsdtSize, 16); 2043 2020 2044 if (GCPhysCur > 0x10000) 2021 2045 return PDMDEV_SET_ERROR(s->pDevIns, VERR_TOO_MUCH_DATA, … … 2031 2055 if (s->fUseHpet) 2032 2056 Log((" HPET 0x%08X", GCPhysHpet + addend)); 2057 Log((" SSDT 0x%08X", GCPhysSsdt + addend)); 2033 2058 Log(("\n")); 2034 2059 … … 2053 2078 aGCPhysXsdt[iHpet] = GCPhysHpet + addend; 2054 2079 } 2080 acpiSetupSSDT(s, GCPhysSsdt + addend, pSsdtCode, cbSsdtSize); 2081 acpiCleanupSsdt(s->pDevIns, pSsdtCode); 2082 aGCPhysRsdt[iSsdt] = GCPhysSsdt + addend; 2083 aGCPhysXsdt[iSsdt] = GCPhysSsdt + addend; 2055 2084 2056 2085 rc = acpiSetupRSDT(s, GCPhysRsdt + addend, cAddr, aGCPhysRsdt); -
trunk/src/VBox/Devices/PC/vbox-standard.dsl
r26095 r26183 263 263 * End: 264 264 */ 265 // $Id$ 266 /// @file 267 // 268 // VirtualBox ACPI 269 // 270 // Copyright (C) 2006-2007 Sun Microsystems, Inc. 271 // 272 // This file is part of VirtualBox Open Source Edition (OSE), as 273 // available from http://www.virtualbox.org. This file is free software; 274 // you can redistribute it and/or modify it under the terms of the GNU 275 // General Public License (GPL) as published by the Free Software 276 // Foundation, in version 2 as it comes in the "COPYING" file of the 277 // VirtualBox OSE distribution. VirtualBox OSE is distributed in the 278 // hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 279 // 280 // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa 281 // Clara, CA 95054 USA or visit http://www.sun.com if you need 282 // additional information or have any questions. 283 284 DefinitionBlock ("SSDT.aml", "SSDT", 1, "VBOX ", "VBOXCPUT", 2) 285 { 286 // Processor object 287 // #1463: Showing the CPU can make the guest do bad things on it like SpeedStep. 288 // In this case, XP SP2 contains this buggy Intelppm.sys driver which wants to mess 289 // with SpeedStep if it finds a CPU object and when it finds out that it can't, it 290 // tries to unload and crashes (MS probably never tested this code path). 291 // So we enable this ACPI object only for certain guests, which do need it, 292 // if by accident Windows guest seen enabled CPU object, just boot from latest 293 // known good configuration, as it remembers state, even if ACPI object gets disabled. 294 Scope (\_PR) 295 { 296 Processor (CPU0, /* Name */ 297 0x00, /* Id */ 298 0x0, /* Processor IO ports range start */ 299 0x0 /* Processor IO ports range length */ 300 ) 301 { 302 } 303 304 Processor (CPU1, /* Name */ 305 0x01, /* Id */ 306 0x0, /* Processor IO ports range start */ 307 0x0 /* Processor IO ports range length */ 308 ) 309 { 310 } 311 Processor (CPU2, /* Name */ 312 0x02, /* Id */ 313 0x0, /* Processor IO ports range start */ 314 0x0 /* Processor IO ports range length */ 315 ) 316 { 317 } 318 Processor (CPU3, /* Name */ 319 0x03, /* Id */ 320 0x0, /* Processor IO ports range start */ 321 0x0 /* Processor IO ports range length */ 322 ) 323 { 324 } 325 Processor (CPU4, /* Name */ 326 0x04, /* Id */ 327 0x0, /* Processor IO ports range start */ 328 0x0 /* Processor IO ports range length */ 329 ) 330 { 331 } 332 Processor (CPU5, /* Name */ 333 0x05, /* Id */ 334 0x0, /* Processor IO ports range start */ 335 0x0 /* Processor IO ports range length */ 336 ) 337 { 338 } 339 Processor (CPU6, /* Name */ 340 0x06, /* Id */ 341 0x0, /* Processor IO ports range start */ 342 0x0 /* Processor IO ports range length */ 343 ) 344 { 345 } 346 Processor (CPU7, /* Name */ 347 0x07, /* Id */ 348 0x0, /* Processor IO ports range start */ 349 0x0 /* Processor IO ports range length */ 350 ) 351 { 352 } 353 Processor (CPU8, /* Name */ 354 0x08, /* Id */ 355 0x0, /* Processor IO ports range start */ 356 0x0 /* Processor IO ports range length */ 357 ) 358 { 359 } 360 Processor (CPU9, /* Name */ 361 0x09, /* Id */ 362 0x0, /* Processor IO ports range start */ 363 0x0 /* Processor IO ports range length */ 364 ) 365 { 366 } 367 Processor (CPUA, /* Name */ 368 0x0a, /* Id */ 369 0x0, /* Processor IO ports range start */ 370 0x0 /* Processor IO ports range length */ 371 ) 372 { 373 } 374 Processor (CPUB, /* Name */ 375 0x0b, /* Id */ 376 0x0, /* Processor IO ports range start */ 377 0x0 /* Processor IO ports range length */ 378 ) 379 { 380 } 381 Processor (CPUC, /* Name */ 382 0x0c, /* Id */ 383 0x0, /* Processor IO ports range start */ 384 0x0 /* Processor IO ports range length */ 385 ) 386 { 387 } 388 Processor (CPUD, /* Name */ 389 0x0d, /* Id */ 390 0x0, /* Processor IO ports range start */ 391 0x0 /* Processor IO ports range length */ 392 ) 393 { 394 } 395 Processor (CPUE, /* Name */ 396 0x0e, /* Id */ 397 0x0, /* Processor IO ports range start */ 398 0x0 /* Processor IO ports range length */ 399 ) 400 { 401 } 402 Processor (CPUF, /* Name */ 403 0x0f, /* Id */ 404 0x0, /* Processor IO ports range start */ 405 0x0 /* Processor IO ports range length */ 406 ) 407 { 408 } 409 Processor (CPUG, /* Name */ 410 0x10, /* Id */ 411 0x0, /* Processor IO ports range start */ 412 0x0 /* Processor IO ports range length */ 413 ) 414 { 415 } 416 Processor (CPUH, /* Name */ 417 0x11, /* Id */ 418 0x0, /* Processor IO ports range start */ 419 0x0 /* Processor IO ports range length */ 420 ) 421 { 422 } 423 Processor (CPUI, /* Name */ 424 0x12, /* Id */ 425 0x0, /* Processor IO ports range start */ 426 0x0 /* Processor IO ports range length */ 427 ) 428 { 429 } 430 Processor (CPUJ, /* Name */ 431 0x13, /* Id */ 432 0x0, /* Processor IO ports range start */ 433 0x0 /* Processor IO ports range length */ 434 ) 435 { 436 } 437 Processor (CPUK, /* Name */ 438 0x14, /* Id */ 439 0x0, /* Processor IO ports range start */ 440 0x0 /* Processor IO ports range length */ 441 ) 442 { 443 } 444 Processor (CPUL, /* Name */ 445 0x15, /* Id */ 446 0x0, /* Processor IO ports range start */ 447 0x0 /* Processor IO ports range length */ 448 ) 449 { 450 } 451 Processor (CPUM, /* Name */ 452 0x16, /* Id */ 453 0x0, /* Processor IO ports range start */ 454 0x0 /* Processor IO ports range length */ 455 ) 456 { 457 } 458 Processor (CPUN, /* Name */ 459 0x17, /* Id */ 460 0x0, /* Processor IO ports range start */ 461 0x0 /* Processor IO ports range length */ 462 ) 463 { 464 } 465 Processor (CPUO, /* Name */ 466 0x18, /* Id */ 467 0x0, /* Processor IO ports range start */ 468 0x0 /* Processor IO ports range length */ 469 ) 470 { 471 } 472 Processor (CPUP, /* Name */ 473 0x19, /* Id */ 474 0x0, /* Processor IO ports range start */ 475 0x0 /* Processor IO ports range length */ 476 ) 477 { 478 } 479 Processor (CPUQ, /* Name */ 480 0x1a, /* Id */ 481 0x0, /* Processor IO ports range start */ 482 0x0 /* Processor IO ports range length */ 483 ) 484 { 485 } 486 Processor (CPUR, /* Name */ 487 0x1b, /* Id */ 488 0x0, /* Processor IO ports range start */ 489 0x0 /* Processor IO ports range length */ 490 ) 491 { 492 } 493 Processor (CPUS, /* Name */ 494 0x1c, /* Id */ 495 0x0, /* Processor IO ports range start */ 496 0x0 /* Processor IO ports range length */ 497 ) 498 { 499 } 500 Processor (CPUT, /* Name */ 501 0x1d, /* Id */ 502 0x0, /* Processor IO ports range start */ 503 0x0 /* Processor IO ports range length */ 504 ) 505 { 506 } 507 Processor (CPUU, /* Name */ 508 0x1e, /* Id */ 509 0x0, /* Processor IO ports range start */ 510 0x0 /* Processor IO ports range length */ 511 ) 512 { 513 } 514 Processor (CPUV, /* Name */ 515 0x1f, /* Id */ 516 0x0, /* Processor IO ports range start */ 517 0x0 /* Processor IO ports range length */ 518 ) 519 { 520 } 521 } 522 } 523 524 /* 525 * Local Variables: 526 * comment-start: "//" 527 * End: 528 */ -
trunk/src/VBox/Devices/PC/vbox.dsl
r26115 r26183 121 121 } 122 122 123 // Processor object124 // #1463: Showing the CPU can make the guest do bad things on it like SpeedStep.125 // In this case, XP SP2 contains this buggy Intelppm.sys driver which wants to mess126 // with SpeedStep if it finds a CPU object and when it finds out that it can't, it127 // tries to unload and crashes (MS probably never tested this code path).128 // So we enable this ACPI object only for certain guests, which do need it,129 // if by accident Windows guest seen enabled CPU object, just boot from latest130 // known good configuration, as it remembers state, even if ACPI object gets disabled.131 Scope (\_PR)132 {133 Processor (CPU0, /* Name */134 0x00, /* Id */135 0x0, /* Processor IO ports range start */136 0x0 /* Processor IO ports range length */137 )138 {139 }140 Processor (CPU1, /* Name */141 0x01, /* Id */142 0x0, /* Processor IO ports range start */143 0x0 /* Processor IO ports range length */144 )145 {146 }147 Processor (CPU2, /* Name */148 0x02, /* Id */149 0x0, /* Processor IO ports range start */150 0x0 /* Processor IO ports range length */151 )152 {153 }154 Processor (CPU3, /* Name */155 0x03, /* Id */156 0x0, /* Processor IO ports range start */157 0x0 /* Processor IO ports range length */158 )159 {160 }161 Processor (CPU4, /* Name */162 0x04, /* Id */163 0x0, /* Processor IO ports range start */164 0x0 /* Processor IO ports range length */165 )166 {167 }168 Processor (CPU5, /* Name */169 0x05, /* Id */170 0x0, /* Processor IO ports range start */171 0x0 /* Processor IO ports range length */172 )173 {174 }175 Processor (CPU6, /* Name */176 0x06, /* Id */177 0x0, /* Processor IO ports range start */178 0x0 /* Processor IO ports range length */179 )180 {181 }182 Processor (CPU7, /* Name */183 0x07, /* Id */184 0x0, /* Processor IO ports range start */185 0x0 /* Processor IO ports range length */186 )187 {188 }189 Processor (CPU8, /* Name */190 0x08, /* Id */191 0x0, /* Processor IO ports range start */192 0x0 /* Processor IO ports range length */193 )194 {195 }196 Processor (CPU9, /* Name */197 0x09, /* Id */198 0x0, /* Processor IO ports range start */199 0x0 /* Processor IO ports range length */200 )201 {202 }203 Processor (CPUA, /* Name */204 0x0a, /* Id */205 0x0, /* Processor IO ports range start */206 0x0 /* Processor IO ports range length */207 )208 {209 }210 Processor (CPUB, /* Name */211 0x0b, /* Id */212 0x0, /* Processor IO ports range start */213 0x0 /* Processor IO ports range length */214 )215 {216 }217 Processor (CPUC, /* Name */218 0x0c, /* Id */219 0x0, /* Processor IO ports range start */220 0x0 /* Processor IO ports range length */221 )222 {223 }224 Processor (CPUD, /* Name */225 0x0d, /* Id */226 0x0, /* Processor IO ports range start */227 0x0 /* Processor IO ports range length */228 )229 {230 }231 Processor (CPUE, /* Name */232 0x0e, /* Id */233 0x0, /* Processor IO ports range start */234 0x0 /* Processor IO ports range length */235 )236 {237 }238 Processor (CPUF, /* Name */239 0x0f, /* Id */240 0x0, /* Processor IO ports range start */241 0x0 /* Processor IO ports range length */242 )243 {244 }245 Processor (CPUG, /* Name */246 0x10, /* Id */247 0x0, /* Processor IO ports range start */248 0x0 /* Processor IO ports range length */249 )250 {251 }252 Processor (CPUH, /* Name */253 0x11, /* Id */254 0x0, /* Processor IO ports range start */255 0x0 /* Processor IO ports range length */256 )257 {258 }259 Processor (CPUI, /* Name */260 0x12, /* Id */261 0x0, /* Processor IO ports range start */262 0x0 /* Processor IO ports range length */263 )264 {265 }266 Processor (CPUJ, /* Name */267 0x13, /* Id */268 0x0, /* Processor IO ports range start */269 0x0 /* Processor IO ports range length */270 )271 {272 }273 Processor (CPUK, /* Name */274 0x14, /* Id */275 0x0, /* Processor IO ports range start */276 0x0 /* Processor IO ports range length */277 )278 {279 }280 Processor (CPUL, /* Name */281 0x15, /* Id */282 0x0, /* Processor IO ports range start */283 0x0 /* Processor IO ports range length */284 )285 {286 }287 Processor (CPUM, /* Name */288 0x16, /* Id */289 0x0, /* Processor IO ports range start */290 0x0 /* Processor IO ports range length */291 )292 {293 }294 Processor (CPUN, /* Name */295 0x17, /* Id */296 0x0, /* Processor IO ports range start */297 0x0 /* Processor IO ports range length */298 )299 {300 }301 Processor (CPUO, /* Name */302 0x18, /* Id */303 0x0, /* Processor IO ports range start */304 0x0 /* Processor IO ports range length */305 )306 {307 }308 Processor (CPUP, /* Name */309 0x19, /* Id */310 0x0, /* Processor IO ports range start */311 0x0 /* Processor IO ports range length */312 )313 {314 }315 Processor (CPUQ, /* Name */316 0x1a, /* Id */317 0x0, /* Processor IO ports range start */318 0x0 /* Processor IO ports range length */319 )320 {321 }322 Processor (CPUR, /* Name */323 0x1b, /* Id */324 0x0, /* Processor IO ports range start */325 0x0 /* Processor IO ports range length */326 )327 {328 }329 Processor (CPUS, /* Name */330 0x1c, /* Id */331 0x0, /* Processor IO ports range start */332 0x0 /* Processor IO ports range length */333 )334 {335 }336 Processor (CPUT, /* Name */337 0x1d, /* Id */338 0x0, /* Processor IO ports range start */339 0x0 /* Processor IO ports range length */340 )341 {342 }343 Processor (CPUU, /* Name */344 0x1e, /* Id */345 0x0, /* Processor IO ports range start */346 0x0 /* Processor IO ports range length */347 )348 {349 }350 Processor (CPUV, /* Name */351 0x1f, /* Id */352 0x0, /* Processor IO ports range start */353 0x0 /* Processor IO ports range length */354 )355 {356 }357 358 }359 360 123 Scope (\_SB) 361 124 { … … 376 139 // @todo: maybe make it bitmask instead? 377 140 UCP0, 32, 378 UCP1, 32, 379 UCP2, 32, 380 UCP3, 32, 141 UCP1, 32, 142 UCP2, 32, 143 UCP3, 32, 381 144 MEMH, 32, 382 145 URTC, 32, 146 CPUL, 32, 147 CPUC, 32, 383 148 Offset (0x80), 384 149 ININ, 32,
Note:
See TracChangeset
for help on using the changeset viewer.