diff options
Diffstat (limited to 'source/tools/acpixtract/axmain.c')
| -rw-r--r-- | source/tools/acpixtract/axmain.c | 50 |
1 files changed, 20 insertions, 30 deletions
diff --git a/source/tools/acpixtract/axmain.c b/source/tools/acpixtract/axmain.c index 905787a3c725..3fa179940f4a 100644 --- a/source/tools/acpixtract/axmain.c +++ b/source/tools/acpixtract/axmain.c @@ -41,42 +41,16 @@ * POSSIBILITY OF SUCH DAMAGES. */ -#include "acpi.h" -#include "accommon.h" -#include "acapps.h" -#include <stdio.h> +#define DEFINE_ACPIXTRACT_GLOBALS +#include "acpixtract.h" +/* Local prototypes */ + static void DisplayUsage ( void); -int -AxExtractTables ( - char *InputPathname, - char *Signature, - unsigned int MinimumInstances); - -int -AxListTables ( - char *InputPathname); - - -/* Options */ - -#define AX_EXTRACT_ALL 0 -#define AX_LIST_ALL 1 -#define AX_EXTRACT_SIGNATURE 2 -#define AX_EXTRACT_AML_TABLES 3 - -static int AxAction = AX_EXTRACT_AML_TABLES; /* DSDT & SSDTs */ - -#define AX_OPTIONAL_TABLES 0 -#define AX_REQUIRED_TABLE 1 - -#define AX_UTILITY_NAME "ACPI Binary Table Extraction Utility" -#define AX_SUPPORTED_OPTIONS "ahls:v" - /****************************************************************************** * @@ -95,6 +69,7 @@ DisplayUsage ( ACPI_OPTION ("-a", "Extract all tables, not just DSDT/SSDT"); ACPI_OPTION ("-l", "List table summaries, do not extract"); + ACPI_OPTION ("-m", "Extract multiple DSDT/SSDTs to a single file"); ACPI_OPTION ("-s <signature>", "Extract all tables with <signature>"); ACPI_OPTION ("-v", "Display version information"); @@ -117,10 +92,15 @@ main ( char *argv[]) { char *Filename; + int AxAction; int Status; int j; + Gbl_TableCount = 0; + Gbl_TableListHead = NULL; + AxAction = AX_EXTRACT_AML_TABLES; /* Default: DSDT & SSDTs */ + ACPI_DEBUG_INITIALIZE (); /* For debug version only */ AcpiOsInitialize (); printf (ACPI_COMMON_SIGNON (AX_UTILITY_NAME)); @@ -145,6 +125,11 @@ main ( AxAction = AX_LIST_ALL; /* List tables only, do not extract */ break; + case 'm': + + AxAction = AX_EXTRACT_MULTI_TABLE; /* Make single file for all DSDT/SSDTs */ + break; + case 's': AxAction = AX_EXTRACT_SIGNATURE; /* Extract only tables with this sig */ @@ -179,6 +164,11 @@ main ( Status = AxExtractTables (Filename, NULL, AX_OPTIONAL_TABLES); break; + case AX_EXTRACT_MULTI_TABLE: + + Status = AxExtractToMultiAmlFile (Filename); + break; + case AX_LIST_ALL: Status = AxListTables (Filename); |
