mirror of
https://github.com/acpica/acpica/
synced 2025-03-10 08:11:35 +03:00
Wildcards for find command; moved history commands here
date 2000.03.24.21.16.00; author rmoore1; state Exp;
This commit is contained in:
parent
8b652cc1cf
commit
153d073ebf
@ -136,25 +136,178 @@
|
||||
ARGUMENT_INFO DbObjectTypes [] =
|
||||
{
|
||||
"ANY",
|
||||
"NUMBER",
|
||||
"STRING",
|
||||
"BUFFER",
|
||||
"PACKAGE",
|
||||
"FIELD",
|
||||
"DEVICE",
|
||||
"EVENT",
|
||||
"METHOD",
|
||||
"MUTEX",
|
||||
"REGION",
|
||||
"POWERRESOURCE",
|
||||
"PROCESSOR",
|
||||
"THERMALZONE",
|
||||
"BUFFERFIELD",
|
||||
"DDBHANDLE",
|
||||
"NUMBERS",
|
||||
"STRINGS",
|
||||
"BUFFERS",
|
||||
"PACKAGES",
|
||||
"FIELDS",
|
||||
"DEVICES",
|
||||
"EVENTS",
|
||||
"METHODS",
|
||||
"MUTEXES",
|
||||
"REGIONS",
|
||||
"POWERRESOURCES",
|
||||
"PROCESSORS",
|
||||
"THERMALZONES",
|
||||
"BUFFERFIELDS",
|
||||
"DDBHANDLES",
|
||||
NULL /* Must be null terminated */
|
||||
};
|
||||
|
||||
|
||||
typedef struct HistoryInfo
|
||||
{
|
||||
char Command[80];
|
||||
UINT32 CmdNum;
|
||||
|
||||
} HISTORY_INFO;
|
||||
|
||||
|
||||
#define HI_NO_HISTORY 0
|
||||
#define HI_RECORD_HISTORY 1
|
||||
|
||||
#define HISTORY_SIZE 8
|
||||
HISTORY_INFO HistoryBuffer[HISTORY_SIZE];
|
||||
UINT32 LoHistory = 0;
|
||||
UINT32 NumHistory = 0;
|
||||
UINT32 NextHistoryIndex = 0;
|
||||
UINT32 NextCmdNum = 1;
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: DbAddToHistory
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Add a command line to the history buffer.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
DbAddToHistory (
|
||||
char *CommandLine)
|
||||
{
|
||||
|
||||
|
||||
STRCPY (HistoryBuffer[NextHistoryIndex].Command, CommandLine);
|
||||
HistoryBuffer[NextHistoryIndex].CmdNum = NextCmdNum;
|
||||
|
||||
if ((NumHistory == HISTORY_SIZE) &&
|
||||
(NextHistoryIndex == LoHistory))
|
||||
{
|
||||
LoHistory++;
|
||||
if (LoHistory >= HISTORY_SIZE)
|
||||
{
|
||||
LoHistory = 0;
|
||||
}
|
||||
}
|
||||
|
||||
NextHistoryIndex++;
|
||||
if (NextHistoryIndex >= HISTORY_SIZE)
|
||||
{
|
||||
NextHistoryIndex = 0;
|
||||
}
|
||||
|
||||
|
||||
NextCmdNum++;
|
||||
if (NumHistory < HISTORY_SIZE)
|
||||
{
|
||||
NumHistory++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: DbDisplayHistory
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Display the contents of the history buffer
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void
|
||||
DbDisplayHistory (void)
|
||||
{
|
||||
UINT32 i;
|
||||
UINT32 HistoryIndex;
|
||||
|
||||
|
||||
HistoryIndex = LoHistory;
|
||||
for (i = 0; i < NumHistory; i++)
|
||||
{
|
||||
OsdPrintf ("%d %s\n", HistoryBuffer[HistoryIndex].CmdNum, &HistoryBuffer[HistoryIndex].Command);
|
||||
|
||||
HistoryIndex++;
|
||||
if (HistoryIndex >= HISTORY_SIZE)
|
||||
{
|
||||
HistoryIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: DbGetFromHistory
|
||||
*
|
||||
* PARAMETERS: CommandNumArg - String containing the number of the
|
||||
* command to be retrieved
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Get a command from the history buffer
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
char *
|
||||
DbGetFromHistory (
|
||||
char *CommandNumArg)
|
||||
{
|
||||
UINT32 i;
|
||||
UINT32 HistoryIndex;
|
||||
UINT32 CmdNum;
|
||||
|
||||
|
||||
if (CommandNumArg == NULL)
|
||||
{
|
||||
CmdNum = NextCmdNum - 1;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
CmdNum = STRTOUL (CommandNumArg, NULL, 0);
|
||||
}
|
||||
|
||||
HistoryIndex = LoHistory;
|
||||
for (i = 0; i < NumHistory; i++)
|
||||
{
|
||||
if (HistoryBuffer[HistoryIndex].CmdNum == CmdNum)
|
||||
{
|
||||
return (HistoryBuffer[HistoryIndex].Command);
|
||||
}
|
||||
|
||||
|
||||
HistoryIndex++;
|
||||
if (HistoryIndex >= HISTORY_SIZE)
|
||||
{
|
||||
HistoryIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
OsdPrintf ("Invalid history number: %d\n", HistoryIndex);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: DbMatchArgument
|
||||
@ -544,7 +697,6 @@ DbWalkForSpecificObjects (
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 BufSize;
|
||||
UINT32 Type = (UINT32) Context;
|
||||
char buffer[64];
|
||||
|
||||
|
||||
@ -564,22 +716,31 @@ DbWalkForSpecificObjects (
|
||||
|
||||
if (ObjDesc)
|
||||
{
|
||||
switch (Type)
|
||||
switch (ObjDesc->Common.Type)
|
||||
{
|
||||
case ACPI_TYPE_Method:
|
||||
|
||||
OsdPrintf (" #args = %d", ObjDesc->Method.ParamCount);
|
||||
OsdPrintf (" #Args %d Concurrency %d", ObjDesc->Method.ParamCount, ObjDesc->Method.Concurrency);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_Number:
|
||||
|
||||
OsdPrintf (" Value = 0x%X", ObjDesc->Number.Value);
|
||||
OsdPrintf (" Value 0x%X", ObjDesc->Number.Value);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_String:
|
||||
|
||||
OsdPrintf (" \"%s\"", ObjDesc->String.Pointer);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_Region:
|
||||
OsdPrintf (" SpaceId %d Address %X Length %X", ObjDesc->Region.SpaceId, ObjDesc->Region.Address, ObjDesc->Region.Length);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_Package:
|
||||
OsdPrintf (" #Elements %d", ObjDesc->Package.Count);
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_Buffer:
|
||||
OsdPrintf (" Length %d", ObjDesc->Buffer.Length);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -662,30 +823,46 @@ DbWalkAndMatchName (
|
||||
{
|
||||
ACPI_OBJECT_INTERNAL *ObjDesc;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 Name = *((UINT32 *) Context);
|
||||
char *RequestedName = (char *) Context;
|
||||
UINT32 i;
|
||||
UINT32 BufSize;
|
||||
char buffer[64];
|
||||
char Buffer[96];
|
||||
|
||||
|
||||
ObjDesc = ((NAME_TABLE_ENTRY *)ObjHandle)->Object;
|
||||
|
||||
if (Name == ((NAME_TABLE_ENTRY *)ObjHandle)->Name)
|
||||
|
||||
/* Check for a name match */
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
/* Get the full pathname to this method */
|
||||
/* Wildcard support */
|
||||
|
||||
Status = NsHandleToPathname (ObjHandle, &BufSize, buffer);
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
if ((RequestedName[i] != '?') &&
|
||||
(RequestedName[i] != ((char *)(&((NAME_TABLE_ENTRY *)ObjHandle)->Name))[i]))
|
||||
{
|
||||
OsdPrintf ("Could Not get pathname for object %p\n", ObjHandle);
|
||||
}
|
||||
/* No match, just exit */
|
||||
|
||||
else
|
||||
{
|
||||
OsdPrintf ("%32s (0x%p) - %s\n", buffer, ObjHandle, CmGetTypeName (((NAME_TABLE_ENTRY *)ObjHandle)->Type));
|
||||
return AE_OK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Get the full pathname to this object */
|
||||
|
||||
BufSize = sizeof (Buffer);
|
||||
|
||||
Status = NsHandleToPathname (ObjHandle, &BufSize, Buffer);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
OsdPrintf ("Could Not get pathname for object %p\n", ObjHandle);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
OsdPrintf ("%32s (0x%p) - %s\n", Buffer, ObjHandle, CmGetTypeName (((NAME_TABLE_ENTRY *)ObjHandle)->Type));
|
||||
}
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user