diff options
Diffstat (limited to 'drivers/acpi/acpica/acmacros.h')
| -rw-r--r-- | drivers/acpi/acpica/acmacros.h | 370 | 
1 files changed, 111 insertions, 259 deletions
diff --git a/drivers/acpi/acpica/acmacros.h b/drivers/acpi/acpica/acmacros.h index 8d5c9e0a495..4bceb11c738 100644 --- a/drivers/acpi/acpica/acmacros.h +++ b/drivers/acpi/acpica/acmacros.h @@ -5,7 +5,7 @@   *****************************************************************************/  /* - * Copyright (C) 2000 - 2010, Intel Corp. + * Copyright (C) 2000 - 2014, Intel Corp.   * All rights reserved.   *   * Redistribution and use in source and binary forms, with or without @@ -49,27 +49,35 @@   * get into potential aligment issues -- see the STORE macros below.   * Use with care.   */ -#define ACPI_GET8(ptr)                  *ACPI_CAST_PTR (u8, ptr) -#define ACPI_GET16(ptr)                 *ACPI_CAST_PTR (u16, ptr) -#define ACPI_GET32(ptr)                 *ACPI_CAST_PTR (u32, ptr) -#define ACPI_GET64(ptr)                 *ACPI_CAST_PTR (u64, ptr) -#define ACPI_SET8(ptr)                  *ACPI_CAST_PTR (u8, ptr) -#define ACPI_SET16(ptr)                 *ACPI_CAST_PTR (u16, ptr) -#define ACPI_SET32(ptr)                 *ACPI_CAST_PTR (u32, ptr) -#define ACPI_SET64(ptr)                 *ACPI_CAST_PTR (u64, ptr) +#define ACPI_CAST8(ptr)                 ACPI_CAST_PTR (u8, (ptr)) +#define ACPI_CAST16(ptr)                ACPI_CAST_PTR (u16, (ptr)) +#define ACPI_CAST32(ptr)                ACPI_CAST_PTR (u32, (ptr)) +#define ACPI_CAST64(ptr)                ACPI_CAST_PTR (u64, (ptr)) +#define ACPI_GET8(ptr)                  (*ACPI_CAST8 (ptr)) +#define ACPI_GET16(ptr)                 (*ACPI_CAST16 (ptr)) +#define ACPI_GET32(ptr)                 (*ACPI_CAST32 (ptr)) +#define ACPI_GET64(ptr)                 (*ACPI_CAST64 (ptr)) +#define ACPI_SET8(ptr, val)             (*ACPI_CAST8 (ptr) = (u8) (val)) +#define ACPI_SET16(ptr, val)            (*ACPI_CAST16 (ptr) = (u16) (val)) +#define ACPI_SET32(ptr, val)            (*ACPI_CAST32 (ptr) = (u32) (val)) +#define ACPI_SET64(ptr, val)            (*ACPI_CAST64 (ptr) = (u64) (val))  /* - * printf() format helpers + * printf() format helpers. These macros are workarounds for the difficulties + * with emitting 64-bit integers and 64-bit pointers with the same code + * for both 32-bit and 64-bit hosts.   */ - -/* Split 64-bit integer into two 32-bit values. Use with %8.8_x%8.8_x */ -  #define ACPI_FORMAT_UINT64(i)           ACPI_HIDWORD(i), ACPI_LODWORD(i)  #if ACPI_MACHINE_WIDTH == 64  #define ACPI_FORMAT_NATIVE_UINT(i)      ACPI_FORMAT_UINT64(i) +#define ACPI_FORMAT_TO_UINT(i)          ACPI_FORMAT_UINT64(i) +#define ACPI_PRINTF_UINT                 "0x%8.8X%8.8X" +  #else -#define ACPI_FORMAT_NATIVE_UINT(i)      0, (i) +#define ACPI_FORMAT_NATIVE_UINT(i)      0, (u32) (i) +#define ACPI_FORMAT_TO_UINT(i)          (u32) (i) +#define ACPI_PRINTF_UINT                 "0x%8.8X"  #endif  /* @@ -84,29 +92,29 @@  /* These macros reverse the bytes during the move, converting little-endian to big endian */ -			  /* Big Endian      <==        Little Endian */ -			  /*  Hi...Lo                     Lo...Hi     */ +	 /* Big Endian      <==        Little Endian */ +	 /*  Hi...Lo                     Lo...Hi     */  /* 16-bit source, 16/32/64 destination */  #define ACPI_MOVE_16_TO_16(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[1];\ -					   ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];} +			  ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];}  #define ACPI_MOVE_16_TO_32(d, s)        {(*(u32 *)(void *)(d))=0;\ -							   ((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ -							   ((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];} +					  ((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ +					  ((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}  #define ACPI_MOVE_16_TO_64(d, s)        {(*(u64 *)(void *)(d))=0;\ -									 ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\ -									 ((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];} +							   ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\ +							   ((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];}  /* 32-bit source, 16/32/64 destination */  #define ACPI_MOVE_32_TO_16(d, s)        ACPI_MOVE_16_TO_16(d, s)	/* Truncate to 16 */  #define ACPI_MOVE_32_TO_32(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[3];\ -										 ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\ -										 ((  u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ -										 ((  u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];} +									  ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\ +									  ((  u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ +									  ((  u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}  #define ACPI_MOVE_32_TO_64(d, s)        {(*(u64 *)(void *)(d))=0;\  										   ((u8 *)(void *)(d))[4] = ((u8 *)(void *)(s))[3];\ @@ -196,24 +204,12 @@  #endif  #endif -/* Macros based on machine integer width */ - -#if ACPI_MACHINE_WIDTH == 32 -#define ACPI_MOVE_SIZE_TO_16(d, s)       ACPI_MOVE_32_TO_16(d, s) - -#elif ACPI_MACHINE_WIDTH == 64 -#define ACPI_MOVE_SIZE_TO_16(d, s)       ACPI_MOVE_64_TO_16(d, s) - -#else -#error unknown ACPI_MACHINE_WIDTH -#endif -  /*   * Fast power-of-two math macros for non-optimized compilers   */ -#define _ACPI_DIV(value, power_of2)      ((u32) ((value) >> (power_of2))) -#define _ACPI_MUL(value, power_of2)      ((u32) ((value) << (power_of2))) -#define _ACPI_MOD(value, divisor)        ((u32) ((value) & ((divisor) -1))) +#define _ACPI_DIV(value, power_of2)     ((u32) ((value) >> (power_of2))) +#define _ACPI_MUL(value, power_of2)     ((u32) ((value) << (power_of2))) +#define _ACPI_MOD(value, divisor)       ((u32) ((value) & ((divisor) -1)))  #define ACPI_DIV_2(a)                   _ACPI_DIV(a, 1)  #define ACPI_MUL_2(a)                   _ACPI_MUL(a, 1) @@ -238,12 +234,12 @@  /*   * Rounding macros (Power of two boundaries only)   */ -#define ACPI_ROUND_DOWN(value, boundary)     (((acpi_size)(value)) & \ -						(~(((acpi_size) boundary)-1))) +#define ACPI_ROUND_DOWN(value, boundary)    (((acpi_size)(value)) & \ +												(~(((acpi_size) boundary)-1))) -#define ACPI_ROUND_UP(value, boundary)	     ((((acpi_size)(value)) + \ -						(((acpi_size) boundary)-1)) & \ -						(~(((acpi_size) boundary)-1))) +#define ACPI_ROUND_UP(value, boundary)      ((((acpi_size)(value)) + \ +												(((acpi_size) boundary)-1)) & \ +												(~(((acpi_size) boundary)-1)))  /* Note: sizeof(acpi_size) evaluates to either 4 or 8 (32- vs 64-bit mode) */ @@ -264,7 +260,7 @@  #define ACPI_ROUND_UP_TO(value, boundary)   (((value) + ((boundary)-1)) / (boundary)) -#define ACPI_IS_MISALIGNED(value)	    (((acpi_size) value) & (sizeof(acpi_size)-1)) +#define ACPI_IS_MISALIGNED(value)           (((acpi_size) value) & (sizeof(acpi_size)-1))  /*   * Bitmask creation @@ -277,20 +273,65 @@  /* Bitfields within ACPI registers */ -#define ACPI_REGISTER_PREPARE_BITS(val, pos, mask)      ((val << pos) & mask) -#define ACPI_REGISTER_INSERT_VALUE(reg, pos, mask, val)  reg = (reg & (~(mask))) | ACPI_REGISTER_PREPARE_BITS(val, pos, mask) +#define ACPI_REGISTER_PREPARE_BITS(val, pos, mask) \ +	((val << pos) & mask) + +#define ACPI_REGISTER_INSERT_VALUE(reg, pos, mask, val) \ +	reg = (reg & (~(mask))) | ACPI_REGISTER_PREPARE_BITS(val, pos, mask) + +#define ACPI_INSERT_BITS(target, mask, source) \ +	target = ((target & (~(mask))) | (source & mask)) + +/* Generic bitfield macros and masks */ + +#define ACPI_GET_BITS(source_ptr, position, mask) \ +	((*source_ptr >> position) & mask) + +#define ACPI_SET_BITS(target_ptr, position, mask, value) \ +	(*target_ptr |= ((value & mask) << position)) -#define ACPI_INSERT_BITS(target, mask, source)          target = ((target & (~(mask))) | (source & mask)) +#define ACPI_1BIT_MASK      0x00000001 +#define ACPI_2BIT_MASK      0x00000003 +#define ACPI_3BIT_MASK      0x00000007 +#define ACPI_4BIT_MASK      0x0000000F +#define ACPI_5BIT_MASK      0x0000001F +#define ACPI_6BIT_MASK      0x0000003F +#define ACPI_7BIT_MASK      0x0000007F +#define ACPI_8BIT_MASK      0x000000FF +#define ACPI_16BIT_MASK     0x0000FFFF +#define ACPI_24BIT_MASK     0x00FFFFFF + +/* Macros to extract flag bits from position zero */ + +#define ACPI_GET_1BIT_FLAG(value)                   ((value) & ACPI_1BIT_MASK) +#define ACPI_GET_2BIT_FLAG(value)                   ((value) & ACPI_2BIT_MASK) +#define ACPI_GET_3BIT_FLAG(value)                   ((value) & ACPI_3BIT_MASK) +#define ACPI_GET_4BIT_FLAG(value)                   ((value) & ACPI_4BIT_MASK) + +/* Macros to extract flag bits from position one and above */ + +#define ACPI_EXTRACT_1BIT_FLAG(field, position)     (ACPI_GET_1BIT_FLAG ((field) >> position)) +#define ACPI_EXTRACT_2BIT_FLAG(field, position)     (ACPI_GET_2BIT_FLAG ((field) >> position)) +#define ACPI_EXTRACT_3BIT_FLAG(field, position)     (ACPI_GET_3BIT_FLAG ((field) >> position)) +#define ACPI_EXTRACT_4BIT_FLAG(field, position)     (ACPI_GET_4BIT_FLAG ((field) >> position)) + +/* ACPI Pathname helpers */ + +#define ACPI_IS_ROOT_PREFIX(c)      ((c) == (u8) 0x5C)	/* Backslash */ +#define ACPI_IS_PARENT_PREFIX(c)    ((c) == (u8) 0x5E)	/* Carat */ +#define ACPI_IS_PATH_SEPARATOR(c)   ((c) == (u8) 0x2E)	/* Period (dot) */  /* - * A struct acpi_namespace_node can appear in some contexts - * where a pointer to a union acpi_operand_object can also + * An object of type struct acpi_namespace_node can appear in some contexts + * where a pointer to an object of type union acpi_operand_object can also   * appear. This macro is used to distinguish them.   * - * The "Descriptor" field is the first field in both structures. + * The "DescriptorType" field is the second field in both structures.   */ +#define ACPI_GET_DESCRIPTOR_PTR(d)      (((union acpi_descriptor *)(void *)(d))->common.common_pointer) +#define ACPI_SET_DESCRIPTOR_PTR(d, p)   (((union acpi_descriptor *)(void *)(d))->common.common_pointer = (p))  #define ACPI_GET_DESCRIPTOR_TYPE(d)     (((union acpi_descriptor *)(void *)(d))->common.descriptor_type) -#define ACPI_SET_DESCRIPTOR_TYPE(d, t)  (((union acpi_descriptor *)(void *)(d))->common.descriptor_type = t) +#define ACPI_SET_DESCRIPTOR_TYPE(d, t)  (((union acpi_descriptor *)(void *)(d))->common.descriptor_type = (t))  /*   * Macros for the master AML opcode table @@ -332,16 +373,16 @@   * Ascii error messages can be configured out   */  #ifndef ACPI_NO_ERROR_MESSAGES -  /*   * Error reporting. Callers module and line number are inserted by AE_INFO,   * the plist contains a set of parens to allow variable-length lists.   * These macros are used for both the debug and non-debug versions of the code.   */ -#define ACPI_ERROR_NAMESPACE(s, e)      acpi_ut_namespace_error (AE_INFO, s, e); -#define ACPI_ERROR_METHOD(s, n, p, e)   acpi_ut_method_error (AE_INFO, s, n, p, e); -#define ACPI_WARN_PREDEFINED(plist)     acpi_ut_predefined_warning plist -#define ACPI_INFO_PREDEFINED(plist)     acpi_ut_predefined_info plist +#define ACPI_ERROR_NAMESPACE(s, e)          acpi_ut_namespace_error (AE_INFO, s, e); +#define ACPI_ERROR_METHOD(s, n, p, e)       acpi_ut_method_error (AE_INFO, s, n, p, e); +#define ACPI_WARN_PREDEFINED(plist)         acpi_ut_predefined_warning plist +#define ACPI_INFO_PREDEFINED(plist)         acpi_ut_predefined_info plist +#define ACPI_BIOS_ERROR_PREDEFINED(plist)   acpi_ut_predefined_bios_error plist  #else @@ -351,171 +392,16 @@  #define ACPI_ERROR_METHOD(s, n, p, e)  #define ACPI_WARN_PREDEFINED(plist)  #define ACPI_INFO_PREDEFINED(plist) +#define ACPI_BIOS_ERROR_PREDEFINED(plist) -#endif		/* ACPI_NO_ERROR_MESSAGES */ - -/* - * Debug macros that are conditionally compiled - */ -#ifdef ACPI_DEBUG_OUTPUT - -/* - * Function entry tracing - */ -#ifdef CONFIG_ACPI_DEBUG_FUNC_TRACE - -#define ACPI_FUNCTION_TRACE(a)          ACPI_FUNCTION_NAME(a) \ -			  acpi_ut_trace(ACPI_DEBUG_PARAMETERS) -#define ACPI_FUNCTION_TRACE_PTR(a, b)   ACPI_FUNCTION_NAME(a) \ -					   acpi_ut_trace_ptr(ACPI_DEBUG_PARAMETERS, (void *)b) -#define ACPI_FUNCTION_TRACE_U32(a, b)   ACPI_FUNCTION_NAME(a) \ -							 acpi_ut_trace_u32(ACPI_DEBUG_PARAMETERS, (u32)b) -#define ACPI_FUNCTION_TRACE_STR(a, b)   ACPI_FUNCTION_NAME(a) \ -									  acpi_ut_trace_str(ACPI_DEBUG_PARAMETERS, (char *)b) +#endif				/* ACPI_NO_ERROR_MESSAGES */ -#define ACPI_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 "_AcpiFunctionName" is defined. - * - * Note: the DO_WHILE0 macro is used to prevent some compilers from complaining - * about these constructs. - */ -#ifdef ACPI_USE_DO_WHILE_0 -#define ACPI_DO_WHILE0(a)               do a while(0) +#if (!ACPI_REDUCED_HARDWARE) +#define ACPI_HW_OPTIONAL_FUNCTION(addr)     addr  #else -#define ACPI_DO_WHILE0(a)               a +#define ACPI_HW_OPTIONAL_FUNCTION(addr)     NULL  #endif -#define return_VOID                     ACPI_DO_WHILE0 ({ \ -											acpi_ut_exit (ACPI_DEBUG_PARAMETERS); \ -											return;}) -/* - * There are two versions of most of the return macros. The default version is - * safer, since it avoids side-effects by guaranteeing that the argument will - * not be evaluated twice. - * - * A less-safe version of the macros is provided for optional use if the - * compiler uses excessive CPU stack (for example, this may happen in the - * debug case if code optimzation is disabled.) - */ -#ifndef ACPI_SIMPLE_RETURN_MACROS - -#define return_ACPI_STATUS(s)           ACPI_DO_WHILE0 ({ \ -											register acpi_status _s = (s); \ -											acpi_ut_status_exit (ACPI_DEBUG_PARAMETERS, _s); \ -											return (_s); }) -#define return_PTR(s)                   ACPI_DO_WHILE0 ({ \ -											register void *_s = (void *) (s); \ -											acpi_ut_ptr_exit (ACPI_DEBUG_PARAMETERS, (u8 *) _s); \ -											return (_s); }) -#define return_VALUE(s)                 ACPI_DO_WHILE0 ({ \ -											register u64 _s = (s); \ -											acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, _s); \ -											return (_s); }) -#define return_UINT8(s)                 ACPI_DO_WHILE0 ({ \ -											register u8 _s = (u8) (s); \ -											acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (u64) _s); \ -											return (_s); }) -#define return_UINT32(s)                ACPI_DO_WHILE0 ({ \ -											register u32 _s = (u32) (s); \ -											acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (u64) _s); \ -											return (_s); }) -#else				/* Use original less-safe macros */ - -#define return_ACPI_STATUS(s)           ACPI_DO_WHILE0 ({ \ -											acpi_ut_status_exit (ACPI_DEBUG_PARAMETERS, (s)); \ -											return((s)); }) -#define return_PTR(s)                   ACPI_DO_WHILE0 ({ \ -											acpi_ut_ptr_exit (ACPI_DEBUG_PARAMETERS, (u8 *) (s)); \ -											return((s)); }) -#define return_VALUE(s)                 ACPI_DO_WHILE0 ({ \ -											acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (u64) (s)); \ -											return((s)); }) -#define return_UINT8(s)                 return_VALUE(s) -#define return_UINT32(s)                return_VALUE(s) - -#endif				/* ACPI_SIMPLE_RETURN_MACROS */ - -#else /* !CONFIG_ACPI_DEBUG_FUNC_TRACE */ - -#define ACPI_FUNCTION_TRACE(a) -#define ACPI_FUNCTION_TRACE_PTR(a,b) -#define ACPI_FUNCTION_TRACE_U32(a,b) -#define ACPI_FUNCTION_TRACE_STR(a,b) -#define ACPI_FUNCTION_EXIT -#define ACPI_FUNCTION_STATUS_EXIT(s) -#define ACPI_FUNCTION_VALUE_EXIT(s) -#define ACPI_FUNCTION_TRACE(a) -#define ACPI_FUNCTION_ENTRY() - -#define return_VOID                     return -#define return_ACPI_STATUS(s)           return(s) -#define return_VALUE(s)                 return(s) -#define return_UINT8(s)                 return(s) -#define return_UINT32(s)                return(s) -#define return_PTR(s)                   return(s) - -#endif /* CONFIG_ACPI_DEBUG_FUNC_TRACE */ - -/* Conditional execution */ - -#define ACPI_DEBUG_EXEC(a)              a -#define ACPI_NORMAL_EXEC(a) - -#define ACPI_DEBUG_DEFINE(a)            a; -#define ACPI_DEBUG_ONLY_MEMBERS(a)      a; -#define _VERBOSE_STRUCTURES - -/* Stack and buffer dumping */ - -#define ACPI_DUMP_STACK_ENTRY(a)        acpi_ex_dump_operand((a), 0) -#define ACPI_DUMP_OPERANDS(a, b, c)	acpi_ex_dump_operands(a, b, c) - -#define ACPI_DUMP_ENTRY(a, b)           acpi_ns_dump_entry (a, b) -#define ACPI_DUMP_PATHNAME(a, b, c, d)  acpi_ns_dump_pathname(a, b, c, d) -#define ACPI_DUMP_RESOURCE_LIST(a)      acpi_rs_dump_resource_list(a) -#define ACPI_DUMP_BUFFER(a, b)          acpi_ut_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT) - -#else -/* - * This is the non-debug case -- make everything go away, - * leaving no executable debug code! - */ -#define ACPI_DEBUG_EXEC(a) -#define ACPI_NORMAL_EXEC(a)             a; - -#define ACPI_DEBUG_DEFINE(a)		do { } while(0) -#define ACPI_DEBUG_ONLY_MEMBERS(a)	do { } while(0) -#define ACPI_FUNCTION_TRACE(a)		do { } while(0) -#define ACPI_FUNCTION_TRACE_PTR(a, b)	do { } while(0) -#define ACPI_FUNCTION_TRACE_U32(a, b)	do { } while(0) -#define ACPI_FUNCTION_TRACE_STR(a, b)	do { } while(0) -#define ACPI_FUNCTION_EXIT		do { } while(0) -#define ACPI_FUNCTION_STATUS_EXIT(s)	do { } while(0) -#define ACPI_FUNCTION_VALUE_EXIT(s)	do { } while(0) -#define ACPI_FUNCTION_ENTRY()		do { } while(0) -#define ACPI_DUMP_STACK_ENTRY(a)	do { } while(0) -#define ACPI_DUMP_OPERANDS(a, b, c)     do { } while(0) -#define ACPI_DUMP_ENTRY(a, b)		do { } while(0) -#define ACPI_DUMP_TABLES(a, b)		do { } while(0) -#define ACPI_DUMP_PATHNAME(a, b, c, d)	do { } while(0) -#define ACPI_DUMP_RESOURCE_LIST(a)	do { } while(0) -#define ACPI_DUMP_BUFFER(a, b)		do { } while(0) - -#define return_VOID                     return -#define return_ACPI_STATUS(s)           return(s) -#define return_VALUE(s)                 return(s) -#define return_UINT8(s)                 return(s) -#define return_UINT32(s)                return(s) -#define return_PTR(s)                   return(s) - -#endif				/* ACPI_DEBUG_OUTPUT */ -  /*   * Some code only gets executed when the debugger is built in.   * Note that this is entirely independent of whether the @@ -527,52 +413,18 @@  #define ACPI_DEBUGGER_EXEC(a)  #endif -#ifdef ACPI_DEBUG_OUTPUT -/* - * 1) Set name to blanks - * 2) Copy the object name - */ -#define ACPI_ADD_OBJECT_NAME(a,b)       ACPI_MEMSET (a->common.name, ' ', sizeof (a->common.name));\ -										ACPI_STRNCPY (a->common.name, acpi_gbl_ns_type_names[b], sizeof (a->common.name)) -#else - -#define ACPI_ADD_OBJECT_NAME(a,b) -#endif -  /* - * Memory allocation tracking (DEBUG ONLY) + * Macros used for ACPICA utilities only   */ -#define ACPI_MEM_PARAMETERS         _COMPONENT, _acpi_module_name, __LINE__ - -#ifndef ACPI_DBG_TRACK_ALLOCATIONS - -/* Memory allocation */ - -#ifndef ACPI_ALLOCATE -#define ACPI_ALLOCATE(a)            acpi_ut_allocate((acpi_size)(a), ACPI_MEM_PARAMETERS) -#endif -#ifndef ACPI_ALLOCATE_ZEROED -#define ACPI_ALLOCATE_ZEROED(a)     acpi_ut_allocate_zeroed((acpi_size)(a), ACPI_MEM_PARAMETERS) -#endif -#ifndef ACPI_FREE -#define ACPI_FREE(a)                acpio_os_free(a) -#endif -#define ACPI_MEM_TRACKING(a) -#else +/* Generate a UUID */ -/* Memory allocation */ +#define ACPI_INIT_UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ +	(a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \ +	(b) & 0xFF, ((b) >> 8) & 0xFF, \ +	(c) & 0xFF, ((c) >> 8) & 0xFF, \ +	(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) -#define ACPI_ALLOCATE(a)            acpi_ut_allocate_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS) -#define ACPI_ALLOCATE_ZEROED(a)     acpi_ut_allocate_zeroed_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS) -#define ACPI_FREE(a)                acpi_ut_free_and_track(a, ACPI_MEM_PARAMETERS) -#define ACPI_MEM_TRACKING(a)        a - -#endif				/* ACPI_DBG_TRACK_ALLOCATIONS */ - -/* Preemption point */ -#ifndef ACPI_PREEMPTION_POINT -#define ACPI_PREEMPTION_POINT() /* no preemption */ -#endif +#define ACPI_IS_OCTAL_DIGIT(d)              (((char)(d) >= '0') && ((char)(d) <= '7'))  #endif				/* ACMACROS_H */  | 
