⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 accommon.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
字号:
/****************************************************************************** * * Name: accommon.h -- prototypes for the common (subsystem-wide) procedures *       $Revision: 82 $ * *****************************************************************************//* *  Copyright (C) 2000 R. Byron Moore * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef _ACCOMMON_H#define _ACCOMMON_H#define REF_INCREMENT       (u16) 0#define REF_DECREMENT       (u16) 1#define REF_FORCE_DELETE    (u16) 2/* Acpi_cm_dump_buffer */#define DB_BYTE_DISPLAY     1#define DB_WORD_DISPLAY     2#define DB_DWORD_DISPLAY    4#define DB_QWORD_DISPLAY    8/* Global initialization interfaces */voidacpi_cm_init_globals (	void);voidacpi_cm_terminate (	void);/* * Cm_init - miscellaneous initialization and shutdown */ACPI_STATUSacpi_cm_hardware_initialize (	void);ACPI_STATUSacpi_cm_subsystem_shutdown (	void);ACPI_STATUSacpi_cm_validate_fadt (	void);/* * Cm_global - Global data structures and procedures */#ifdef ACPI_DEBUGNATIVE_CHAR *acpi_cm_get_mutex_name (	u32                     mutex_id);NATIVE_CHAR *acpi_cm_get_type_name (	u32                     type);NATIVE_CHAR *acpi_cm_get_region_name (	u8                      space_id);#endifu8acpi_cm_valid_object_type (	u32                     type);ACPI_OWNER_IDacpi_cm_allocate_owner_id (	u32                     id_type);/* * Cm_clib - Local implementations of C library functions */NATIVE_UINTacpi_cm_strlen (	const NATIVE_CHAR       *string);NATIVE_CHAR *acpi_cm_strcpy (	NATIVE_CHAR             *dst_string,	const NATIVE_CHAR       *src_string);NATIVE_CHAR *acpi_cm_strncpy (	NATIVE_CHAR             *dst_string,	const NATIVE_CHAR       *src_string,	NATIVE_UINT             count);u32acpi_cm_strncmp (	const NATIVE_CHAR       *string1,	const NATIVE_CHAR       *string2,	NATIVE_UINT             count);u32acpi_cm_strcmp (	const NATIVE_CHAR       *string1,	const NATIVE_CHAR       *string2);NATIVE_CHAR *acpi_cm_strcat (	NATIVE_CHAR             *dst_string,	const NATIVE_CHAR       *src_string);NATIVE_CHAR *acpi_cm_strncat (	NATIVE_CHAR             *dst_string,	const NATIVE_CHAR       *src_string,	NATIVE_UINT             count);u32acpi_cm_strtoul (	const NATIVE_CHAR       *string,	NATIVE_CHAR             **terminator,	u32                     base);NATIVE_CHAR *acpi_cm_strstr (	NATIVE_CHAR             *string1,	NATIVE_CHAR             *string2);NATIVE_CHAR *acpi_cm_strupr (	NATIVE_CHAR             *src_string);void *acpi_cm_memcpy (	void                    *dest,	const void              *src,	NATIVE_UINT             count);void *acpi_cm_memset (	void                    *dest,	u32                     value,	NATIVE_UINT             count);u32acpi_cm_to_upper (	u32                     c);u32acpi_cm_to_lower (	u32                     c);/* * Cm_copy - Object construction and conversion interfaces */ACPI_STATUSacpi_cm_build_simple_object(	ACPI_OPERAND_OBJECT     *obj,	ACPI_OBJECT             *user_obj,	u8                      *data_space,	u32                     *buffer_space_used);ACPI_STATUSacpi_cm_build_package_object (	ACPI_OPERAND_OBJECT     *obj,	u8                      *buffer,	u32                     *space_used);ACPI_STATUSacpi_cm_build_external_object (	ACPI_OPERAND_OBJECT     *obj,	ACPI_BUFFER             *ret_buffer);ACPI_STATUSacpi_cm_build_internal_simple_object(	ACPI_OBJECT             *user_obj,	ACPI_OPERAND_OBJECT     *obj);ACPI_STATUSacpi_cm_build_internal_object (	ACPI_OBJECT             *obj,	ACPI_OPERAND_OBJECT     *internal_obj);ACPI_STATUSacpi_cm_copy_internal_simple_object (	ACPI_OPERAND_OBJECT     *source_obj,	ACPI_OPERAND_OBJECT     *dest_obj);ACPI_STATUSacpi_cm_build_copy_internal_package_object (	ACPI_OPERAND_OBJECT     *source_obj,	ACPI_OPERAND_OBJECT     *dest_obj);/* * Cm_create - Object creation */ACPI_STATUSacpi_cm_update_object_reference (	ACPI_OPERAND_OBJECT     *object,	u16                     action);ACPI_OPERAND_OBJECT  *_cm_create_internal_object (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	OBJECT_TYPE_INTERNAL    type);/* * Cm_debug - Debug interfaces */u32get_debug_level (	void);voidset_debug_level (	u32                     level);voidfunction_trace (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name);voidfunction_trace_ptr (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name,	void                    *pointer);voidfunction_trace_u32 (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name,	u32                     integer);voidfunction_trace_str (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name,	NATIVE_CHAR             *string);voidfunction_exit (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name);voidfunction_status_exit (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name,	ACPI_STATUS             status);voidfunction_value_exit (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name,	NATIVE_UINT             value);voidfunction_ptr_exit (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	NATIVE_CHAR             *function_name,	u8                      *ptr);voiddebug_print_prefix (	NATIVE_CHAR             *module_name,	u32                     line_number);voiddebug_print (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id,	u32                     print_level,	NATIVE_CHAR             *format, ...);voiddebug_print_raw (	NATIVE_CHAR             *format, ...);void_report_info (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id);void_report_error (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id);void_report_warning (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id);voidacpi_cm_dump_buffer (	u8                      *buffer,	u32                     count,	u32                     display,	u32                     component_id);/* * Cm_delete - Object deletion */voidacpi_cm_delete_internal_obj (	ACPI_OPERAND_OBJECT     *object);voidacpi_cm_delete_internal_package_object (	ACPI_OPERAND_OBJECT     *object);voidacpi_cm_delete_internal_simple_object (	ACPI_OPERAND_OBJECT     *object);ACPI_STATUSacpi_cm_delete_internal_object_list (	ACPI_OPERAND_OBJECT     **obj_list);/* * Cm_eval - object evaluation *//* Method name strings */#define METHOD_NAME__HID        "_HID"#define METHOD_NAME__UID        "_UID"#define METHOD_NAME__ADR        "_ADR"#define METHOD_NAME__STA        "_STA"#define METHOD_NAME__REG        "_REG"#define METHOD_NAME__SEG        "_SEG"#define METHOD_NAME__BBN        "_BBN"ACPI_STATUSacpi_cm_evaluate_numeric_object (	NATIVE_CHAR             *object_name,	ACPI_NAMESPACE_NODE     *device_node,	ACPI_INTEGER            *address);ACPI_STATUSacpi_cm_execute_HID (	ACPI_NAMESPACE_NODE     *device_node,	DEVICE_ID               *hid);ACPI_STATUSacpi_cm_execute_STA (	ACPI_NAMESPACE_NODE     *device_node,	u32                     *status_flags);ACPI_STATUSacpi_cm_execute_UID (	ACPI_NAMESPACE_NODE     *device_node,	DEVICE_ID               *uid);/* * Cm_error - exception interfaces */NATIVE_CHAR *acpi_cm_format_exception (	ACPI_STATUS             status);/* * Cm_mutex - mutual exclusion interfaces */ACPI_STATUSacpi_cm_mutex_initialize (	void);voidacpi_cm_mutex_terminate (	void);ACPI_STATUSacpi_cm_create_mutex (	ACPI_MUTEX_HANDLE       mutex_id);ACPI_STATUSacpi_cm_delete_mutex (	ACPI_MUTEX_HANDLE       mutex_id);ACPI_STATUSacpi_cm_acquire_mutex (	ACPI_MUTEX_HANDLE       mutex_id);ACPI_STATUSacpi_cm_release_mutex (	ACPI_MUTEX_HANDLE       mutex_id);/* * Cm_object - internal object create/delete/cache routines */void *_cm_allocate_object_desc (	NATIVE_CHAR             *module_name,	u32                     line_number,	u32                     component_id);#define acpi_cm_create_internal_object(t) _cm_create_internal_object(_THIS_MODULE,__LINE__,_COMPONENT,t)#define acpi_cm_allocate_object_desc()  _cm_allocate_object_desc(_THIS_MODULE,__LINE__,_COMPONENT)voidacpi_cm_delete_object_desc (	ACPI_OPERAND_OBJECT     *object);u8acpi_cm_valid_internal_object (	void                    *object);/* * Cm_ref_cnt - Object reference count management */voidacpi_cm_add_reference (	ACPI_OPERAND_OBJECT     *object);voidacpi_cm_remove_reference (	ACPI_OPERAND_OBJECT     *object);/* * Cm_size - Object size routines */ACPI_STATUSacpi_cm_get_simple_object_size (	ACPI_OPERAND_OBJECT     *obj,	u32                     *obj_length);ACPI_STATUSacpi_cm_get_package_object_size (	ACPI_OPERAND_OBJECT     *obj,	u32                     *obj_length);ACPI_STATUSacpi_cm_get_object_size(	ACPI_OPERAND_OBJECT     *obj,	u32                     *obj_length);/* * Cm_state - Generic state creation/cache routines */voidacpi_cm_push_generic_state (	ACPI_GENERIC_STATE      **list_head,	ACPI_GENERIC_STATE      *state);ACPI_GENERIC_STATE *acpi_cm_pop_generic_state (	ACPI_GENERIC_STATE      **list_head);ACPI_GENERIC_STATE *acpi_cm_create_generic_state (	void);ACPI_GENERIC_STATE *acpi_cm_create_update_state (	ACPI_OPERAND_OBJECT     *object,	u16                     action);ACPI_STATUSacpi_cm_create_update_state_and_push (	ACPI_OPERAND_OBJECT     *object,	u16                     action,	ACPI_GENERIC_STATE      **state_list);ACPI_GENERIC_STATE *acpi_cm_create_control_state (	void);voidacpi_cm_delete_generic_state (	ACPI_GENERIC_STATE      *state);voidacpi_cm_delete_generic_state_cache (	void);voidacpi_cm_delete_object_cache (	void);/* * Cmutils */u8acpi_cm_valid_acpi_name (	u32                     name);u8acpi_cm_valid_acpi_character (	NATIVE_CHAR             character);ACPI_STATUSacpi_cm_resolve_package_references (	ACPI_OPERAND_OBJECT     *obj_desc);/* * Memory allocation functions and related macros. * Macros that expand to include filename and line number */void *_cm_allocate (	u32                     size,	u32                     component,	NATIVE_CHAR             *module,	u32                     line);void *_cm_callocate (	u32                     size,	u32                     component,	NATIVE_CHAR             *module,	u32                     line);void_cm_free (	void                    *address,	u32                     component,	NATIVE_CHAR             *module,	u32                     line);voidacpi_cm_init_static_object (	ACPI_OPERAND_OBJECT     *obj_desc);#define acpi_cm_allocate(a)             _cm_allocate(a,_COMPONENT,_THIS_MODULE,__LINE__)#define acpi_cm_callocate(a)            _cm_callocate(a, _COMPONENT,_THIS_MODULE,__LINE__)#define acpi_cm_free(a)                 _cm_free(a,_COMPONENT,_THIS_MODULE,__LINE__)#ifndef ACPI_DEBUG#define acpi_cm_add_element_to_alloc_list(a,b,c,d,e,f)#define acpi_cm_delete_element_from_alloc_list(a,b,c,d)#define acpi_cm_dump_current_allocations(a,b)#define acpi_cm_dump_allocation_info()#define DECREMENT_OBJECT_METRICS(a)#define INCREMENT_OBJECT_METRICS(a)#define INITIALIZE_ALLOCATION_METRICS()#define DECREMENT_NAME_TABLE_METRICS(a)#define INCREMENT_NAME_TABLE_METRICS(a)#else#define INITIALIZE_ALLOCATION_METRICS() \	acpi_gbl_current_object_count = 0; \	acpi_gbl_current_object_size = 0; \	acpi_gbl_running_object_count = 0; \	acpi_gbl_running_object_size = 0; \	acpi_gbl_max_concurrent_object_count = 0; \	acpi_gbl_max_concurrent_object_size = 0; \	acpi_gbl_current_alloc_size = 0; \	acpi_gbl_current_alloc_count = 0; \	acpi_gbl_running_alloc_size = 0; \	acpi_gbl_running_alloc_count = 0; \	acpi_gbl_max_concurrent_alloc_size = 0; \	acpi_gbl_max_concurrent_alloc_count = 0; \	acpi_gbl_current_node_count = 0; \	acpi_gbl_current_node_size = 0; \	acpi_gbl_max_concurrent_node_count = 0#define DECREMENT_OBJECT_METRICS(a) \	acpi_gbl_current_object_count--; \	acpi_gbl_current_object_size -= a#define INCREMENT_OBJECT_METRICS(a) \	acpi_gbl_current_object_count++; \	acpi_gbl_running_object_count++; \	if (acpi_gbl_max_concurrent_object_count < acpi_gbl_current_object_count) \	{ \		acpi_gbl_max_concurrent_object_count = acpi_gbl_current_object_count; \	} \	acpi_gbl_running_object_size += a; \	acpi_gbl_current_object_size += a; \	if (acpi_gbl_max_concurrent_object_size < acpi_gbl_current_object_size) \	{ \		acpi_gbl_max_concurrent_object_size = acpi_gbl_current_object_size; \	}#define DECREMENT_NAME_TABLE_METRICS(a) \	acpi_gbl_current_node_count--; \	acpi_gbl_current_node_size -= (a)#define INCREMENT_NAME_TABLE_METRICS(a) \	acpi_gbl_current_node_count++; \	acpi_gbl_current_node_size+= (a); \	if (acpi_gbl_max_concurrent_node_count < acpi_gbl_current_node_count) \	{ \		acpi_gbl_max_concurrent_node_count = acpi_gbl_current_node_count; \	} \voidacpi_cm_dump_allocation_info (	void);voidacpi_cm_dump_current_allocations (	u32                     component,	NATIVE_CHAR             *module);#endif#endif /* _ACCOMMON_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -