Force alignment for GrantorDescriptor struct.

Bug: 34234481
Test: Ran 64-bit mq_test_service with 32-bit mq_test_client and vice versa.
Change-Id: I7fd73ef4e9b2d54211a11e0fd6105c7b677ba095
diff --git a/base/include/hidl/MQDescriptor.h b/base/include/hidl/MQDescriptor.h
index ec063f4..869917c 100644
--- a/base/include/hidl/MQDescriptor.h
+++ b/base/include/hidl/MQDescriptor.h
@@ -29,12 +29,19 @@
 typedef uint64_t RingBufferPosition;
 
 struct GrantorDescriptor {
-    uint32_t flags;
-    uint32_t fdIndex;
-    uint32_t offset;
-    size_t extent;
+    uint32_t flags __attribute__ ((aligned(4)));
+    uint32_t fdIndex __attribute__ ((aligned(4)));
+    uint32_t offset __attribute__ ((aligned(4)));
+    uint64_t extent __attribute__ ((aligned(8)));
 };
 
+static_assert(offsetof(GrantorDescriptor, flags) == 0, "wrong offset");
+static_assert(offsetof(GrantorDescriptor, fdIndex) == 4, "wrong offset");
+static_assert(offsetof(GrantorDescriptor, offset) == 8, "wrong offset");
+static_assert(offsetof(GrantorDescriptor, extent) == 16, "wrong offset");
+static_assert(sizeof(GrantorDescriptor) == 24, "wrong size");
+static_assert(__alignof(GrantorDescriptor) == 8, "wrong alignment");
+
 enum MQFlavor : uint32_t {
   /*
    * kSynchronizedReadWrite represents the wait-free synchronized flavor of the