xref: /linux/drivers/acpi/acpica/acutils.h (revision 0d456bad36d42d16022be045c8a53ddbb59ee478)
1 /******************************************************************************
2  *
3  * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
4  *
5  *****************************************************************************/
6 
7 /*
8  * Copyright (C) 2000 - 2012, 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 _ACUTILS_H
45 #define _ACUTILS_H
46 
47 extern const u8 acpi_gbl_resource_aml_sizes[];
48 extern const u8 acpi_gbl_resource_aml_serial_bus_sizes[];
49 
50 /* Strings used by the disassembler and debugger resource dump routines */
51 
52 #if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
53 
54 extern const char *acpi_gbl_bm_decode[];
55 extern const char *acpi_gbl_config_decode[];
56 extern const char *acpi_gbl_consume_decode[];
57 extern const char *acpi_gbl_dec_decode[];
58 extern const char *acpi_gbl_he_decode[];
59 extern const char *acpi_gbl_io_decode[];
60 extern const char *acpi_gbl_ll_decode[];
61 extern const char *acpi_gbl_max_decode[];
62 extern const char *acpi_gbl_mem_decode[];
63 extern const char *acpi_gbl_min_decode[];
64 extern const char *acpi_gbl_mtp_decode[];
65 extern const char *acpi_gbl_rng_decode[];
66 extern const char *acpi_gbl_rw_decode[];
67 extern const char *acpi_gbl_shr_decode[];
68 extern const char *acpi_gbl_siz_decode[];
69 extern const char *acpi_gbl_trs_decode[];
70 extern const char *acpi_gbl_ttp_decode[];
71 extern const char *acpi_gbl_typ_decode[];
72 extern const char *acpi_gbl_ppc_decode[];
73 extern const char *acpi_gbl_ior_decode[];
74 extern const char *acpi_gbl_dts_decode[];
75 extern const char *acpi_gbl_ct_decode[];
76 extern const char *acpi_gbl_sbt_decode[];
77 extern const char *acpi_gbl_am_decode[];
78 extern const char *acpi_gbl_sm_decode[];
79 extern const char *acpi_gbl_wm_decode[];
80 extern const char *acpi_gbl_cph_decode[];
81 extern const char *acpi_gbl_cpo_decode[];
82 extern const char *acpi_gbl_dp_decode[];
83 extern const char *acpi_gbl_ed_decode[];
84 extern const char *acpi_gbl_bpb_decode[];
85 extern const char *acpi_gbl_sb_decode[];
86 extern const char *acpi_gbl_fc_decode[];
87 extern const char *acpi_gbl_pt_decode[];
88 #endif
89 
90 /* Types for Resource descriptor entries */
91 
92 #define ACPI_INVALID_RESOURCE           0
93 #define ACPI_FIXED_LENGTH               1
94 #define ACPI_VARIABLE_LENGTH            2
95 #define ACPI_SMALL_VARIABLE_LENGTH      3
96 
97 typedef
98 acpi_status(*acpi_walk_aml_callback) (u8 *aml,
99 				      u32 length,
100 				      u32 offset,
101 				      u8 resource_index, void **context);
102 
103 typedef
104 acpi_status(*acpi_pkg_callback) (u8 object_type,
105 				 union acpi_operand_object *source_object,
106 				 union acpi_generic_state * state,
107 				 void *context);
108 
109 struct acpi_pkg_info {
110 	u8 *free_space;
111 	acpi_size length;
112 	u32 object_space;
113 	u32 num_packages;
114 };
115 
116 #define REF_INCREMENT       (u16) 0
117 #define REF_DECREMENT       (u16) 1
118 #define REF_FORCE_DELETE    (u16) 2
119 
120 /* acpi_ut_dump_buffer */
121 
122 #define DB_BYTE_DISPLAY     1
123 #define DB_WORD_DISPLAY     2
124 #define DB_DWORD_DISPLAY    4
125 #define DB_QWORD_DISPLAY    8
126 
127 /*
128  * utglobal - Global data structures and procedures
129  */
130 acpi_status acpi_ut_init_globals(void);
131 
132 #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
133 
134 char *acpi_ut_get_mutex_name(u32 mutex_id);
135 
136 const char *acpi_ut_get_notify_name(u32 notify_value);
137 
138 #endif
139 
140 char *acpi_ut_get_type_name(acpi_object_type type);
141 
142 char *acpi_ut_get_node_name(void *object);
143 
144 char *acpi_ut_get_descriptor_name(void *object);
145 
146 const char *acpi_ut_get_reference_name(union acpi_operand_object *object);
147 
148 char *acpi_ut_get_object_type_name(union acpi_operand_object *obj_desc);
149 
150 char *acpi_ut_get_region_name(u8 space_id);
151 
152 char *acpi_ut_get_event_name(u32 event_id);
153 
154 char acpi_ut_hex_to_ascii_char(u64 integer, u32 position);
155 
156 u8 acpi_ut_valid_object_type(acpi_object_type type);
157 
158 /*
159  * utinit - miscellaneous initialization and shutdown
160  */
161 acpi_status acpi_ut_hardware_initialize(void);
162 
163 void acpi_ut_subsystem_shutdown(void);
164 
165 /*
166  * utclib - Local implementations of C library functions
167  */
168 #ifndef ACPI_USE_SYSTEM_CLIBRARY
169 
170 acpi_size acpi_ut_strlen(const char *string);
171 
172 char *acpi_ut_strcpy(char *dst_string, const char *src_string);
173 
174 char *acpi_ut_strncpy(char *dst_string,
175 		      const char *src_string, acpi_size count);
176 
177 int acpi_ut_memcmp(const char *buffer1, const char *buffer2, acpi_size count);
178 
179 int acpi_ut_strncmp(const char *string1, const char *string2, acpi_size count);
180 
181 int acpi_ut_strcmp(const char *string1, const char *string2);
182 
183 char *acpi_ut_strcat(char *dst_string, const char *src_string);
184 
185 char *acpi_ut_strncat(char *dst_string,
186 		      const char *src_string, acpi_size count);
187 
188 u32 acpi_ut_strtoul(const char *string, char **terminator, u32 base);
189 
190 char *acpi_ut_strstr(char *string1, char *string2);
191 
192 void *acpi_ut_memcpy(void *dest, const void *src, acpi_size count);
193 
194 void *acpi_ut_memset(void *dest, u8 value, acpi_size count);
195 
196 int acpi_ut_to_upper(int c);
197 
198 int acpi_ut_to_lower(int c);
199 
200 extern const u8 _acpi_ctype[];
201 
202 #define _ACPI_XA     0x00	/* extra alphabetic - not supported */
203 #define _ACPI_XS     0x40	/* extra space */
204 #define _ACPI_BB     0x00	/* BEL, BS, etc. - not supported */
205 #define _ACPI_CN     0x20	/* CR, FF, HT, NL, VT */
206 #define _ACPI_DI     0x04	/* '0'-'9' */
207 #define _ACPI_LO     0x02	/* 'a'-'z' */
208 #define _ACPI_PU     0x10	/* punctuation */
209 #define _ACPI_SP     0x08	/* space */
210 #define _ACPI_UP     0x01	/* 'A'-'Z' */
211 #define _ACPI_XD     0x80	/* '0'-'9', 'A'-'F', 'a'-'f' */
212 
213 #define ACPI_IS_DIGIT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI))
214 #define ACPI_IS_SPACE(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP))
215 #define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD))
216 #define ACPI_IS_UPPER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP))
217 #define ACPI_IS_LOWER(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
218 #define ACPI_IS_PRINT(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
219 #define ACPI_IS_ALPHA(c)  (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
220 
221 #endif				/* !ACPI_USE_SYSTEM_CLIBRARY */
222 
223 #define ACPI_IS_ASCII(c)  ((c) < 0x80)
224 
225 /*
226  * utcopy - Object construction and conversion interfaces
227  */
228 acpi_status
229 acpi_ut_build_simple_object(union acpi_operand_object *obj,
230 			    union acpi_object *user_obj,
231 			    u8 *data_space, u32 *buffer_space_used);
232 
233 acpi_status
234 acpi_ut_build_package_object(union acpi_operand_object *obj,
235 			     u8 *buffer, u32 *space_used);
236 
237 acpi_status
238 acpi_ut_copy_iobject_to_eobject(union acpi_operand_object *obj,
239 				struct acpi_buffer *ret_buffer);
240 
241 acpi_status
242 acpi_ut_copy_eobject_to_iobject(union acpi_object *obj,
243 				union acpi_operand_object **internal_obj);
244 
245 acpi_status
246 acpi_ut_copy_isimple_to_isimple(union acpi_operand_object *source_obj,
247 				union acpi_operand_object *dest_obj);
248 
249 acpi_status
250 acpi_ut_copy_iobject_to_iobject(union acpi_operand_object *source_desc,
251 				union acpi_operand_object **dest_desc,
252 				struct acpi_walk_state *walk_state);
253 
254 /*
255  * utcreate - Object creation
256  */
257 acpi_status
258 acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action);
259 
260 /*
261  * utdebug - Debug interfaces
262  */
263 void acpi_ut_init_stack_ptr_trace(void);
264 
265 void acpi_ut_track_stack_ptr(void);
266 
267 void
268 acpi_ut_trace(u32 line_number,
269 	      const char *function_name,
270 	      const char *module_name, u32 component_id);
271 
272 void
273 acpi_ut_trace_ptr(u32 line_number,
274 		  const char *function_name,
275 		  const char *module_name, u32 component_id, void *pointer);
276 
277 void
278 acpi_ut_trace_u32(u32 line_number,
279 		  const char *function_name,
280 		  const char *module_name, u32 component_id, u32 integer);
281 
282 void
283 acpi_ut_trace_str(u32 line_number,
284 		  const char *function_name,
285 		  const char *module_name, u32 component_id, char *string);
286 
287 void
288 acpi_ut_exit(u32 line_number,
289 	     const char *function_name,
290 	     const char *module_name, u32 component_id);
291 
292 void
293 acpi_ut_status_exit(u32 line_number,
294 		    const char *function_name,
295 		    const char *module_name,
296 		    u32 component_id, acpi_status status);
297 
298 void
299 acpi_ut_value_exit(u32 line_number,
300 		   const char *function_name,
301 		   const char *module_name, u32 component_id, u64 value);
302 
303 void
304 acpi_ut_ptr_exit(u32 line_number,
305 		 const char *function_name,
306 		 const char *module_name, u32 component_id, u8 *ptr);
307 
308 void
309 acpi_ut_debug_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id);
310 
311 void acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 offset);
312 
313 void acpi_ut_report_error(char *module_name, u32 line_number);
314 
315 void acpi_ut_report_info(char *module_name, u32 line_number);
316 
317 void acpi_ut_report_warning(char *module_name, u32 line_number);
318 
319 /*
320  * utdelete - Object deletion and reference counts
321  */
322 void acpi_ut_add_reference(union acpi_operand_object *object);
323 
324 void acpi_ut_remove_reference(union acpi_operand_object *object);
325 
326 void acpi_ut_delete_internal_package_object(union acpi_operand_object *object);
327 
328 void acpi_ut_delete_internal_simple_object(union acpi_operand_object *object);
329 
330 void acpi_ut_delete_internal_object_list(union acpi_operand_object **obj_list);
331 
332 /*
333  * uteval - object evaluation
334  */
335 acpi_status
336 acpi_ut_evaluate_object(struct acpi_namespace_node *prefix_node,
337 			char *path,
338 			u32 expected_return_btypes,
339 			union acpi_operand_object **return_desc);
340 
341 acpi_status
342 acpi_ut_evaluate_numeric_object(char *object_name,
343 				struct acpi_namespace_node *device_node,
344 				u64 *value);
345 
346 acpi_status
347 acpi_ut_execute_STA(struct acpi_namespace_node *device_node, u32 *status_flags);
348 
349 acpi_status
350 acpi_ut_execute_power_methods(struct acpi_namespace_node *device_node,
351 			      const char **method_names,
352 			      u8 method_count, u8 *out_values);
353 
354 /*
355  * utids - device ID support
356  */
357 acpi_status
358 acpi_ut_execute_HID(struct acpi_namespace_node *device_node,
359 		    struct acpi_pnp_device_id ** return_id);
360 
361 acpi_status
362 acpi_ut_execute_UID(struct acpi_namespace_node *device_node,
363 		    struct acpi_pnp_device_id ** return_id);
364 
365 acpi_status
366 acpi_ut_execute_SUB(struct acpi_namespace_node *device_node,
367 		    struct acpi_pnp_device_id **return_id);
368 
369 acpi_status
370 acpi_ut_execute_CID(struct acpi_namespace_node *device_node,
371 		    struct acpi_pnp_device_id_list ** return_cid_list);
372 
373 /*
374  * utlock - reader/writer locks
375  */
376 acpi_status acpi_ut_create_rw_lock(struct acpi_rw_lock *lock);
377 
378 void acpi_ut_delete_rw_lock(struct acpi_rw_lock *lock);
379 
380 acpi_status acpi_ut_acquire_read_lock(struct acpi_rw_lock *lock);
381 
382 acpi_status acpi_ut_release_read_lock(struct acpi_rw_lock *lock);
383 
384 acpi_status acpi_ut_acquire_write_lock(struct acpi_rw_lock *lock);
385 
386 void acpi_ut_release_write_lock(struct acpi_rw_lock *lock);
387 
388 /*
389  * utobject - internal object create/delete/cache routines
390  */
391 union acpi_operand_object *acpi_ut_create_internal_object_dbg(const char
392 							      *module_name,
393 							      u32 line_number,
394 							      u32 component_id,
395 							      acpi_object_type
396 							      type);
397 
398 void *acpi_ut_allocate_object_desc_dbg(const char *module_name,
399 				       u32 line_number, u32 component_id);
400 
401 #define acpi_ut_create_internal_object(t) acpi_ut_create_internal_object_dbg (_acpi_module_name,__LINE__,_COMPONENT,t)
402 #define acpi_ut_allocate_object_desc()  acpi_ut_allocate_object_desc_dbg (_acpi_module_name,__LINE__,_COMPONENT)
403 
404 void acpi_ut_delete_object_desc(union acpi_operand_object *object);
405 
406 u8 acpi_ut_valid_internal_object(void *object);
407 
408 union acpi_operand_object *acpi_ut_create_package_object(u32 count);
409 
410 union acpi_operand_object *acpi_ut_create_integer_object(u64 value);
411 
412 union acpi_operand_object *acpi_ut_create_buffer_object(acpi_size buffer_size);
413 
414 union acpi_operand_object *acpi_ut_create_string_object(acpi_size string_size);
415 
416 acpi_status
417 acpi_ut_get_object_size(union acpi_operand_object *obj, acpi_size * obj_length);
418 
419 /*
420  * utosi - Support for the _OSI predefined control method
421  */
422 acpi_status acpi_ut_initialize_interfaces(void);
423 
424 void acpi_ut_interface_terminate(void);
425 
426 acpi_status acpi_ut_install_interface(acpi_string interface_name);
427 
428 acpi_status acpi_ut_remove_interface(acpi_string interface_name);
429 
430 struct acpi_interface_info *acpi_ut_get_interface(acpi_string interface_name);
431 
432 acpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state);
433 
434 /*
435  * utstate - Generic state creation/cache routines
436  */
437 void
438 acpi_ut_push_generic_state(union acpi_generic_state **list_head,
439 			   union acpi_generic_state *state);
440 
441 union acpi_generic_state *acpi_ut_pop_generic_state(union acpi_generic_state
442 						    **list_head);
443 
444 union acpi_generic_state *acpi_ut_create_generic_state(void);
445 
446 struct acpi_thread_state *acpi_ut_create_thread_state(void);
447 
448 union acpi_generic_state *acpi_ut_create_update_state(union acpi_operand_object
449 						      *object, u16 action);
450 
451 union acpi_generic_state *acpi_ut_create_pkg_state(void *internal_object,
452 						   void *external_object,
453 						   u16 index);
454 
455 acpi_status
456 acpi_ut_create_update_state_and_push(union acpi_operand_object *object,
457 				     u16 action,
458 				     union acpi_generic_state **state_list);
459 
460 #ifdef	ACPI_FUTURE_USAGE
461 acpi_status
462 acpi_ut_create_pkg_state_and_push(void *internal_object,
463 				  void *external_object,
464 				  u16 index,
465 				  union acpi_generic_state **state_list);
466 #endif				/* ACPI_FUTURE_USAGE */
467 
468 union acpi_generic_state *acpi_ut_create_control_state(void);
469 
470 void acpi_ut_delete_generic_state(union acpi_generic_state *state);
471 
472 /*
473  * utmath
474  */
475 acpi_status
476 acpi_ut_divide(u64 in_dividend,
477 	       u64 in_divisor, u64 *out_quotient, u64 *out_remainder);
478 
479 acpi_status
480 acpi_ut_short_divide(u64 in_dividend,
481 		     u32 divisor, u64 *out_quotient, u32 *out_remainder);
482 
483 /*
484  * utmisc
485  */
486 void ut_convert_backslashes(char *pathname);
487 
488 const char *acpi_ut_validate_exception(acpi_status status);
489 
490 u8 acpi_ut_is_pci_root_bridge(char *id);
491 
492 u8 acpi_ut_is_aml_table(struct acpi_table_header *table);
493 
494 acpi_status acpi_ut_allocate_owner_id(acpi_owner_id * owner_id);
495 
496 void acpi_ut_release_owner_id(acpi_owner_id * owner_id);
497 
498 acpi_status
499 acpi_ut_walk_package_tree(union acpi_operand_object *source_object,
500 			  void *target_object,
501 			  acpi_pkg_callback walk_callback, void *context);
502 
503 void acpi_ut_strupr(char *src_string);
504 
505 void acpi_ut_strlwr(char *src_string);
506 
507 int acpi_ut_stricmp(char *string1, char *string2);
508 
509 void acpi_ut_print_string(char *string, u8 max_length);
510 
511 u8 acpi_ut_valid_acpi_name(u32 name);
512 
513 void acpi_ut_repair_name(char *name);
514 
515 u8 acpi_ut_valid_acpi_char(char character, u32 position);
516 
517 acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer);
518 
519 /* Values for Base above (16=Hex, 10=Decimal) */
520 
521 #define ACPI_ANY_BASE        0
522 
523 u32 acpi_ut_dword_byte_swap(u32 value);
524 
525 void acpi_ut_set_integer_width(u8 revision);
526 
527 #ifdef ACPI_DEBUG_OUTPUT
528 void
529 acpi_ut_display_init_pathname(u8 type,
530 			      struct acpi_namespace_node *obj_handle,
531 			      char *path);
532 #endif
533 
534 /*
535  * utresrc
536  */
537 acpi_status
538 acpi_ut_walk_aml_resources(u8 *aml,
539 			   acpi_size aml_length,
540 			   acpi_walk_aml_callback user_function,
541 			   void **context);
542 
543 acpi_status acpi_ut_validate_resource(void *aml, u8 *return_index);
544 
545 u32 acpi_ut_get_descriptor_length(void *aml);
546 
547 u16 acpi_ut_get_resource_length(void *aml);
548 
549 u8 acpi_ut_get_resource_header_length(void *aml);
550 
551 u8 acpi_ut_get_resource_type(void *aml);
552 
553 acpi_status
554 acpi_ut_get_resource_end_tag(union acpi_operand_object *obj_desc, u8 **end_tag);
555 
556 /*
557  * utmutex - mutex support
558  */
559 acpi_status acpi_ut_mutex_initialize(void);
560 
561 void acpi_ut_mutex_terminate(void);
562 
563 acpi_status acpi_ut_acquire_mutex(acpi_mutex_handle mutex_id);
564 
565 acpi_status acpi_ut_release_mutex(acpi_mutex_handle mutex_id);
566 
567 /*
568  * utalloc - memory allocation and object caching
569  */
570 acpi_status acpi_ut_create_caches(void);
571 
572 acpi_status acpi_ut_delete_caches(void);
573 
574 acpi_status acpi_ut_validate_buffer(struct acpi_buffer *buffer);
575 
576 acpi_status
577 acpi_ut_initialize_buffer(struct acpi_buffer *buffer,
578 			  acpi_size required_length);
579 
580 void *acpi_ut_allocate(acpi_size size,
581 		       u32 component, const char *module, u32 line);
582 
583 void *acpi_ut_allocate_zeroed(acpi_size size,
584 			      u32 component, const char *module, u32 line);
585 
586 #ifdef ACPI_DBG_TRACK_ALLOCATIONS
587 void *acpi_ut_allocate_and_track(acpi_size size,
588 				 u32 component, const char *module, u32 line);
589 
590 void *acpi_ut_allocate_zeroed_and_track(acpi_size size,
591 					u32 component,
592 					const char *module, u32 line);
593 
594 void
595 acpi_ut_free_and_track(void *address,
596 		       u32 component, const char *module, u32 line);
597 
598 #ifdef	ACPI_FUTURE_USAGE
599 void acpi_ut_dump_allocation_info(void);
600 #endif				/* ACPI_FUTURE_USAGE */
601 
602 void acpi_ut_dump_allocations(u32 component, const char *module);
603 
604 acpi_status
605 acpi_ut_create_list(char *list_name,
606 		    u16 object_size, struct acpi_memory_list **return_cache);
607 
608 #endif				/* ACPI_DBG_TRACK_ALLOCATIONS */
609 
610 /*
611  * utaddress - address range check
612  */
613 acpi_status
614 acpi_ut_add_address_range(acpi_adr_space_type space_id,
615 			  acpi_physical_address address,
616 			  u32 length, struct acpi_namespace_node *region_node);
617 
618 void
619 acpi_ut_remove_address_range(acpi_adr_space_type space_id,
620 			     struct acpi_namespace_node *region_node);
621 
622 u32
623 acpi_ut_check_address_range(acpi_adr_space_type space_id,
624 			    acpi_physical_address address, u32 length, u8 warn);
625 
626 void acpi_ut_delete_address_lists(void);
627 
628 /*
629  * utxferror - various error/warning output functions
630  */
631 void ACPI_INTERNAL_VAR_XFACE
632 acpi_ut_predefined_warning(const char *module_name,
633 			   u32 line_number,
634 			   char *pathname,
635 			   u8 node_flags, const char *format, ...);
636 
637 void ACPI_INTERNAL_VAR_XFACE
638 acpi_ut_predefined_info(const char *module_name,
639 			u32 line_number,
640 			char *pathname, u8 node_flags, const char *format, ...);
641 
642 void
643 acpi_ut_namespace_error(const char *module_name,
644 			u32 line_number,
645 			const char *internal_name, acpi_status lookup_status);
646 
647 void
648 acpi_ut_method_error(const char *module_name,
649 		     u32 line_number,
650 		     const char *message,
651 		     struct acpi_namespace_node *node,
652 		     const char *path, acpi_status lookup_status);
653 
654 #endif				/* _ACUTILS_H */
655