OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [acpi/] [acnamesp.h] - Blame information for rev 81

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/******************************************************************************
2
 *
3
 * Name: acnamesp.h - Namespace subcomponent prototypes and defines
4
 *
5
 *****************************************************************************/
6
 
7
/*
8
 * Copyright (C) 2000 - 2007, R. Byron Moore
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 __ACNAMESP_H__
45
#define __ACNAMESP_H__
46
 
47
/* To search the entire name space, pass this as search_base */
48
 
49
#define ACPI_NS_ALL                 ((acpi_handle)0)
50
 
51
/*
52
 * Elements of acpi_ns_properties are bit significant
53
 * and should be one-to-one with values of acpi_object_type
54
 */
55
#define ACPI_NS_NORMAL              0
56
#define ACPI_NS_NEWSCOPE            1   /* a definition of this type opens a name scope */
57
#define ACPI_NS_LOCAL               2   /* suppress search of enclosing scopes */
58
 
59
/* Flags for acpi_ns_lookup, acpi_ns_search_and_enter */
60
 
61
#define ACPI_NS_NO_UPSEARCH         0
62
#define ACPI_NS_SEARCH_PARENT       0x01
63
#define ACPI_NS_DONT_OPEN_SCOPE     0x02
64
#define ACPI_NS_NO_PEER_SEARCH      0x04
65
#define ACPI_NS_ERROR_IF_FOUND      0x08
66
#define ACPI_NS_PREFIX_IS_SCOPE     0x10
67
#define ACPI_NS_EXTERNAL            0x20
68
#define ACPI_NS_TEMPORARY           0x40
69
 
70
/* Flags for acpi_ns_walk_namespace */
71
 
72
#define ACPI_NS_WALK_NO_UNLOCK      0
73
#define ACPI_NS_WALK_UNLOCK         0x01
74
#define ACPI_NS_WALK_TEMP_NODES     0x02
75
 
76
/*
77
 * nsinit - Namespace initialization
78
 */
79
acpi_status acpi_ns_initialize_objects(void);
80
 
81
acpi_status acpi_ns_initialize_devices(void);
82
 
83
/*
84
 * nsload -  Namespace loading
85
 */
86
acpi_status acpi_ns_load_namespace(void);
87
 
88
acpi_status
89
acpi_ns_load_table(acpi_native_uint table_index,
90
                   struct acpi_namespace_node *node);
91
 
92
/*
93
 * nswalk - walk the namespace
94
 */
95
acpi_status
96
acpi_ns_walk_namespace(acpi_object_type type,
97
                       acpi_handle start_object,
98
                       u32 max_depth,
99
                       u32 flags,
100
                       acpi_walk_callback user_function,
101
                       void *context, void **return_value);
102
 
103
struct acpi_namespace_node *acpi_ns_get_next_node(acpi_object_type type, struct acpi_namespace_node
104
                                                  *parent, struct acpi_namespace_node
105
                                                  *child);
106
 
107
/*
108
 * nsparse - table parsing
109
 */
110
acpi_status
111
acpi_ns_parse_table(acpi_native_uint table_index,
112
                    struct acpi_namespace_node *start_node);
113
 
114
acpi_status
115
acpi_ns_one_complete_parse(acpi_native_uint pass_number,
116
                           acpi_native_uint table_index);
117
 
118
/*
119
 * nsaccess - Top-level namespace access
120
 */
121
acpi_status acpi_ns_root_initialize(void);
122
 
123
acpi_status
124
acpi_ns_lookup(union acpi_generic_state *scope_info,
125
               char *name,
126
               acpi_object_type type,
127
               acpi_interpreter_mode interpreter_mode,
128
               u32 flags,
129
               struct acpi_walk_state *walk_state,
130
               struct acpi_namespace_node **ret_node);
131
 
132
/*
133
 * nsalloc - Named object allocation/deallocation
134
 */
135
struct acpi_namespace_node *acpi_ns_create_node(u32 name);
136
 
137
void acpi_ns_delete_node(struct acpi_namespace_node *node);
138
 
139
void
140
acpi_ns_delete_namespace_subtree(struct acpi_namespace_node *parent_handle);
141
 
142
void acpi_ns_delete_namespace_by_owner(acpi_owner_id owner_id);
143
 
144
void acpi_ns_detach_object(struct acpi_namespace_node *node);
145
 
146
void acpi_ns_delete_children(struct acpi_namespace_node *parent);
147
 
148
int acpi_ns_compare_names(char *name1, char *name2);
149
 
150
/*
151
 * nsdump - Namespace dump/print utilities
152
 */
153
#ifdef  ACPI_FUTURE_USAGE
154
void acpi_ns_dump_tables(acpi_handle search_base, u32 max_depth);
155
#endif                          /* ACPI_FUTURE_USAGE */
156
 
157
void acpi_ns_dump_entry(acpi_handle handle, u32 debug_level);
158
 
159
void
160
acpi_ns_dump_pathname(acpi_handle handle, char *msg, u32 level, u32 component);
161
 
162
void acpi_ns_print_pathname(u32 num_segments, char *pathname);
163
 
164
acpi_status
165
acpi_ns_dump_one_object(acpi_handle obj_handle,
166
                        u32 level, void *context, void **return_value);
167
 
168
#ifdef  ACPI_FUTURE_USAGE
169
void
170
acpi_ns_dump_objects(acpi_object_type type,
171
                     u8 display_type,
172
                     u32 max_depth,
173
                     acpi_owner_id owner_id, acpi_handle start_handle);
174
#endif                          /* ACPI_FUTURE_USAGE */
175
 
176
/*
177
 * nseval - Namespace evaluation functions
178
 */
179
acpi_status acpi_ns_evaluate(struct acpi_evaluate_info *info);
180
 
181
/*
182
 * nsnames - Name and Scope manipulation
183
 */
184
u32 acpi_ns_opens_scope(acpi_object_type type);
185
 
186
void
187
acpi_ns_build_external_path(struct acpi_namespace_node *node,
188
                            acpi_size size, char *name_buffer);
189
 
190
char *acpi_ns_get_external_pathname(struct acpi_namespace_node *node);
191
 
192
char *acpi_ns_name_of_current_scope(struct acpi_walk_state *walk_state);
193
 
194
acpi_status
195
acpi_ns_handle_to_pathname(acpi_handle target_handle,
196
                           struct acpi_buffer *buffer);
197
 
198
u8
199
acpi_ns_pattern_match(struct acpi_namespace_node *obj_node, char *search_for);
200
 
201
acpi_status
202
acpi_ns_get_node(struct acpi_namespace_node *prefix_node,
203
                 char *external_pathname,
204
                 u32 flags, struct acpi_namespace_node **out_node);
205
 
206
acpi_size acpi_ns_get_pathname_length(struct acpi_namespace_node *node);
207
 
208
/*
209
 * nsobject - Object management for namespace nodes
210
 */
211
acpi_status
212
acpi_ns_attach_object(struct acpi_namespace_node *node,
213
                      union acpi_operand_object *object, acpi_object_type type);
214
 
215
union acpi_operand_object *acpi_ns_get_attached_object(struct
216
                                                       acpi_namespace_node
217
                                                       *node);
218
 
219
union acpi_operand_object *acpi_ns_get_secondary_object(union
220
                                                        acpi_operand_object
221
                                                        *obj_desc);
222
 
223
acpi_status
224
acpi_ns_attach_data(struct acpi_namespace_node *node,
225
                    acpi_object_handler handler, void *data);
226
 
227
acpi_status
228
acpi_ns_detach_data(struct acpi_namespace_node *node,
229
                    acpi_object_handler handler);
230
 
231
acpi_status
232
acpi_ns_get_attached_data(struct acpi_namespace_node *node,
233
                          acpi_object_handler handler, void **data);
234
 
235
/*
236
 * nssearch - Namespace searching and entry
237
 */
238
acpi_status
239
acpi_ns_search_and_enter(u32 entry_name,
240
                         struct acpi_walk_state *walk_state,
241
                         struct acpi_namespace_node *node,
242
                         acpi_interpreter_mode interpreter_mode,
243
                         acpi_object_type type,
244
                         u32 flags, struct acpi_namespace_node **ret_node);
245
 
246
acpi_status
247
acpi_ns_search_one_scope(u32 entry_name,
248
                         struct acpi_namespace_node *node,
249
                         acpi_object_type type,
250
                         struct acpi_namespace_node **ret_node);
251
 
252
void
253
acpi_ns_install_node(struct acpi_walk_state *walk_state,
254
                     struct acpi_namespace_node *parent_node,
255
                     struct acpi_namespace_node *node, acpi_object_type type);
256
 
257
/*
258
 * nsutils - Utility functions
259
 */
260
u8 acpi_ns_valid_root_prefix(char prefix);
261
 
262
acpi_object_type acpi_ns_get_type(struct acpi_namespace_node *node);
263
 
264
u32 acpi_ns_local(acpi_object_type type);
265
 
266
void
267
acpi_ns_report_error(char *module_name,
268
                     u32 line_number,
269
                     char *internal_name, acpi_status lookup_status);
270
 
271
void
272
acpi_ns_report_method_error(char *module_name,
273
                            u32 line_number,
274
                            char *message,
275
                            struct acpi_namespace_node *node,
276
                            char *path, acpi_status lookup_status);
277
 
278
void acpi_ns_print_node_pathname(struct acpi_namespace_node *node, char *msg);
279
 
280
acpi_status acpi_ns_build_internal_name(struct acpi_namestring_info *info);
281
 
282
void acpi_ns_get_internal_name_length(struct acpi_namestring_info *info);
283
 
284
acpi_status acpi_ns_internalize_name(char *dotted_name, char **converted_name);
285
 
286
acpi_status
287
acpi_ns_externalize_name(u32 internal_name_length,
288
                         char *internal_name,
289
                         u32 * converted_name_length, char **converted_name);
290
 
291
struct acpi_namespace_node *acpi_ns_map_handle_to_node(acpi_handle handle);
292
 
293
acpi_handle acpi_ns_convert_entry_to_handle(struct acpi_namespace_node *node);
294
 
295
void acpi_ns_terminate(void);
296
 
297
struct acpi_namespace_node *acpi_ns_get_parent_node(struct acpi_namespace_node
298
                                                    *node);
299
 
300
struct acpi_namespace_node *acpi_ns_get_next_valid_node(struct
301
                                                        acpi_namespace_node
302
                                                        *node);
303
 
304
#endif                          /* __ACNAMESP_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.