aslcodegen.c (9a696dc6bb0e8e783dfd169c8299e1f33aac2935) | aslcodegen.c (44b0f624aee0d43179bf3874c70e03b6ae49a4db) |
---|---|
1/****************************************************************************** 2 * 3 * Module Name: aslcodegen - AML code generation 4 * 5 *****************************************************************************/ 6 7/****************************************************************************** 8 * --- 160 unchanged lines hidden (view full) --- 169CgWriteAmlOpcode ( 170 ACPI_PARSE_OBJECT *Op); 171 172static void 173CgWriteTableHeader ( 174 ACPI_PARSE_OBJECT *Op); 175 176static void | 1/****************************************************************************** 2 * 3 * Module Name: aslcodegen - AML code generation 4 * 5 *****************************************************************************/ 6 7/****************************************************************************** 8 * --- 160 unchanged lines hidden (view full) --- 169CgWriteAmlOpcode ( 170 ACPI_PARSE_OBJECT *Op); 171 172static void 173CgWriteTableHeader ( 174 ACPI_PARSE_OBJECT *Op); 175 176static void |
177CgCloseTable ( 178 void); | 177CgWriteNode ( 178 ACPI_PARSE_OBJECT *Op); |
179 180static void | 179 180static void |
181CgWriteNode ( | 181CgUpdateHeader ( |
182 ACPI_PARSE_OBJECT *Op); 183 184 185/******************************************************************************* 186 * 187 * FUNCTION: CgGenerateAmlOutput 188 * 189 * PARAMETERS: None. --- 7 unchanged lines hidden (view full) --- 197 198void 199CgGenerateAmlOutput ( 200 void) 201{ 202 203 /* Generate the AML output file */ 204 | 182 ACPI_PARSE_OBJECT *Op); 183 184 185/******************************************************************************* 186 * 187 * FUNCTION: CgGenerateAmlOutput 188 * 189 * PARAMETERS: None. --- 7 unchanged lines hidden (view full) --- 197 198void 199CgGenerateAmlOutput ( 200 void) 201{ 202 203 /* Generate the AML output file */ 204 |
205 FlSeekFile (ASL_FILE_SOURCE_OUTPUT, 0); 206 AslGbl_SourceLine = 0; 207 AslGbl_NextError = AslGbl_ErrorLog; 208 209 TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_DOWNWARD, | 205 TrWalkParseTree (AslGbl_CurrentDB, 206 ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_DB_SEPARATELY, |
210 CgAmlWriteWalk, NULL, NULL); 211 212 DbgPrint (ASL_TREE_OUTPUT, ASL_PARSE_TREE_HEADER2); | 207 CgAmlWriteWalk, NULL, NULL); 208 209 DbgPrint (ASL_TREE_OUTPUT, ASL_PARSE_TREE_HEADER2); |
213 CgCloseTable (); | 210 CgUpdateHeader (AslGbl_CurrentDB); |
214} 215 216 217/******************************************************************************* 218 * 219 * FUNCTION: CgAmlWriteWalk 220 * 221 * PARAMETERS: ASL_WALK_CALLBACK --- 481 unchanged lines hidden (view full) --- 703 Checksum = (UINT8) (0 - Sum); 704 705 /* Re-write the the checksum byte */ 706 707 FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + 708 ACPI_OFFSET (ACPI_TABLE_HEADER, Checksum)); 709 710 FlWriteFile (ASL_FILE_AML_OUTPUT, &Checksum, 1); | 211} 212 213 214/******************************************************************************* 215 * 216 * FUNCTION: CgAmlWriteWalk 217 * 218 * PARAMETERS: ASL_WALK_CALLBACK --- 481 unchanged lines hidden (view full) --- 700 Checksum = (UINT8) (0 - Sum); 701 702 /* Re-write the the checksum byte */ 703 704 FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + 705 ACPI_OFFSET (ACPI_TABLE_HEADER, Checksum)); 706 707 FlWriteFile (ASL_FILE_AML_OUTPUT, &Checksum, 1); |
711} | |
712 | 708 |
713 714/******************************************************************************* 715 * 716 * FUNCTION: CgCloseTable 717 * 718 * PARAMETERS: None. 719 * 720 * RETURN: None. 721 * 722 * DESCRIPTION: Complete the ACPI table by calculating the checksum and 723 * re-writing each table header. This allows support for 724 * multiple definition blocks in a single source file. 725 * 726 ******************************************************************************/ 727 728static void 729CgCloseTable ( 730 void) 731{ 732 ACPI_PARSE_OBJECT *Op; 733 734 735 /* Process all definition blocks */ 736 737 Op = AslGbl_ParseTreeRoot->Asl.Child; 738 while (Op) 739 { 740 CgUpdateHeader (Op); 741 Op = Op->Asl.Next; 742 } | 709 /* 710 * Seek to the end of the file. This is done to support multiple file 711 * compilation. Doing this simplifies other parts of the codebase because 712 * it eliminates the need to seek for a different starting place. 713 */ 714 FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + Length); |
743} 744 745 746/******************************************************************************* 747 * 748 * FUNCTION: CgWriteNode 749 * 750 * PARAMETERS: Op - Parse node to write. --- 95 unchanged lines hidden --- | 715} 716 717 718/******************************************************************************* 719 * 720 * FUNCTION: CgWriteNode 721 * 722 * PARAMETERS: Op - Parse node to write. --- 95 unchanged lines hidden --- |