1/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
2/******************************************************************************
3 *
4 * Module Name: acapps - common include for ACPI applications/tools
5 *
6 * Copyright (C) 2000 - 2023, Intel Corp.
7 *
8 *****************************************************************************/
9
10#ifndef _ACCONVERT
11#define _ACCONVERT
12
13/* Definitions for comment state */
14
15#define ASL_COMMENT_STANDARD    1
16#define ASLCOMMENT_INLINE       2
17#define ASL_COMMENT_OPEN_PAREN  3
18#define ASL_COMMENT_CLOSE_PAREN 4
19#define ASL_COMMENT_CLOSE_BRACE 5
20
21/* Definitions for comment print function*/
22
23#define AML_COMMENT_STANDARD    1
24#define AMLCOMMENT_INLINE       2
25#define AML_COMMENT_END_NODE    3
26#define AML_NAMECOMMENT         4
27#define AML_COMMENT_CLOSE_BRACE 5
28#define AML_COMMENT_ENDBLK      6
29#define AML_COMMENT_INCLUDE     7
30
31#ifdef ACPI_ASL_COMPILER
32/*
33 * cvcompiler
34 */
35void
36cv_process_comment(struct asl_comment_state current_state,
37		   char *string_buffer, int c1);
38
39void
40cv_process_comment_type2(struct asl_comment_state current_state,
41			 char *string_buffer);
42
43u32 cv_calculate_comment_lengths(union acpi_parse_object *op);
44
45void cv_process_comment_state(char input);
46
47char *cv_append_inline_comment(char *inline_comment, char *to_add);
48
49void cv_add_to_comment_list(char *to_add);
50
51void cv_place_comment(u8 type, char *comment_string);
52
53u32 cv_parse_op_block_type(union acpi_parse_object *op);
54
55struct acpi_comment_node *cv_comment_node_calloc(void);
56
57void cg_write_aml_def_block_comment(union acpi_parse_object *op);
58
59void
60cg_write_one_aml_comment(union acpi_parse_object *op,
61			 char *comment_to_print, u8 input_option);
62
63void cg_write_aml_comment(union acpi_parse_object *op);
64
65/*
66 * cvparser
67 */
68void cv_init_file_tree(struct acpi_table_header *table, FILE * root_file);
69
70void cv_clear_op_comments(union acpi_parse_object *op);
71
72struct acpi_file_node *cv_filename_exists(char *filename,
73					  struct acpi_file_node *head);
74
75void cv_label_file_node(union acpi_parse_object *op);
76
77void
78cv_capture_list_comments(struct acpi_parse_state *parser_state,
79			 struct acpi_comment_node *list_head,
80			 struct acpi_comment_node *list_tail);
81
82void cv_capture_comments_only(struct acpi_parse_state *parser_state);
83
84void cv_capture_comments(struct acpi_walk_state *walk_state);
85
86void cv_transfer_comments(union acpi_parse_object *op);
87
88/*
89 * cvdisasm
90 */
91void cv_switch_files(u32 level, union acpi_parse_object *op);
92
93u8 cv_file_has_switched(union acpi_parse_object *op);
94
95void cv_close_paren_write_comment(union acpi_parse_object *op, u32 level);
96
97void cv_close_brace_write_comment(union acpi_parse_object *op, u32 level);
98
99void
100cv_print_one_comment_list(struct acpi_comment_node *comment_list, u32 level);
101
102void
103cv_print_one_comment_type(union acpi_parse_object *op,
104			  u8 comment_type, char *end_str, u32 level);
105
106#endif
107
108#endif				/* _ACCONVERT */
109