mirror of
https://github.com/acpica/acpica/
synced 2025-01-17 23:09:18 +03:00
3280 lines
95 KiB
C
Executable File
3280 lines
95 KiB
C
Executable File
/******************************************************************************
|
|
*
|
|
* Module Name: atresource - ACPICA Resource Management API tests
|
|
* $Revision: 1.1 $
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#include "atcommon.h"
|
|
#include "atresource.h"
|
|
#include "atosxfctrl.h"
|
|
|
|
#define _COMPONENT ACPI_TOOLS
|
|
ACPI_MODULE_NAME ("atresource")
|
|
|
|
|
|
#if ACPI_MACHINE_WIDTH == 64
|
|
#define RT0000_DEV0_CRS_LEN 0xCA0
|
|
#else
|
|
#define RT0000_DEV0_CRS_LEN 0x8C0
|
|
#endif
|
|
/*
|
|
* ASSERTION 0000:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0000(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
ACPI_RESOURCE *CurrentResource;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetCurrentResources (Device, &OutBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
if (OutBuffer.Length != RT0000_DEV0_CRS_LEN)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiGetCurrentResources(%s) returned Length %d,"
|
|
" expected %d\n",
|
|
Pathname, OutBuffer.Length, RT0000_DEV0_CRS_LEN);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
/*
|
|
* OutBuffer should be parsed and all field of ACPI_RESOURCE
|
|
* structure should be checked
|
|
*/
|
|
|
|
CurrentResource = (ACPI_RESOURCE *)OutBuffer.Pointer;
|
|
|
|
/* IRQ (Level, ActiveLow, Shared) {0} */
|
|
|
|
if (CurrentResource->Type != ACPI_RESOURCE_TYPE_IRQ)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Resource->Type (%d) != ACPI_RESOURCE_TYPE_IRQ\n",
|
|
CurrentResource->Type);
|
|
}
|
|
|
|
if (CurrentResource->Length < ACPI_RS_SIZE (ACPI_RESOURCE_IRQ))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Resource->Length (%d) < %d\n",
|
|
CurrentResource->Length, ACPI_RS_SIZE (ACPI_RESOURCE_IRQ));
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Triggering != 0) /* Level-Triggered */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Triggering (%d) != 0\n",
|
|
CurrentResource->Data.Irq.Triggering);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Polarity != 1) /* Active-Low */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Polarity (%d) != 1\n",
|
|
CurrentResource->Data.Irq.Polarity);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Sharable != 1) /* Interrupt is sharable */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Sharable (%d) != 1\n",
|
|
CurrentResource->Data.Irq.Sharable);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.InterruptCount != 1)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.InterruptCount (%d) != 1\n",
|
|
CurrentResource->Data.Irq.InterruptCount);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Interrupts[0] != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Interrupts[0] (%d) != 0\n",
|
|
CurrentResource->Data.Irq.Interrupts[0]);
|
|
}
|
|
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0001:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0001(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\AUX2.DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_LOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/* Make Device handle invalid by unloading SSDT table*/
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_UNLOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetCurrentResources (Device, &OutBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0002:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0002(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetCurrentResources (Device, NULL);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0003:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0003(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
OutBuffer.Length = 1;
|
|
OutBuffer.Pointer = NULL;
|
|
|
|
Status = AcpiGetCurrentResources (Device, &OutBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0004:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0004(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\M000";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetCurrentResources (Device, &OutBuffer);
|
|
if (Status != AE_TYPE)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s,"
|
|
" expected AE_TYPE\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0005:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0005(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer;
|
|
UINT32 BufferSpace;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
OutBuffer.Length = 4;
|
|
OutBuffer.Pointer = &BufferSpace;
|
|
|
|
Status = AcpiGetCurrentResources (Device, &OutBuffer);
|
|
if (Status != AE_BUFFER_OVERFLOW)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s,"
|
|
" expected AE_BUFFER_OVERFLOW\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
if (OutBuffer.Length != RT0000_DEV0_CRS_LEN)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiGetCurrentResources(%s) returned Length %d,"
|
|
" expected %d\n",
|
|
Pathname, OutBuffer.Length, RT0000_DEV0_CRS_LEN);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
ACPI_STATUS
|
|
AtGetCurrentResourcesExceptionTest(
|
|
ACPI_OSXF OsxfNum,
|
|
AT_ACTD_FLAG ActFlag,
|
|
UINT32 ActCode,
|
|
UINT32 TFst,
|
|
ACPI_STATUS Benchmark)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_OSXF OsxfNumAct;
|
|
UINT32 Continue_Cond = 1;
|
|
UINT32 CtrlCheck = ALL_STAT;
|
|
UINT32 TMax = 10000;
|
|
UINT32 i;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
|
|
for (i = TFst; (i < TMax) && Continue_Cond; i++)
|
|
{
|
|
printf ("AtGetCurrentResourcesExceptionTest: i = %d\n", i);
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = OsxfCtrlSet(OsxfNum, i, ActFlag, ActCode);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: OsxfCtrlSet returned %s\n",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetCurrentResources (Device, &OutBuffer);
|
|
|
|
if (!(OsxfNumAct = OsxfCtrlGetActOsxf(OsxfNum, 1)))
|
|
{
|
|
if (i == TFst)
|
|
{
|
|
TestSkipped++;
|
|
printf ("Test note: test action hasn't occur\n");
|
|
}
|
|
TestPass++;
|
|
Continue_Cond = 0;
|
|
}
|
|
else
|
|
{
|
|
if (Status != Benchmark)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiGetCurrentResources returned %s,\n"
|
|
" expected to return %s\n",
|
|
AcpiFormatException(Status), AcpiFormatException(Benchmark));
|
|
return AE_ERROR;
|
|
}
|
|
}
|
|
if (ACPI_SUCCESS(Status))
|
|
{
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
}
|
|
|
|
Status = AtTerminateCtrlCheck(AE_OK, CtrlCheck);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
}
|
|
if (i >= TMax)
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: there are test cases remained\n");
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0006:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0006(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL permanently since the specified call
|
|
*/
|
|
Status = AtGetCurrentResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_Permanent, AtActRet_NULL, 12,
|
|
AE_NO_MEMORY);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL one time on the specified call
|
|
*/
|
|
return AtGetCurrentResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_OneTime, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0007:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0007(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
ACPI_RESOURCE *CurrentResource;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetPossibleResources(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* OutBuffer should be parsed and all field of ACPI_RESOURCE
|
|
* structure should be checked
|
|
*/
|
|
|
|
CurrentResource = (ACPI_RESOURCE *)OutBuffer.Pointer;
|
|
|
|
/* IRQ (Level, ActiveLow, Shared) {0} */
|
|
|
|
if (CurrentResource->Type != ACPI_RESOURCE_TYPE_IRQ)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Resource->Type (%d) != ACPI_RESOURCE_TYPE_IRQ\n",
|
|
CurrentResource->Type);
|
|
}
|
|
|
|
if (CurrentResource->Length !=
|
|
ACPI_ROUND_UP_TO_NATIVE_WORD (ACPI_RS_SIZE (ACPI_RESOURCE_IRQ)))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Resource->Length (%d) != %d\n",
|
|
CurrentResource->Length,
|
|
ACPI_ROUND_UP_TO_NATIVE_WORD (ACPI_RS_SIZE (ACPI_RESOURCE_IRQ)));
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Triggering != 0) /* Level-Triggered */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Triggering (%d) != 0\n",
|
|
CurrentResource->Data.Irq.Triggering);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Polarity != 1) /* Active-Low */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Polarity (%d) != 1\n",
|
|
CurrentResource->Data.Irq.Polarity);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Sharable != 1) /* Interrupt is sharable */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Sharable (%d) != 1\n",
|
|
CurrentResource->Data.Irq.Sharable);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.InterruptCount != 1)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.InterruptCount (%d) != 1\n",
|
|
CurrentResource->Data.Irq.InterruptCount);
|
|
}
|
|
|
|
if (CurrentResource->Data.Irq.Interrupts[0] != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Interrupts[0] (%d) != 0\n",
|
|
CurrentResource->Data.Irq.Interrupts[0]);
|
|
}
|
|
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0008:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0008(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\AUX2.DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_LOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/* Make Device handle invalid by unloading SSDT table*/
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_UNLOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetPossibleResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0009:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0009(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetPossibleResources (Device, NULL);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetPossibleResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0010:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0010(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
OutBuffer.Length = 1;
|
|
OutBuffer.Pointer = NULL;
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetPossibleResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0011:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0011(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\M000";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
if (Status != AE_TYPE)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetPossibleResources(%s) returned %s,"
|
|
" expected AE_TYPE\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0012:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0012(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer;
|
|
UINT32 BufferSpace;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
OutBuffer.Length = 4;
|
|
OutBuffer.Pointer = &BufferSpace;
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
if (Status != AE_BUFFER_OVERFLOW)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetPossibleResources(%s) returned %s,"
|
|
" expected AE_BUFFER_OVERFLOW\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
if (OutBuffer.Length != RT0000_DEV0_CRS_LEN)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiGetPossibleResources(%s) returned Length %d,"
|
|
" expected %d\n",
|
|
Pathname, OutBuffer.Length, RT0000_DEV0_CRS_LEN);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
ACPI_STATUS
|
|
AtGetPossibleResourcesExceptionTest(
|
|
ACPI_OSXF OsxfNum,
|
|
AT_ACTD_FLAG ActFlag,
|
|
UINT32 ActCode,
|
|
UINT32 TFst,
|
|
ACPI_STATUS Benchmark)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_OSXF OsxfNumAct;
|
|
UINT32 Continue_Cond = 1;
|
|
UINT32 CtrlCheck = ALL_STAT;
|
|
UINT32 TMax = 10000;
|
|
UINT32 i;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
|
|
for (i = TFst; (i < TMax) && Continue_Cond; i++)
|
|
{
|
|
printf ("AtGetPossibleResourcesExceptionTest: i = %d\n", i);
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = OsxfCtrlSet(OsxfNum, i, ActFlag, ActCode);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: OsxfCtrlSet returned %s\n",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
|
|
if (!(OsxfNumAct = OsxfCtrlGetActOsxf(OsxfNum, 1)))
|
|
{
|
|
if (i == TFst)
|
|
{
|
|
TestSkipped++;
|
|
printf ("Test note: test action hasn't occur\n");
|
|
}
|
|
TestPass++;
|
|
Continue_Cond = 0;
|
|
}
|
|
else
|
|
{
|
|
if (Status != Benchmark)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiGetPossibleResources returned %s,\n"
|
|
" expected to return %s\n",
|
|
AcpiFormatException(Status), AcpiFormatException(Benchmark));
|
|
return AE_ERROR;
|
|
}
|
|
}
|
|
if (ACPI_SUCCESS(Status))
|
|
{
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
}
|
|
|
|
Status = AtTerminateCtrlCheck(AE_OK, CtrlCheck);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
}
|
|
if (i >= TMax)
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: there are test cases remained\n");
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0013:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0013(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL permanently since the specified call
|
|
*/
|
|
Status = AtGetPossibleResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_Permanent, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL one time on the specified call
|
|
*/
|
|
return AtGetPossibleResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_OneTime, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
}
|
|
|
|
ACPI_RESOURCE Resource[2];
|
|
|
|
void
|
|
AtInitResourceBuffer(ACPI_BUFFER *InBuffer)
|
|
{
|
|
ACPI_RESOURCE *CurrentResource = &Resource[0];
|
|
ACPI_RESOURCE *EndResource;
|
|
|
|
/* IRQ (Level, ActiveLow, Shared) {0} */
|
|
|
|
CurrentResource->Type = ACPI_RESOURCE_TYPE_IRQ;
|
|
CurrentResource->Length = ACPI_RS_SIZE (ACPI_RESOURCE_IRQ);
|
|
CurrentResource->Data.Irq.Triggering = 0; /* Level-Triggered */
|
|
// CurrentResource->Data.Irq.Polarity = 1; /* Active-Low */
|
|
CurrentResource->Data.Irq.Polarity = 0; /* Active-High */
|
|
CurrentResource->Data.Irq.Sharable = 1; /* Interrupt is sharable */
|
|
CurrentResource->Data.Irq.InterruptCount = 1;
|
|
CurrentResource->Data.Irq.Interrupts[0] = 1;
|
|
|
|
CurrentResource->Length = ACPI_ROUND_UP_TO_NATIVE_WORD (CurrentResource->Length);
|
|
|
|
EndResource = (ACPI_RESOURCE *)((UINT8 *)CurrentResource +
|
|
CurrentResource->Length);
|
|
EndResource->Type = ACPI_RESOURCE_TYPE_END_TAG;
|
|
EndResource->Length = ACPI_RS_SIZE (ACPI_RESOURCE_END_TAG);
|
|
|
|
InBuffer->Length = CurrentResource->Length + EndResource->Length;
|
|
InBuffer->Pointer = CurrentResource;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0014:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0014(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER InBuffer;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
AtInitResourceBuffer(&InBuffer);
|
|
|
|
/* Add the flag to print contents of buffers */
|
|
AcpiDbgLevel |= ACPI_LV_TABLES;
|
|
|
|
Status = AcpiSetCurrentResources (Device, &InBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0015:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0015(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER InBuffer;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\AUX2.DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_LOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/* Make Device handle invalid by unloading SSDT table*/
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_UNLOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
AtInitResourceBuffer(&InBuffer);
|
|
|
|
Status = AcpiSetCurrentResources (Device, &InBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0016:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0016(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiSetCurrentResources (Device, NULL);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0017:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0017(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER InBuffer;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
InBuffer.Length = 1;
|
|
InBuffer.Pointer = NULL;
|
|
|
|
Status = AcpiSetCurrentResources (Device, &InBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0018:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0018(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER InBuffer;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
AtInitResourceBuffer(&InBuffer);
|
|
InBuffer.Length = 0;
|
|
|
|
Status = AcpiSetCurrentResources (Device, &InBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0019:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0019(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER InBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\M000";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
AtInitResourceBuffer(&InBuffer);
|
|
|
|
Status = AcpiSetCurrentResources (Device, &InBuffer);
|
|
if (Status != AE_TYPE)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s,"
|
|
" expected AE_TYPE\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
ACPI_STATUS
|
|
AtSetCurrentResourcesExceptionTest(
|
|
ACPI_OSXF OsxfNum,
|
|
AT_ACTD_FLAG ActFlag,
|
|
UINT32 ActCode,
|
|
UINT32 TFst,
|
|
ACPI_STATUS Benchmark)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_OSXF OsxfNumAct;
|
|
UINT32 Continue_Cond = 1;
|
|
UINT32 CtrlCheck = ALL_STAT;
|
|
UINT32 TMax = 10000;
|
|
UINT32 i;
|
|
ACPI_BUFFER InBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
|
|
for (i = TFst; (i < TMax) && Continue_Cond; i++)
|
|
{
|
|
printf ("AtSetCurrentResourcesExceptionTest: i = %d\n", i);
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = OsxfCtrlSet(OsxfNum, i, ActFlag, ActCode);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: OsxfCtrlSet returned %s\n",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
AtInitResourceBuffer(&InBuffer);
|
|
|
|
Status = AcpiSetCurrentResources (Device, &InBuffer);
|
|
|
|
if (!(OsxfNumAct = OsxfCtrlGetActOsxf(OsxfNum, 1)))
|
|
{
|
|
if (i == TFst)
|
|
{
|
|
TestSkipped++;
|
|
printf ("Test note: test action hasn't occur\n");
|
|
}
|
|
TestPass++;
|
|
Continue_Cond = 0;
|
|
}
|
|
else
|
|
{
|
|
if (Status != Benchmark)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiSetCurrentResources returned %s,\n"
|
|
" expected to return %s\n",
|
|
AcpiFormatException(Status), AcpiFormatException(Benchmark));
|
|
return AE_ERROR;
|
|
}
|
|
}
|
|
|
|
Status = AtTerminateCtrlCheck(AE_OK, CtrlCheck);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
}
|
|
if (i >= TMax)
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: there are test cases remained\n");
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0020:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0020(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL permanently since the specified call
|
|
*/
|
|
Status = AtSetCurrentResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_Permanent, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL one time on the specified call
|
|
*/
|
|
return AtSetCurrentResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_OneTime, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0021:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0021(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
ACPI_STRING RefPath = "\\DEV0.LNKA";
|
|
ACPI_PCI_ROUTING_TABLE *UserPrt;
|
|
UINT32 Length;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetIrqRoutingTable (Device, &OutBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetIrqRoutingTable(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* OutBuffer should be parsed and all field of ACPI_PCI_ROUTING_TABLE
|
|
* structure should be checked
|
|
*/
|
|
|
|
UserPrt = (ACPI_PCI_ROUTING_TABLE *)OutBuffer.Pointer;
|
|
|
|
/*
|
|
* Package(0x04){
|
|
* 0x001FFFFF,
|
|
* 0x00,
|
|
* \DEV0.LNKA,
|
|
* 0x00
|
|
* },
|
|
*/
|
|
|
|
if (UserPrt->Address != 0x001FFFFF)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: PciRT->Address (0x%x) != 0x%x\n",
|
|
(UINT32)UserPrt->Address, 0x001FFFFF);
|
|
}
|
|
|
|
if (UserPrt->Pin != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: PciRT->Pin (%d) != %d\n",
|
|
UserPrt->Pin, 0);
|
|
}
|
|
|
|
if (UserPrt->SourceIndex != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: PciRT->SourceIndex (%d) != %d\n",
|
|
UserPrt->SourceIndex, 0);
|
|
}
|
|
|
|
if (strcmp(UserPrt->Source, RefPath))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: PciRT->Source (%s) != %s\n",
|
|
UserPrt->Source, RefPath);
|
|
}
|
|
|
|
Length = sizeof (ACPI_PCI_ROUTING_TABLE) - 4 + strlen(RefPath) + 1;
|
|
Length = (UINT32) ACPI_ROUND_UP_TO_64BIT (Length);
|
|
|
|
if (UserPrt->Length != Length)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: PciRT->Length (%d) != %d\n",
|
|
UserPrt->Length, Length);
|
|
}
|
|
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0022:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0022(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\AUX2.DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_LOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/* Make Device handle invalid by unloading SSDT table*/
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_UNLOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetIrqRoutingTable (Device, &OutBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetIrqRoutingTable(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0023:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0023(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetIrqRoutingTable (Device, NULL);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetIrqRoutingTable(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0024:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0024(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
OutBuffer.Length = 1;
|
|
OutBuffer.Pointer = NULL;
|
|
|
|
Status = AcpiGetIrqRoutingTable (Device, &OutBuffer);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetIrqRoutingTable(%s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0025:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0025(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\M000";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetIrqRoutingTable (Device, &OutBuffer);
|
|
if (Status != AE_TYPE)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetIrqRoutingTable(%s) returned %s,"
|
|
" expected AE_TYPE\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0026:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0026(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_BUFFER OutBuffer;
|
|
UINT32 BufferSpace;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
OutBuffer.Length = 4;
|
|
OutBuffer.Pointer = &BufferSpace;
|
|
|
|
Status = AcpiGetIrqRoutingTable (Device, &OutBuffer);
|
|
if (Status != AE_BUFFER_OVERFLOW)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetIrqRoutingTable(%s) returned %s,"
|
|
" expected AE_BUFFER_OVERFLOW\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
if (OutBuffer.Length != 0xB8)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiGetIrqRoutingTable(%s) returned Length %d,"
|
|
" expected %d\n",
|
|
Pathname, OutBuffer.Length, 0xA48);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
ACPI_STATUS
|
|
AtGetIRQRoutingTableExceptionTest(
|
|
ACPI_OSXF OsxfNum,
|
|
AT_ACTD_FLAG ActFlag,
|
|
UINT32 ActCode,
|
|
UINT32 TFst,
|
|
ACPI_STATUS Benchmark)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_OSXF OsxfNumAct;
|
|
UINT32 Continue_Cond = 1;
|
|
UINT32 CtrlCheck = ALL_STAT;
|
|
UINT32 TMax = 10000;
|
|
UINT32 i;
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
|
|
for (i = TFst; (i < TMax) && Continue_Cond; i++)
|
|
{
|
|
printf ("AtGetIRQRoutingTableExceptionTest: i = %d\n", i);
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = OsxfCtrlSet(OsxfNum, i, ActFlag, ActCode);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: OsxfCtrlSet returned %s\n",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetIrqRoutingTable (Device, &OutBuffer);
|
|
|
|
if (!(OsxfNumAct = OsxfCtrlGetActOsxf(OsxfNum, 1)))
|
|
{
|
|
if (i == TFst)
|
|
{
|
|
TestSkipped++;
|
|
printf ("Test note: test action hasn't occur\n");
|
|
}
|
|
TestPass++;
|
|
Continue_Cond = 0;
|
|
}
|
|
else
|
|
{
|
|
if (Status != Benchmark)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiGetIrqRoutingTable returned %s,\n"
|
|
" expected to return %s\n",
|
|
AcpiFormatException(Status), AcpiFormatException(Benchmark));
|
|
return AE_ERROR;
|
|
}
|
|
}
|
|
if (ACPI_SUCCESS(Status))
|
|
{
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
}
|
|
|
|
Status = AtTerminateCtrlCheck(AE_OK, CtrlCheck);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
}
|
|
if (i >= TMax)
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: there are test cases remained\n");
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0027:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0027(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL permanently since the specified call
|
|
*/
|
|
Status = AtGetIRQRoutingTableExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_Permanent, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL one time on the specified call
|
|
*/
|
|
return AtGetIRQRoutingTableExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_OneTime, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
}
|
|
|
|
static UINT32 WalkResourcesHandlerCounter;
|
|
static UINT32 WalkResourcesHandlerLength;
|
|
static UINT32 WalkResourcesHandlerContext;
|
|
|
|
ACPI_STATUS AtWalkResourcesHandler (
|
|
ACPI_RESOURCE *Resource,
|
|
void *Context)
|
|
{
|
|
|
|
printf ("AtWalkResourcesHandler: Resource %p (Type 0x%x, Len 0x%x), Context %p\n",
|
|
Resource, Resource->Type, Resource->Length, Context);
|
|
++WalkResourcesHandlerCounter;
|
|
WalkResourcesHandlerLength += Resource->Length;
|
|
|
|
if (Context != &WalkResourcesHandlerContext) {
|
|
AapiErrors++;
|
|
printf ("AtWalkResourcesHandler: Context (%p) !="
|
|
" &WalkResourcesHandlerContext (%p)\n",
|
|
Context, &WalkResourcesHandlerContext);
|
|
}
|
|
|
|
if (WalkResourcesHandlerCounter) {
|
|
return (*(UINT32 *)Context);
|
|
}
|
|
|
|
/* IRQ (Level, ActiveLow, Shared) {0} */
|
|
|
|
if (Resource->Type != ACPI_RESOURCE_TYPE_IRQ)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Resource->Type (%d) != ACPI_RESOURCE_TYPE_IRQ\n",
|
|
Resource->Type);
|
|
}
|
|
|
|
if (Resource->Length != ACPI_RS_SIZE (ACPI_RESOURCE_IRQ))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Resource->Length (%d) != %d\n",
|
|
Resource->Length, ACPI_RS_SIZE (ACPI_RESOURCE_IRQ));
|
|
}
|
|
|
|
if (Resource->Data.Irq.Triggering != 0) /* Level-Triggered */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Triggering (%d) != 0\n",
|
|
Resource->Data.Irq.Triggering);
|
|
}
|
|
|
|
if (Resource->Data.Irq.Polarity != 1) /* Active-Low */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Polarity (%d) != 1\n",
|
|
Resource->Data.Irq.Polarity);
|
|
}
|
|
|
|
if (Resource->Data.Irq.Sharable != 1) /* Interrupt is sharable */
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Sharable (%d) != 1\n",
|
|
Resource->Data.Irq.Sharable);
|
|
}
|
|
|
|
if (Resource->Data.Irq.InterruptCount != 1)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.InterruptCount (%d) != 1\n",
|
|
Resource->Data.Irq.InterruptCount);
|
|
}
|
|
|
|
if (Resource->Data.Irq.Interrupts[0] != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: Irq.Interrupts[0] (%d) != 0\n",
|
|
Resource->Data.Irq.Interrupts[0]);
|
|
}
|
|
|
|
return (*(UINT32 *)Context);
|
|
}
|
|
|
|
ACPI_STATUS
|
|
AtWalkResourcesTestCommon(
|
|
char *MethodPath,
|
|
UINT32 WalkResourcesHandlerRet,
|
|
ACPI_STATUS ExpectedStatus,
|
|
UINT32 ExpectedCounter,
|
|
UINT32 ExpectedLength)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
WalkResourcesHandlerCounter = 0;
|
|
WalkResourcesHandlerLength = 0;
|
|
WalkResourcesHandlerContext = WalkResourcesHandlerRet;
|
|
|
|
Status = AcpiWalkResources (Device, MethodPath,
|
|
AtWalkResourcesHandler, &WalkResourcesHandlerContext);
|
|
if (Status != ExpectedStatus)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiWalkResources(%s, %s) returned %s,"
|
|
" expected %s\n",
|
|
Pathname, MethodPath,
|
|
AcpiFormatException(Status),
|
|
AcpiFormatException(ExpectedStatus));
|
|
return AE_ERROR;
|
|
}
|
|
|
|
if (WalkResourcesHandlerCounter != ExpectedCounter)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: WalkResourcesHandlerCounter (%d) !="
|
|
"ExpectedCounter (%d)\n",
|
|
WalkResourcesHandlerCounter, ExpectedCounter);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
if (WalkResourcesHandlerLength != ExpectedLength)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: WalkResourcesHandlerLength (%d) !="
|
|
" ExpectedLength (%d)\n",
|
|
WalkResourcesHandlerLength, ExpectedLength);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0028:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0028(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
Status = AtWalkResourcesTestCommon("_CRS", AE_OK, AE_OK,
|
|
25, RT0000_DEV0_CRS_LEN);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtWalkResourcesTestCommon("_PRS", AE_OK, AE_OK,
|
|
25, RT0000_DEV0_CRS_LEN);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0029:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0029(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
Status = AtWalkResourcesTestCommon("_CRS", AE_CTRL_DEPTH, AE_OK,
|
|
25, RT0000_DEV0_CRS_LEN);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtWalkResourcesTestCommon("_PRS", AE_CTRL_DEPTH, AE_OK,
|
|
25, RT0000_DEV0_CRS_LEN);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0030:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0030(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
Status = AtWalkResourcesTestCommon("_CRS", AE_CTRL_TERMINATE, AE_OK, 1, 16);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtWalkResourcesTestCommon("_PRS", AE_CTRL_TERMINATE, AE_OK, 1, 16);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0031:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0031(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
Status = AtWalkResourcesTestCommon("_CRS",
|
|
AE_UNKNOWN_STATUS, AE_UNKNOWN_STATUS, 1, 16);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtWalkResourcesTestCommon("_PRS",
|
|
AE_UNKNOWN_STATUS, AE_UNKNOWN_STATUS, 1, 16);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0032:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0032(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\AUX2.DEV0";
|
|
char *MethodPath = "_CRS";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_LOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/* Make Device handle invalid by unloading SSDT table*/
|
|
if (ACPI_FAILURE(Status = AtAuxiliarySsdt(AT_UNLOAD)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/* Empty cash to force actual memory allocations */
|
|
Status = AcpiPurgeCachedObjects();
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiPurgeCachedObjects() failure, %s\n",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
WalkResourcesHandlerCounter = 0;
|
|
WalkResourcesHandlerContext = AE_OK;
|
|
|
|
Status = AcpiWalkResources (Device, MethodPath,
|
|
AtWalkResourcesHandler, &WalkResourcesHandlerContext);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiWalkResources(%s, %s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, "_CRS",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
if (WalkResourcesHandlerCounter != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: WalkResourcesHandlerCounter (%d) !="
|
|
"ExpectedCounter (%d)\n",
|
|
WalkResourcesHandlerCounter, 0);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0033:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0033(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
char *MethodPath = "_PRT";
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
WalkResourcesHandlerCounter = 0;
|
|
WalkResourcesHandlerContext = AE_OK;
|
|
|
|
Status = AcpiWalkResources (Device, MethodPath,
|
|
AtWalkResourcesHandler, &WalkResourcesHandlerContext);
|
|
if (Status != AE_BAD_PARAMETER)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiWalkResources(%s, %s) returned %s,"
|
|
" expected AE_BAD_PARAMETER\n",
|
|
Pathname, "_CRS",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
if (WalkResourcesHandlerCounter != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: WalkResourcesHandlerCounter (%d) !="
|
|
"ExpectedCounter (%d)\n",
|
|
WalkResourcesHandlerCounter, 0);
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
ACPI_STATUS
|
|
AtWalkResourcesExceptionTest(
|
|
ACPI_OSXF OsxfNum,
|
|
AT_ACTD_FLAG ActFlag,
|
|
UINT32 ActCode,
|
|
UINT32 TFst,
|
|
ACPI_STATUS Benchmark)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_OSXF OsxfNumAct;
|
|
UINT32 Continue_Cond = 1;
|
|
UINT32 CtrlCheck = ALL_STAT;
|
|
UINT32 TMax = 10000;
|
|
UINT32 i;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
char *MethodPath = "_CRS";
|
|
|
|
|
|
for (i = TFst; (i < TMax) && Continue_Cond; i++)
|
|
{
|
|
printf ("AtWalkResourcesExceptionTest: i = %d\n", i);
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = OsxfCtrlSet(OsxfNum, i, ActFlag, ActCode);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: OsxfCtrlSet returned %s\n",
|
|
AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
WalkResourcesHandlerCounter = 0;
|
|
WalkResourcesHandlerContext = AE_OK;
|
|
|
|
Status = AcpiWalkResources (Device, MethodPath,
|
|
AtWalkResourcesHandler, &WalkResourcesHandlerContext);
|
|
|
|
if (!(OsxfNumAct = OsxfCtrlGetActOsxf(OsxfNum, 1)))
|
|
{
|
|
if (i == TFst)
|
|
{
|
|
TestSkipped++;
|
|
printf ("Test note: test action hasn't occur\n");
|
|
}
|
|
TestPass++;
|
|
Continue_Cond = 0;
|
|
}
|
|
else
|
|
{
|
|
if (Status != Benchmark)
|
|
{
|
|
AapiErrors++;
|
|
printf ("API Error: AcpiWalkResources returned %s,\n"
|
|
" expected to return %s\n",
|
|
AcpiFormatException(Status), AcpiFormatException(Benchmark));
|
|
return AE_ERROR;
|
|
}
|
|
|
|
if (WalkResourcesHandlerCounter != 0)
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: WalkResourcesHandlerCounter (%d) !="
|
|
"ExpectedCounter (%d)\n",
|
|
WalkResourcesHandlerCounter, 0);
|
|
return AE_ERROR;
|
|
}
|
|
}
|
|
|
|
Status = AtTerminateCtrlCheck(AE_OK, CtrlCheck);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
}
|
|
if (i >= TMax)
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: there are test cases remained\n");
|
|
return AE_ERROR;
|
|
}
|
|
|
|
return AE_OK;
|
|
}
|
|
|
|
/*
|
|
* ASSERTION 0034:
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0034(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL permanently since the specified call
|
|
*/
|
|
Status = AtWalkResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_Permanent, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/*
|
|
* AcpiOsAllocate returns NULL one time on the specified call
|
|
*/
|
|
return AtWalkResourcesExceptionTest(
|
|
OSXF_NUM(AcpiOsAllocate),
|
|
AtActD_OneTime, AtActRet_NULL, 1,
|
|
AE_NO_MEMORY);
|
|
}
|
|
|
|
static UINT8 Buffer0035[] = {
|
|
0x23, 0x01, 0x00, 0x00,
|
|
0x22, 0x02, 0x00,
|
|
0x2a, 0x04, 0x02,
|
|
0x47, 0x01, 0xf1, 0xf0, 0xf3, 0xf2, 0xf4, 0xf5,
|
|
0x4b, 0xf1, 0xf0, 0xf2,
|
|
0x77, 0x00, 0xa2, 0xb3, 0x76, 0xd5, 0xe6, 0xf7,
|
|
0x81, 0x09, 0x00, 0x01, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7, 0xf6,
|
|
0x85, 0x11, 0x00, 0x01,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc,
|
|
0x86, 0x09, 0x00, 0x00,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0x84, 0x15, 0x00, 0x9f,
|
|
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
|
|
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
|
|
0x00, 0x01, 0x02, 0x03,
|
|
0x8a, 0x39, 0x00, 0x01, 0x0f, 0x33,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x87, 0x25, 0x00, 0x01, 0x0f, 0x33, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x88, 0x1b, 0x00, 0x01, 0x0f, 0x33,
|
|
0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x8a, 0x39, 0x00, 0x00, 0x0f, 0x30,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x87, 0x25, 0x00, 0x00, 0x0f, 0x30,
|
|
0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x88, 0x1b, 0x00, 0x02, 0x0f, 0x00,
|
|
0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x89, 0xc8, 0x04, 0x0f, 0xff,
|
|
1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
|
|
5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0,
|
|
9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0,
|
|
13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0,
|
|
17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0,
|
|
21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0,
|
|
25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0,
|
|
29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0,
|
|
33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0,
|
|
37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0,
|
|
41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0,
|
|
45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0,
|
|
49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0,
|
|
53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0,
|
|
57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0,
|
|
61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0,
|
|
65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0,
|
|
69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0,
|
|
73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0,
|
|
77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0,
|
|
81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0,
|
|
85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0,
|
|
89, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0,
|
|
93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0,
|
|
97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0,100, 0, 0, 0,
|
|
101, 0, 0, 0,102, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0,
|
|
105, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,
|
|
109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, 0, 0,
|
|
113, 0, 0, 0,114, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,
|
|
117, 0, 0, 0,118, 0, 0, 0,119, 0, 0, 0,120, 0, 0, 0,
|
|
121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0,124, 0, 0, 0,
|
|
125, 0, 0, 0,126, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,
|
|
129, 0, 0, 0,130, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,
|
|
133, 0, 0, 0,134, 0, 0, 0,135, 0, 0, 0,136, 0, 0, 0,
|
|
137, 0, 0, 0,138, 0, 0, 0,139, 0, 0, 0,140, 0, 0, 0,
|
|
141, 0, 0, 0,142, 0, 0, 0,143, 0, 0, 0,144, 0, 0, 0,
|
|
145, 0, 0, 0,146, 0, 0, 0,147, 0, 0, 0,148, 0, 0, 0,
|
|
149, 0, 0, 0,150, 0, 0, 0,151, 0, 0, 0,152, 0, 0, 0,
|
|
153, 0, 0, 0,154, 0, 0, 0,155, 0, 0, 0,156, 0, 0, 0,
|
|
157, 0, 0, 0,158, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,
|
|
161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,
|
|
165, 0, 0, 0,166, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,
|
|
169, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, 0, 0,
|
|
173, 0, 0, 0,174, 0, 0, 0,175, 0, 0, 0,176, 0, 0, 0,
|
|
177, 0, 0, 0,178, 0, 0, 0,179, 0, 0, 0,180, 0, 0, 0,
|
|
181, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 0, 0,
|
|
185, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,188, 0, 0, 0,
|
|
189, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,192, 0, 0, 0,
|
|
193, 0, 0, 0,194, 0, 0, 0,195, 0, 0, 0,196, 0, 0, 0,
|
|
197, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,200, 0, 0, 0,
|
|
201, 0, 0, 0,202, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,
|
|
205, 0, 0, 0,206, 0, 0, 0,207, 0, 0, 0,208, 0, 0, 0,
|
|
209, 0, 0, 0,210, 0, 0, 0,211, 0, 0, 0,212, 0, 0, 0,
|
|
213, 0, 0, 0,214, 0, 0, 0,215, 0, 0, 0,216, 0, 0, 0,
|
|
217, 0, 0, 0,218, 0, 0, 0,219, 0, 0, 0,220, 0, 0, 0,
|
|
221, 0, 0, 0,222, 0, 0, 0,223, 0, 0, 0,224, 0, 0, 0,
|
|
225, 0, 0, 0,226, 0, 0, 0,227, 0, 0, 0,228, 0, 0, 0,
|
|
229, 0, 0, 0,230, 0, 0, 0,231, 0, 0, 0,232, 0, 0, 0,
|
|
233, 0, 0, 0,234, 0, 0, 0,235, 0, 0, 0,236, 0, 0, 0,
|
|
237, 0, 0, 0,238, 0, 0, 0,239, 0, 0, 0,240, 0, 0, 0,
|
|
241, 0, 0, 0,242, 0, 0, 0,243, 0, 0, 0,244, 0, 0, 0,
|
|
245, 0, 0, 0,246, 0, 0, 0,247, 0, 0, 0,248, 0, 0, 0,
|
|
249, 0, 0, 0,250, 0, 0, 0,251, 0, 0, 0,252, 0, 0, 0,
|
|
253, 0, 0, 0,254, 0, 0, 0,255, 0, 0, 0,
|
|
0xff,
|
|
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
|
|
0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
|
|
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
|
|
0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
|
|
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
|
|
0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
|
|
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
|
|
0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
|
|
0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
|
|
0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
|
|
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
|
|
0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21,
|
|
0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
|
|
0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
|
|
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
|
|
0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41,
|
|
0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
|
|
0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
|
|
0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
|
|
0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61,
|
|
0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
|
|
0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71,
|
|
0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
|
|
0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 0x22,
|
|
0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
|
|
0x00,
|
|
0x82, 0x0c, 0x00, 0x7f, 0xf0, 0xf1, 0x00,
|
|
0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2,
|
|
0x8b, 0x35, 0x00, 0x01, 0x0f, 0x33, 0x01, 0x00,
|
|
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd1, 0xd0,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0x8b, 0x35, 0x00, 0x00, 0x0f, 0x30, 0x01, 0x00,
|
|
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd1, 0xd0,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0x8b, 0x35, 0x00, 0xc0, 0x0f, 0x5a, 0x01, 0x00,
|
|
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd1, 0xd0,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0x87, 0x25, 0x00, 0xc0, 0x0f, 0x5a,
|
|
0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x8a, 0x39, 0x00, 0xc0, 0x0f, 0x5a,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x88, 0x1b, 0x00, 0xc0, 0x0f, 0x5a,
|
|
0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00,
|
|
0x79, 0x00};
|
|
|
|
/*
|
|
* ASSERTION 0035: update of 0014
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0035(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0035.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
if (ACPI_FAILURE(Status = AtCheckBuffer("\\DEV0._PRS",
|
|
sizeof (Buffer0035), Buffer0035)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/* Add the flag to print contents of buffers */
|
|
AcpiDbgLevel |= ACPI_LV_TABLES;
|
|
|
|
Status = AcpiSetCurrentResources (Device, &OutBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
if (ACPI_FAILURE(Status = AtCheckBuffer("\\DEV0.ECRS",
|
|
sizeof (Buffer0035), Buffer0035)))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
typedef struct {UINT8 Bytes[1280];} UINT8ARR;
|
|
|
|
static UINT32 BufLen0036[] = {
|
|
6, 5, 5, 10, 6, 10, 14, 22, 14, 26, 62, 42,
|
|
32, 62, 42, 32, 1229, 17, 58, 58, 58, 42, 62, 32, 2,
|
|
11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63, 67, 71,
|
|
26,
|
|
};
|
|
|
|
static UINT8ARR Buffer0036[] = {
|
|
{0x23, 0x01, 0x00, 0x00, 0x79, 0x00},
|
|
{0x22, 0x02, 0x00, 0x79, 0x00},
|
|
{0x2a, 0x04, 0x02, 0x79, 0x00},
|
|
{0x47, 0x01, 0xf1, 0xf0, 0xf3, 0xf2, 0xf4, 0xf5, 0x79, 0x00},
|
|
{0x4b, 0xf1, 0xf0, 0xf2, 0x79, 0x00},
|
|
{0x77, 0x00, 0xa2, 0xb3, 0x76, 0xd5, 0xe6, 0xf7, 0x79, 0x00},
|
|
{0x81, 0x09, 0x00, 0x01, 0xf1, 0xf0, 0xf3, 0xf2, 0xf5, 0xf4, 0xf7, 0xf6, 0x79, 0x00},
|
|
{0x85, 0x11, 0x00, 0x01,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x86, 0x09, 0x00, 0x00,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4, 0x79, 0x00},
|
|
{0x84, 0x15, 0x00, 0x9f,
|
|
0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
|
|
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
|
|
0x00, 0x01, 0x02, 0x03, 0x79, 0x00},
|
|
{0x8a, 0x39, 0x00, 0x01, 0x0f, 0x33,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x87, 0x25, 0x00, 0x01, 0x0f, 0x33, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x88, 0x1b, 0x00, 0x01, 0x0f, 0x33,
|
|
0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x8a, 0x39, 0x00, 0x00, 0x0f, 0x30,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x87, 0x25, 0x00, 0x00, 0x0f, 0x30,
|
|
0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x88, 0x1b, 0x00, 0x02, 0x0f, 0x00,
|
|
0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x89, 0xc8, 0x04, 0x0f, 0xff,
|
|
1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
|
|
5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0,
|
|
9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0,
|
|
13, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0,
|
|
17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0,
|
|
21, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0,
|
|
25, 0, 0, 0, 26, 0, 0, 0, 27, 0, 0, 0, 28, 0, 0, 0,
|
|
29, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0,
|
|
33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 0, 0,
|
|
37, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0,
|
|
41, 0, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, 44, 0, 0, 0,
|
|
45, 0, 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0,
|
|
49, 0, 0, 0, 50, 0, 0, 0, 51, 0, 0, 0, 52, 0, 0, 0,
|
|
53, 0, 0, 0, 54, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0,
|
|
57, 0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 60, 0, 0, 0,
|
|
61, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 64, 0, 0, 0,
|
|
65, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 0, 0,
|
|
69, 0, 0, 0, 70, 0, 0, 0, 71, 0, 0, 0, 72, 0, 0, 0,
|
|
73, 0, 0, 0, 74, 0, 0, 0, 75, 0, 0, 0, 76, 0, 0, 0,
|
|
77, 0, 0, 0, 78, 0, 0, 0, 79, 0, 0, 0, 80, 0, 0, 0,
|
|
81, 0, 0, 0, 82, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0,
|
|
85, 0, 0, 0, 86, 0, 0, 0, 87, 0, 0, 0, 88, 0, 0, 0,
|
|
89, 0, 0, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 0, 0,
|
|
93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 0, 0, 96, 0, 0, 0,
|
|
97, 0, 0, 0, 98, 0, 0, 0, 99, 0, 0, 0,100, 0, 0, 0,
|
|
101, 0, 0, 0,102, 0, 0, 0,103, 0, 0, 0,104, 0, 0, 0,
|
|
105, 0, 0, 0,106, 0, 0, 0,107, 0, 0, 0,108, 0, 0, 0,
|
|
109, 0, 0, 0,110, 0, 0, 0,111, 0, 0, 0,112, 0, 0, 0,
|
|
113, 0, 0, 0,114, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0,
|
|
117, 0, 0, 0,118, 0, 0, 0,119, 0, 0, 0,120, 0, 0, 0,
|
|
121, 0, 0, 0,122, 0, 0, 0,123, 0, 0, 0,124, 0, 0, 0,
|
|
125, 0, 0, 0,126, 0, 0, 0,127, 0, 0, 0,128, 0, 0, 0,
|
|
129, 0, 0, 0,130, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,
|
|
133, 0, 0, 0,134, 0, 0, 0,135, 0, 0, 0,136, 0, 0, 0,
|
|
137, 0, 0, 0,138, 0, 0, 0,139, 0, 0, 0,140, 0, 0, 0,
|
|
141, 0, 0, 0,142, 0, 0, 0,143, 0, 0, 0,144, 0, 0, 0,
|
|
145, 0, 0, 0,146, 0, 0, 0,147, 0, 0, 0,148, 0, 0, 0,
|
|
149, 0, 0, 0,150, 0, 0, 0,151, 0, 0, 0,152, 0, 0, 0,
|
|
153, 0, 0, 0,154, 0, 0, 0,155, 0, 0, 0,156, 0, 0, 0,
|
|
157, 0, 0, 0,158, 0, 0, 0,159, 0, 0, 0,160, 0, 0, 0,
|
|
161, 0, 0, 0,162, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,
|
|
165, 0, 0, 0,166, 0, 0, 0,167, 0, 0, 0,168, 0, 0, 0,
|
|
169, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, 0, 0,
|
|
173, 0, 0, 0,174, 0, 0, 0,175, 0, 0, 0,176, 0, 0, 0,
|
|
177, 0, 0, 0,178, 0, 0, 0,179, 0, 0, 0,180, 0, 0, 0,
|
|
181, 0, 0, 0,182, 0, 0, 0,183, 0, 0, 0,184, 0, 0, 0,
|
|
185, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,188, 0, 0, 0,
|
|
189, 0, 0, 0,190, 0, 0, 0,191, 0, 0, 0,192, 0, 0, 0,
|
|
193, 0, 0, 0,194, 0, 0, 0,195, 0, 0, 0,196, 0, 0, 0,
|
|
197, 0, 0, 0,198, 0, 0, 0,199, 0, 0, 0,200, 0, 0, 0,
|
|
201, 0, 0, 0,202, 0, 0, 0,203, 0, 0, 0,204, 0, 0, 0,
|
|
205, 0, 0, 0,206, 0, 0, 0,207, 0, 0, 0,208, 0, 0, 0,
|
|
209, 0, 0, 0,210, 0, 0, 0,211, 0, 0, 0,212, 0, 0, 0,
|
|
213, 0, 0, 0,214, 0, 0, 0,215, 0, 0, 0,216, 0, 0, 0,
|
|
217, 0, 0, 0,218, 0, 0, 0,219, 0, 0, 0,220, 0, 0, 0,
|
|
221, 0, 0, 0,222, 0, 0, 0,223, 0, 0, 0,224, 0, 0, 0,
|
|
225, 0, 0, 0,226, 0, 0, 0,227, 0, 0, 0,228, 0, 0, 0,
|
|
229, 0, 0, 0,230, 0, 0, 0,231, 0, 0, 0,232, 0, 0, 0,
|
|
233, 0, 0, 0,234, 0, 0, 0,235, 0, 0, 0,236, 0, 0, 0,
|
|
237, 0, 0, 0,238, 0, 0, 0,239, 0, 0, 0,240, 0, 0, 0,
|
|
241, 0, 0, 0,242, 0, 0, 0,243, 0, 0, 0,244, 0, 0, 0,
|
|
245, 0, 0, 0,246, 0, 0, 0,247, 0, 0, 0,248, 0, 0, 0,
|
|
249, 0, 0, 0,250, 0, 0, 0,251, 0, 0, 0,252, 0, 0, 0,
|
|
253, 0, 0, 0,254, 0, 0, 0,255, 0, 0, 0,
|
|
0xff,
|
|
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
|
|
0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
|
|
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
|
|
0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
|
|
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
|
|
0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
|
|
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
|
|
0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
|
|
0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
|
|
0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
|
|
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
|
|
0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21,
|
|
0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
|
|
0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
|
|
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
|
|
0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41,
|
|
0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
|
|
0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
|
|
0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
|
|
0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61,
|
|
0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
|
|
0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71,
|
|
0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
|
|
0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 0x22,
|
|
0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
|
|
0x00, 0x79, 0x00},
|
|
{0x82, 0x0c, 0x00, 0x7f, 0xf0, 0xf1, 0x00,
|
|
0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0x79, 0x00},
|
|
{0x8b, 0x35, 0x00, 0x01, 0x0f, 0x33, 0x01, 0x00,
|
|
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd1, 0xd0,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00},
|
|
{0x8b, 0x35, 0x00, 0x00, 0x0f, 0x30, 0x01, 0x00,
|
|
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd1, 0xd0,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00},
|
|
{0x8b, 0x35, 0x00, 0xc0, 0x0f, 0x5a, 0x01, 0x00,
|
|
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd1, 0xd0,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0x79, 0x00},
|
|
{0x87, 0x25, 0x00, 0xc0, 0x0f, 0x5a,
|
|
0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x8a, 0x39, 0x00, 0xc0, 0x0f, 0x5a,
|
|
0xdf, 0xde, 0xdd, 0xdc, 0xdb, 0xda, 0xd9, 0xd8,
|
|
0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xe0,
|
|
0xef, 0xee, 0xed, 0xec, 0xeb, 0xea, 0xe9, 0xe8,
|
|
0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x88, 0x1b, 0x00, 0xc0, 0x0f, 0x5a,
|
|
0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe,
|
|
0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54,
|
|
0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00},
|
|
{0x79, 0x00},
|
|
|
|
{0x89, 0x06, 0x00, 0x00, 0x01,
|
|
0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x0a, 0x00, 0x08, 0x02,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x0e, 0x00, 0x04, 0x03,
|
|
0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x12, 0x00, 0x0c, 0x04,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x16, 0x00, 0x02, 0x05,
|
|
0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x1a, 0x00, 0x0a, 0x06,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x1e, 0x00, 0x06, 0x07,
|
|
0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x22, 0x00, 0x0e, 0x08,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x26, 0x00, 0x01, 0x09,
|
|
0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x2a, 0x00, 0x09, 0x0a,
|
|
0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x2e, 0x00, 0x05, 0x0b,
|
|
0xd7, 0xd6, 0xd5, 0xd4,
|
|
0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x32, 0x00, 0x0d, 0x0c,
|
|
0xd3, 0xd2, 0xd1, 0xd0, 0xd7, 0xd6, 0xd5, 0xd4,
|
|
0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x36, 0x00, 0x03, 0x0d,
|
|
0xcf, 0xce, 0xcd, 0xcc,
|
|
0xd3, 0xd2, 0xd1, 0xd0, 0xd7, 0xd6, 0xd5, 0xd4,
|
|
0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x3a, 0x00, 0x0b, 0x0e,
|
|
0xcb, 0xca, 0xc9, 0xc8, 0xcf, 0xce, 0xcd, 0xcc,
|
|
0xd3, 0xd2, 0xd1, 0xd0, 0xd7, 0xd6, 0xd5, 0xd4,
|
|
0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x3e, 0x00, 0x07, 0x0f,
|
|
0xc7, 0xc6, 0xc5, 0xc4,
|
|
0xcb, 0xca, 0xc9, 0xc8, 0xcf, 0xce, 0xcd, 0xcc,
|
|
0xd3, 0xd2, 0xd1, 0xd0, 0xd7, 0xd6, 0xd5, 0xd4,
|
|
0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x89, 0x42, 0x00, 0x0f, 0x10,
|
|
0xc3, 0xc2, 0xc1, 0xc0, 0xc7, 0xc6, 0xc5, 0xc4,
|
|
0xcb, 0xca, 0xc9, 0xc8, 0xcf, 0xce, 0xcd, 0xcc,
|
|
0xd3, 0xd2, 0xd1, 0xd0, 0xd7, 0xd6, 0xd5, 0xd4,
|
|
0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
|
|
0xe3, 0xe2, 0xe1, 0xe0, 0xe7, 0xe6, 0xe5, 0xe4,
|
|
0xeb, 0xea, 0xe9, 0xe8, 0xef, 0xee, 0xed, 0xec,
|
|
0xf3, 0xf2, 0xf1, 0xf0, 0xf7, 0xf6, 0xf5, 0xf4,
|
|
0xfb, 0xfa, 0xf9, 0xf8, 0xff, 0xfe, 0xfd, 0xfc, 0x79, 0x00},
|
|
{0x31, 0x00, 0x38, 0x31, 0x04, 0x31, 0x08, 0x38, 0x31, 0x01, 0x30,
|
|
0x31, 0x09, 0x38, 0x31, 0x02, 0x38, 0x31, 0x06, 0x38, 0x31, 0x0a, 0x38, 0x79, 0x00},
|
|
|
|
|
|
};
|
|
|
|
/*
|
|
* ASSERTION 0036: update of 0035
|
|
*/
|
|
ACPI_STATUS
|
|
AtRsrcTest0036(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
ACPI_BUFFER OutBuffer = {ACPI_ALLOCATE_BUFFER};
|
|
UINT32 i;
|
|
UINT32 NumChecks;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0036.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
NumChecks = sizeof (BufLen0036) / sizeof (UINT32);
|
|
if (NumChecks != (sizeof (Buffer0036) / sizeof (UINT8ARR)))
|
|
{
|
|
TestErrors++;
|
|
printf ("Test error: NumChecks (%d) != sizeof (Buffer0036) /"
|
|
" sizeof (UINT8ARR) (%d)\n",
|
|
NumChecks, (UINT32)(sizeof (Buffer0036) / sizeof (UINT8ARR)));
|
|
return AE_ERROR;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
/* Add the flag to print contents of buffers */
|
|
AcpiDbgLevel |= ACPI_LV_TABLES;
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
for (i = 0; i < NumChecks; i++)
|
|
{
|
|
printf ("i = %d\n", i);
|
|
OutBuffer.Length = ACPI_ALLOCATE_BUFFER;
|
|
OutBuffer.Pointer = NULL;
|
|
|
|
Status = AcpiGetPossibleResources (Device, &OutBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetCurrentResources(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiSetCurrentResources (Device, &OutBuffer);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiSetCurrentResources(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
(void)AtCheckBuffer("\\DEV0.ECRS", BufLen0036[i], Buffer0036[i].Bytes);
|
|
|
|
AcpiOsFree(OutBuffer.Pointer);
|
|
}
|
|
|
|
return AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
}
|
|
|
|
|
|
/*
|
|
* ASSERTION 0037: reproduces BZ2039
|
|
*/
|
|
|
|
/* from drivers/acpi/pci_link.c */
|
|
|
|
#define ACPI_PCI_LINK_MAX_POSSIBLE 16
|
|
|
|
/*
|
|
* If a link is initialized, we never change its active and initialized
|
|
* later even the link is disable. Instead, we just repick the active irq
|
|
*/
|
|
struct acpi_pci_link_irq {
|
|
UINT8 active; /* Current IRQ */
|
|
UINT8 triggering; /* All IRQs */
|
|
UINT8 polarity; /* All IRQs */
|
|
UINT8 resource_type;
|
|
UINT8 possible_count;
|
|
UINT8 possible[ACPI_PCI_LINK_MAX_POSSIBLE];
|
|
UINT8 initialized:1;
|
|
UINT8 reserved:7;
|
|
};
|
|
|
|
struct acpi_pci_link {
|
|
// struct list_head node;
|
|
// struct acpi_device *device;
|
|
ACPI_HANDLE handle;
|
|
struct acpi_pci_link_irq irq;
|
|
int refcnt;
|
|
};
|
|
|
|
static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
|
|
{
|
|
int result = 0;
|
|
ACPI_STATUS status = AE_OK;
|
|
struct {
|
|
struct acpi_resource res;
|
|
struct acpi_resource end;
|
|
} resource_obj, *resource = &resource_obj;
|
|
struct acpi_buffer buffer = { 0, NULL };
|
|
|
|
|
|
if (!link || !irq)
|
|
return -1;
|
|
|
|
memset(resource, 0, sizeof(*resource) + 1);
|
|
buffer.Length = sizeof(*resource) + 1;
|
|
buffer.Pointer = resource;
|
|
|
|
switch (link->irq.resource_type) {
|
|
case ACPI_RESOURCE_TYPE_IRQ:
|
|
resource->res.Type = ACPI_RESOURCE_TYPE_IRQ;
|
|
resource->res.Length = sizeof(struct acpi_resource);
|
|
resource->res.Data.Irq.Triggering = link->irq.triggering;
|
|
resource->res.Data.Irq.Polarity =
|
|
link->irq.polarity;
|
|
if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
|
|
resource->res.Data.Irq.Sharable =
|
|
ACPI_EXCLUSIVE;
|
|
else
|
|
resource->res.Data.Irq.Sharable = ACPI_SHARED;
|
|
resource->res.Data.Irq.InterruptCount = 1;
|
|
resource->res.Data.Irq.Interrupts[0] = (UINT8)irq;
|
|
break;
|
|
|
|
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
|
|
resource->res.Type = ACPI_RESOURCE_TYPE_EXTENDED_IRQ;
|
|
resource->res.Length = sizeof(struct acpi_resource);
|
|
resource->res.Data.ExtendedIrq.ProducerConsumer =
|
|
ACPI_CONSUMER;
|
|
resource->res.Data.ExtendedIrq.Triggering =
|
|
link->irq.triggering;
|
|
resource->res.Data.ExtendedIrq.Polarity =
|
|
link->irq.polarity;
|
|
if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
|
|
resource->res.Data.Irq.Sharable =
|
|
ACPI_EXCLUSIVE;
|
|
else
|
|
resource->res.Data.Irq.Sharable = ACPI_SHARED;
|
|
resource->res.Data.ExtendedIrq.InterruptCount = 1;
|
|
resource->res.Data.ExtendedIrq.Interrupts[0] = (UINT8)irq;
|
|
/* ignore resource_source, it's optional */
|
|
break;
|
|
default:
|
|
printf ("Invalid Resource_type %d\n", link->irq.resource_type);
|
|
result = -2;
|
|
goto end;
|
|
|
|
}
|
|
resource->end.Type = ACPI_RESOURCE_TYPE_END_TAG;
|
|
|
|
/* Attempt to set the resource */
|
|
status = AcpiSetCurrentResources(link->handle, &buffer);
|
|
|
|
/* check for total failure */
|
|
if (ACPI_FAILURE(status)) {
|
|
ACPI_EXCEPTION((AE_INFO, status, "Evaluating _SRS"));
|
|
result = -3;
|
|
goto end;
|
|
}
|
|
|
|
/*
|
|
...
|
|
*/
|
|
end:
|
|
return result;
|
|
}
|
|
|
|
ACPI_STATUS
|
|
AtRsrcTest0037(void)
|
|
{
|
|
ACPI_STATUS Status;
|
|
ACPI_HANDLE Device;
|
|
ACPI_STRING Pathname = "\\DEV0";
|
|
struct acpi_pci_link link;
|
|
int irq = 1;
|
|
int i, NumErr = 0;
|
|
|
|
if (ACPI_FAILURE(Status = AtAMLcodeFileNameSet("rt0000.aml")))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AtSubsystemInit(
|
|
AAPITS_INI_DEF,
|
|
AAPITS_EN_FLAGS, AAPITS_OI_FLAGS, AtAMLcodeFileName);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
Status = AcpiGetHandle (NULL, Pathname, &Device);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
AapiErrors++;
|
|
printf ("Api Error: AcpiGetHandle(%s) returned %s\n",
|
|
Pathname, AcpiFormatException(Status));
|
|
return Status;
|
|
}
|
|
|
|
/* Add the flag to print contents of buffers */
|
|
AcpiDbgLevel |= ACPI_LV_TABLES;
|
|
|
|
/*
|
|
Status = AtTerminateCtrlCheck(AE_OK, ALL_STAT);
|
|
if (ACPI_FAILURE(Status))
|
|
{
|
|
return Status;
|
|
}
|
|
*/
|
|
|
|
link.handle = Device;
|
|
for (i = 0; i < 8; i++)
|
|
{
|
|
link.irq.resource_type = (i % 2)? ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
|
|
ACPI_RESOURCE_TYPE_IRQ;
|
|
link.irq.triggering = (i >> 1) % 2;
|
|
link.irq.polarity = (i >> 2) % 2;
|
|
|
|
if (acpi_pci_link_set(&link, irq))
|
|
{
|
|
NumErr++;
|
|
}
|
|
}
|
|
|
|
if (NumErr)
|
|
{
|
|
printf ("acpi_pci_link_set: %d errors\n",
|
|
NumErr);
|
|
return Status;
|
|
}
|
|
|
|
return AE_OK;
|
|
} |