blob: c84223b60b3563016635d511044cb2f50c54425c [file] [log] [blame]
Bob Moore9cf7ade2017-04-28 08:53:22 +08001/******************************************************************************
2 *
3 * Module Name: acapps - common include for ACPI applications/tools
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2017, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
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.
25 *
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.
29 *
30 * NO WARRANTY
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.
42 */
43
44#ifndef _ACCONVERT
45#define _ACCONVERT
46
47/* Definitions for comment state */
48
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
54
55/* Definitions for comment print function*/
56
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
64
65#ifdef ACPI_ASL_COMPILER
66/*
67 * cvcompiler
68 */
69void
70cv_process_comment(struct asl_comment_state current_state,
71 char *string_buffer, int c1);
72
73void
74cv_process_comment_type2(struct asl_comment_state current_state,
75 char *string_buffer);
76
77u32 cv_calculate_comment_lengths(union acpi_parse_object *op);
78
79void cv_process_comment_state(char input);
80
81char *cv_append_inline_comment(char *inline_comment, char *to_add);
82
83void cv_add_to_comment_list(char *to_add);
84
85void cv_place_comment(u8 type, char *comment_string);
86
87u32 cv_parse_op_block_type(union acpi_parse_object *op);
88
89struct acpi_comment_node *cv_comment_node_calloc(void);
90
91void cg_write_aml_def_block_comment(union acpi_parse_object *op);
92
93void
94cg_write_one_aml_comment(union acpi_parse_object *op,
95 char *comment_to_print, u8 input_option);
96
97void cg_write_aml_comment(union acpi_parse_object *op);
98
99/*
100 * cvparser
101 */
102void
103cv_init_file_tree(struct acpi_table_header *table,
104 u8 *aml_start, u32 aml_length);
105
106void cv_clear_op_comments(union acpi_parse_object *op);
107
108struct acpi_file_node *cv_filename_exists(char *filename,
109 struct acpi_file_node *head);
110
111void cv_label_file_node(union acpi_parse_object *op);
112
113void
114cv_capture_list_comments(struct acpi_parse_state *parser_state,
115 struct acpi_comment_node *list_head,
116 struct acpi_comment_node *list_tail);
117
118void cv_capture_comments_only(struct acpi_parse_state *parser_state);
119
120void cv_capture_comments(struct acpi_walk_state *walk_state);
121
122void cv_transfer_comments(union acpi_parse_object *op);
123
124/*
125 * cvdisasm
126 */
127void cv_switch_files(u32 level, union acpi_parse_object *op);
128
129u8 cv_file_has_switched(union acpi_parse_object *op);
130
131void cv_close_paren_write_comment(union acpi_parse_object *op, u32 level);
132
133void cv_close_brace_write_comment(union acpi_parse_object *op, u32 level);
134
135void
136cv_print_one_comment_list(struct acpi_comment_node *comment_list, u32 level);
137
138void
139cv_print_one_comment_type(union acpi_parse_object *op,
140 u8 comment_type, char *end_str, u32 level);
141
142#endif
143
144#endif /* _ACCONVERT */