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 ---