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

📄 acmacros.h

📁 内核linux2.4.20,可跟rtlinux3.2打补丁 组成实时linux系统,编译内核
💻 H
📖 第 1 页 / 共 2 页
字号:
 * Macros for the master AML opcode table */#ifdef ACPI_DEBUG#define ACPI_OP(name,Pargs,Iargs,class,type,flags)     {Pargs,Iargs,flags,class,type,name}#else#define ACPI_OP(name,Pargs,Iargs,class,type,flags)     {Pargs,Iargs,flags,class,type}#endif#define ARG_TYPE_WIDTH                  5#define ARG_1(x)                        ((u32)(x))#define ARG_2(x)                        ((u32)(x) << (1 * ARG_TYPE_WIDTH))#define ARG_3(x)                        ((u32)(x) << (2 * ARG_TYPE_WIDTH))#define ARG_4(x)                        ((u32)(x) << (3 * ARG_TYPE_WIDTH))#define ARG_5(x)                        ((u32)(x) << (4 * ARG_TYPE_WIDTH))#define ARG_6(x)                        ((u32)(x) << (5 * ARG_TYPE_WIDTH))#define ARGI_LIST1(a)                   (ARG_1(a))#define ARGI_LIST2(a,b)                 (ARG_1(b)|ARG_2(a))#define ARGI_LIST3(a,b,c)               (ARG_1(c)|ARG_2(b)|ARG_3(a))#define ARGI_LIST4(a,b,c,d)             (ARG_1(d)|ARG_2(c)|ARG_3(b)|ARG_4(a))#define ARGI_LIST5(a,b,c,d,e)           (ARG_1(e)|ARG_2(d)|ARG_3(c)|ARG_4(b)|ARG_5(a))#define ARGI_LIST6(a,b,c,d,e,f)         (ARG_1(f)|ARG_2(e)|ARG_3(d)|ARG_4(c)|ARG_5(b)|ARG_6(a))#define ARGP_LIST1(a)                   (ARG_1(a))#define ARGP_LIST2(a,b)                 (ARG_1(a)|ARG_2(b))#define ARGP_LIST3(a,b,c)               (ARG_1(a)|ARG_2(b)|ARG_3(c))#define ARGP_LIST4(a,b,c,d)             (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d))#define ARGP_LIST5(a,b,c,d,e)           (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e))#define ARGP_LIST6(a,b,c,d,e,f)         (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e)|ARG_6(f))#define GET_CURRENT_ARG_TYPE(list)      (list & ((u32) 0x1F))#define INCREMENT_ARG_LIST(list)        (list >>= ((u32) ARG_TYPE_WIDTH))/* * Build a GAS structure from earlier ACPI table entries (V1.0 and 0.71 extensions) * * 1) Address space * 2) Length in bytes -- convert to length in bits * 3) Bit offset is zero * 4) Reserved field is zero * 5) Expand address to 64 bits */#define ASL_BUILD_GAS_FROM_ENTRY(a,b,c,d)   {a.address_space_id = (u8) d;\											 a.register_bit_width = (u8) MUL_8 (b);\											 a.register_bit_offset = 0;\											 a.reserved = 0;\											 ACPI_STORE_ADDRESS (a.address,c);}/* ACPI V1.0 entries -- address space is always I/O */#define ASL_BUILD_GAS_FROM_V1_ENTRY(a,b,c)  ASL_BUILD_GAS_FROM_ENTRY(a,b,c,ACPI_ADR_SPACE_SYSTEM_IO)/* * Reporting macros that are never compiled out */#define PARAM_LIST(pl)                  pl/* * Error reporting.  These versions add callers module and line#.  Since * _THIS_MODULE gets compiled out when ACPI_DEBUG isn't defined, only * use it in debug mode. */#ifdef ACPI_DEBUG#define REPORT_INFO(fp)                 {acpi_ut_report_info(_THIS_MODULE,__LINE__,_COMPONENT); \											acpi_os_printf PARAM_LIST(fp);}#define REPORT_ERROR(fp)                {acpi_ut_report_error(_THIS_MODULE,__LINE__,_COMPONENT); \											acpi_os_printf PARAM_LIST(fp);}#define REPORT_WARNING(fp)              {acpi_ut_report_warning(_THIS_MODULE,__LINE__,_COMPONENT); \											acpi_os_printf PARAM_LIST(fp);}#else#define REPORT_INFO(fp)                 {acpi_ut_report_info("ACPI",__LINE__,_COMPONENT); \											acpi_os_printf PARAM_LIST(fp);}#define REPORT_ERROR(fp)                {acpi_ut_report_error("ACPI",__LINE__,_COMPONENT); \											acpi_os_printf PARAM_LIST(fp);}#define REPORT_WARNING(fp)              {acpi_ut_report_warning("ACPI",__LINE__,_COMPONENT); \											acpi_os_printf PARAM_LIST(fp);}#endif/* Error reporting.  These versions pass thru the module and line# */#define _REPORT_INFO(a,b,c,fp)          {acpi_ut_report_info(a,b,c); \											acpi_os_printf PARAM_LIST(fp);}#define _REPORT_ERROR(a,b,c,fp)         {acpi_ut_report_error(a,b,c); \											acpi_os_printf PARAM_LIST(fp);}#define _REPORT_WARNING(a,b,c,fp)       {acpi_ut_report_warning(a,b,c); \											acpi_os_printf PARAM_LIST(fp);}/* * Debug macros that are conditionally compiled */#ifdef ACPI_DEBUG#define MODULE_NAME(name)               static char *_THIS_MODULE = name;/* * Function entry tracing. * The first parameter should be the procedure name as a quoted string.  This is declared * as a local string ("_Proc_name) so that it can be also used by the function exit macros below. */#define PROC_NAME(a)                    acpi_debug_print_info _dbg;     \										_dbg.component_id = _COMPONENT; \										_dbg.proc_name   = a;           \										_dbg.module_name = _THIS_MODULE;#define FUNCTION_TRACE(a)               PROC_NAME(a)\										acpi_ut_trace(__LINE__,&_dbg)#define FUNCTION_TRACE_PTR(a,b)         PROC_NAME(a)\										acpi_ut_trace_ptr(__LINE__,&_dbg,(void *)b)#define FUNCTION_TRACE_U32(a,b)         PROC_NAME(a)\										acpi_ut_trace_u32(__LINE__,&_dbg,(u32)b)#define FUNCTION_TRACE_STR(a,b)         PROC_NAME(a)\										acpi_ut_trace_str(__LINE__,&_dbg,(NATIVE_CHAR *)b)#define FUNCTION_ENTRY()                acpi_ut_track_stack_ptr()/* * Function exit tracing. * WARNING: These macros include a return statement.  This is usually considered * bad form, but having a separate exit macro is very ugly and difficult to maintain. * One of the FUNCTION_TRACE macros above must be used in conjunction with these macros * so that "_Proc_name" is defined. */#define return_VOID                     {acpi_ut_exit(__LINE__,&_dbg);return;}#define return_ACPI_STATUS(s)           {acpi_ut_status_exit(__LINE__,&_dbg,s);return(s);}#define return_VALUE(s)                 {acpi_ut_value_exit(__LINE__,&_dbg,s);return(s);}#define return_PTR(s)                   {acpi_ut_ptr_exit(__LINE__,&_dbg,(u8 *)s);return(s);}/* Conditional execution */#define DEBUG_EXEC(a)                   a#define NORMAL_EXEC(a)#define DEBUG_DEFINE(a)                 a;#define DEBUG_ONLY_MEMBERS(a)           a;#define _OPCODE_NAMES#define _VERBOSE_STRUCTURES/* Stack and buffer dumping */#define DUMP_STACK_ENTRY(a)             acpi_ex_dump_operand(a)#define DUMP_OPERANDS(a,b,c,d,e)        acpi_ex_dump_operands(a,b,c,d,e,_THIS_MODULE,__LINE__)#define DUMP_ENTRY(a,b)                 acpi_ns_dump_entry (a,b)#define DUMP_TABLES(a,b)                acpi_ns_dump_tables(a,b)#define DUMP_PATHNAME(a,b,c,d)          acpi_ns_dump_pathname(a,b,c,d)#define DUMP_RESOURCE_LIST(a)           acpi_rs_dump_resource_list(a)#define DUMP_BUFFER(a,b)                acpi_ut_dump_buffer((u8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT)#define BREAK_MSG(a)                    acpi_os_signal (ACPI_SIGNAL_BREAKPOINT,(a))/* * Generate INT3 on ACPI_ERROR (Debug only!) */#define ERROR_BREAK#ifdef  ERROR_BREAK#define BREAK_ON_ERROR(lvl)              if ((lvl)&ACPI_ERROR) acpi_os_signal(ACPI_SIGNAL_BREAKPOINT,"Fatal error encountered\n")#else#define BREAK_ON_ERROR(lvl)#endif/* * Master debug print macros * Print iff: *    1) Debug print for the current component is enabled *    2) Debug error level or trace level for the print statement is enabled */#define ACPI_DEBUG_PRINT(pl)            acpi_ut_debug_print PARAM_LIST(pl)#define ACPI_DEBUG_PRINT_RAW(pl)        acpi_ut_debug_print_raw PARAM_LIST(pl)#else/* * This is the non-debug case -- make everything go away, * leaving no executable debug code! */#define MODULE_NAME(name)#define _THIS_MODULE ""#define DEBUG_EXEC(a)#define NORMAL_EXEC(a)                  a;#define DEBUG_DEFINE(a)#define DEBUG_ONLY_MEMBERS(a)#define PROC_NAME(a)#define FUNCTION_TRACE(a)#define FUNCTION_TRACE_PTR(a,b)#define FUNCTION_TRACE_U32(a,b)#define FUNCTION_TRACE_STR(a,b)#define FUNCTION_EXIT#define FUNCTION_STATUS_EXIT(s)#define FUNCTION_VALUE_EXIT(s)#define FUNCTION_ENTRY()#define DUMP_STACK_ENTRY(a)#define DUMP_OPERANDS(a,b,c,d,e)#define DUMP_ENTRY(a,b)#define DUMP_TABLES(a,b)#define DUMP_PATHNAME(a,b,c,d)#define DUMP_RESOURCE_LIST(a)#define DUMP_BUFFER(a,b)#define ACPI_DEBUG_PRINT(pl)#define ACPI_DEBUG_PRINT_RAW(pl)#define BREAK_MSG(a)#define return_VOID                     return#define return_ACPI_STATUS(s)           return(s)#define return_VALUE(s)                 return(s)#define return_PTR(s)                   return(s)#endif/* * Some code only gets executed when the debugger is built in. * Note that this is entirely independent of whether the * DEBUG_PRINT stuff (set by ACPI_DEBUG) is on, or not. */#ifdef ENABLE_DEBUGGER#define DEBUGGER_EXEC(a)                a#else#define DEBUGGER_EXEC(a)#endif/* * For 16-bit code, we want to shrink some things even though * we are using ACPI_DEBUG to get the debug output */#ifdef _IA16#undef DEBUG_ONLY_MEMBERS#undef _VERBOSE_STRUCTURES#define DEBUG_ONLY_MEMBERS(a)#endif#ifdef ACPI_DEBUG/* * 1) Set name to blanks * 2) Copy the object name */#define ADD_OBJECT_NAME(a,b)            MEMSET (a->common.name, ' ', sizeof (a->common.name));\										STRNCPY (a->common.name, acpi_gbl_ns_type_names[b], sizeof (a->common.name))#else#define ADD_OBJECT_NAME(a,b)#endif/* * Memory allocation tracking (DEBUG ONLY) */#ifndef ACPI_DBG_TRACK_ALLOCATIONS/* Memory allocation */#define ACPI_MEM_ALLOCATE(a)            acpi_os_allocate(a)#define ACPI_MEM_CALLOCATE(a)           acpi_os_callocate(a)#define ACPI_MEM_FREE(a)                acpi_os_free(a)#define ACPI_MEM_TRACKING(a)#else/* Memory allocation */#define ACPI_MEM_ALLOCATE(a)            acpi_ut_allocate(a,_COMPONENT,_THIS_MODULE,__LINE__)#define ACPI_MEM_CALLOCATE(a)           acpi_ut_callocate(a, _COMPONENT,_THIS_MODULE,__LINE__)#define ACPI_MEM_FREE(a)                acpi_ut_free(a,_COMPONENT,_THIS_MODULE,__LINE__)#define ACPI_MEM_TRACKING(a)            a#endif /* ACPI_DBG_TRACK_ALLOCATIONS */#define ACPI_GET_STACK_POINTER          _asm {mov eax, ebx}#endif /* ACMACROS_H */

⌨️ 快捷键说明

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