svn commit: r246039 - in vendor-sys/acpica/dist/source: components/utilities include

Jung-uk Kim jkim at FreeBSD.org
Mon Jan 28 20:33:33 UTC 2013


Author: jkim
Date: Mon Jan 28 20:33:31 2013
New Revision: 246039
URL: http://svnweb.freebsd.org/changeset/base/246039

Log:
  Fix a long standing bug.  NextObject is the first field for very long time.

Modified:
  vendor-sys/acpica/dist/source/components/utilities/utcache.c
  vendor-sys/acpica/dist/source/include/acmacros.h
  vendor-sys/acpica/dist/source/include/actypes.h

Modified: vendor-sys/acpica/dist/source/components/utilities/utcache.c
==============================================================================
--- vendor-sys/acpica/dist/source/components/utilities/utcache.c	Mon Jan 28 20:25:27 2013	(r246038)
+++ vendor-sys/acpica/dist/source/components/utilities/utcache.c	Mon Jan 28 20:33:31 2013	(r246039)
@@ -95,7 +95,6 @@ AcpiOsCreateCache (
     /* Populate the cache object and return it */
 
     ACPI_MEMSET (Cache, 0, sizeof (ACPI_MEMORY_LIST));
-    Cache->LinkOffset = 8;
     Cache->ListName   = CacheName;
     Cache->ObjectSize = ObjectSize;
     Cache->MaxDepth   = MaxDepth;
@@ -121,7 +120,7 @@ ACPI_STATUS
 AcpiOsPurgeCache (
     ACPI_MEMORY_LIST        *Cache)
 {
-    char                    *Next;
+    void                    *Next;
     ACPI_STATUS             Status;
 
 
@@ -145,8 +144,7 @@ AcpiOsPurgeCache (
     {
         /* Delete and unlink one cached state object */
 
-        Next = *(ACPI_CAST_INDIRECT_PTR (char,
-                    &(((char *) Cache->ListHead)[Cache->LinkOffset])));
+        Next = ACPI_GET_DESCRIPTOR_PTR (Cache->ListHead);
         ACPI_FREE (Cache->ListHead);
 
         Cache->ListHead = Next;
@@ -251,8 +249,7 @@ AcpiOsReleaseObject (
 
         /* Put the object at the head of the cache list */
 
-        * (ACPI_CAST_INDIRECT_PTR (char,
-            &(((char *) Object)[Cache->LinkOffset]))) = Cache->ListHead;
+        ACPI_SET_DESCRIPTOR_PTR (Object, Cache->ListHead);
         Cache->ListHead = Object;
         Cache->CurrentDepth++;
 
@@ -307,8 +304,7 @@ AcpiOsAcquireObject (
         /* There is an object available, use it */
 
         Object = Cache->ListHead;
-        Cache->ListHead = *(ACPI_CAST_INDIRECT_PTR (char,
-                                &(((char *) Object)[Cache->LinkOffset])));
+        Cache->ListHead = ACPI_GET_DESCRIPTOR_PTR (Object);
 
         Cache->CurrentDepth--;
 

Modified: vendor-sys/acpica/dist/source/include/acmacros.h
==============================================================================
--- vendor-sys/acpica/dist/source/include/acmacros.h	Mon Jan 28 20:25:27 2013	(r246038)
+++ vendor-sys/acpica/dist/source/include/acmacros.h	Mon Jan 28 20:33:31 2013	(r246039)
@@ -325,10 +325,12 @@
  * where a pointer to an object of type 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)      (((ACPI_DESCRIPTOR *)(void *)(d))->Common.CommonPointer)
+#define ACPI_SET_DESCRIPTOR_PTR(d, p)   (((ACPI_DESCRIPTOR *)(void *)(d))->Common.CommonPointer = (p))
 #define ACPI_GET_DESCRIPTOR_TYPE(d)     (((ACPI_DESCRIPTOR *)(void *)(d))->Common.DescriptorType)
-#define ACPI_SET_DESCRIPTOR_TYPE(d, t)  (((ACPI_DESCRIPTOR *)(void *)(d))->Common.DescriptorType = t)
+#define ACPI_SET_DESCRIPTOR_TYPE(d, t)  (((ACPI_DESCRIPTOR *)(void *)(d))->Common.DescriptorType = (t))
 
 /*
  * Macros for the master AML opcode table

Modified: vendor-sys/acpica/dist/source/include/actypes.h
==============================================================================
--- vendor-sys/acpica/dist/source/include/actypes.h	Mon Jan 28 20:25:27 2013	(r246038)
+++ vendor-sys/acpica/dist/source/include/actypes.h	Mon Jan 28 20:33:31 2013	(r246039)
@@ -1226,7 +1226,6 @@ typedef struct acpi_memory_list
     UINT16                          ObjectSize;
     UINT16                          MaxDepth;
     UINT16                          CurrentDepth;
-    UINT16                          LinkOffset;
 
 #ifdef ACPI_DBG_TRACK_ALLOCATIONS
 


More information about the svn-src-vendor mailing list