1 /******************************************************************************
3 * Module Name: acapps - common include for ACPI applications/tools
5 *****************************************************************************/
8 * Copyright (C) 2000 - 2018, Intel Corp.
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions, and the following disclaimer,
16 * without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 * substantially similar to the "NO WARRANTY" disclaimer below
19 * ("Disclaimer") and any redistribution must be conditioned upon
20 * including a substantially similar Disclaimer requirement for further
21 * binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 * of any contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 * POSSIBILITY OF SUCH DAMAGES.
47 /* Definitions for comment state */
49 #define ASL_COMMENT_STANDARD 1
50 #define ASLCOMMENT_INLINE 2
51 #define ASL_COMMENT_OPEN_PAREN 3
52 #define ASL_COMMENT_CLOSE_PAREN 4
53 #define ASL_COMMENT_CLOSE_BRACE 5
55 /* Definitions for comment print function*/
57 #define AML_COMMENT_STANDARD 1
58 #define AMLCOMMENT_INLINE 2
59 #define AML_COMMENT_END_NODE 3
60 #define AML_NAMECOMMENT 4
61 #define AML_COMMENT_CLOSE_BRACE 5
62 #define AML_COMMENT_ENDBLK 6
63 #define AML_COMMENT_INCLUDE 7
65 #ifdef ACPI_ASL_COMPILER
70 cv_process_comment(struct asl_comment_state current_state
,
71 char *string_buffer
, int c1
);
74 cv_process_comment_type2(struct asl_comment_state current_state
,
77 u32
cv_calculate_comment_lengths(union acpi_parse_object
*op
);
79 void cv_process_comment_state(char input
);
81 char *cv_append_inline_comment(char *inline_comment
, char *to_add
);
83 void cv_add_to_comment_list(char *to_add
);
85 void cv_place_comment(u8 type
, char *comment_string
);
87 u32
cv_parse_op_block_type(union acpi_parse_object
*op
);
89 struct acpi_comment_node
*cv_comment_node_calloc(void);
91 void cg_write_aml_def_block_comment(union acpi_parse_object
*op
);
94 cg_write_one_aml_comment(union acpi_parse_object
*op
,
95 char *comment_to_print
, u8 input_option
);
97 void cg_write_aml_comment(union acpi_parse_object
*op
);
103 cv_init_file_tree(struct acpi_table_header
*table
,
104 u8
*aml_start
, u32 aml_length
);
106 void cv_clear_op_comments(union acpi_parse_object
*op
);
108 struct acpi_file_node
*cv_filename_exists(char *filename
,
109 struct acpi_file_node
*head
);
111 void cv_label_file_node(union acpi_parse_object
*op
);
114 cv_capture_list_comments(struct acpi_parse_state
*parser_state
,
115 struct acpi_comment_node
*list_head
,
116 struct acpi_comment_node
*list_tail
);
118 void cv_capture_comments_only(struct acpi_parse_state
*parser_state
);
120 void cv_capture_comments(struct acpi_walk_state
*walk_state
);
122 void cv_transfer_comments(union acpi_parse_object
*op
);
127 void cv_switch_files(u32 level
, union acpi_parse_object
*op
);
129 u8
cv_file_has_switched(union acpi_parse_object
*op
);
131 void cv_close_paren_write_comment(union acpi_parse_object
*op
, u32 level
);
133 void cv_close_brace_write_comment(union acpi_parse_object
*op
, u32 level
);
136 cv_print_one_comment_list(struct acpi_comment_node
*comment_list
, u32 level
);
139 cv_print_one_comment_type(union acpi_parse_object
*op
,
140 u8 comment_type
, char *end_str
, u32 level
);
144 #endif /* _ACCONVERT */