summaryrefslogtreecommitdiff
path: root/source/tools/acpixtract/axmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools/acpixtract/axmain.c')
-rw-r--r--source/tools/acpixtract/axmain.c50
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);