Pack AGpsStatus data structures for 64-bit platforms.
b/21471818

The packing of AGpsStatus_v1 ensures that its size does not collide with
the size of AGpsStatus_v2.

Change-Id: Ic73a73070c29c0e819cb62667bc14333f448e856
diff --git a/include/hardware/gps.h b/include/hardware/gps.h
index 38353f2..76b6cb7 100644
--- a/include/hardware/gps.h
+++ b/include/hardware/gps.h
@@ -673,6 +673,12 @@
     size_t (*get_internal_state)(char* buffer, size_t bufferSize);
 } GpsDebugInterface;
 
+#pragma pack(push,4)
+// We need to keep the alignment of this data structure to 4-bytes, to ensure that in 64-bit
+// environments the size of this legacy definition does not collide with _v2. Implementations should
+// be using _v2 and _v3, so it's OK to pay the 'unaligned' penalty in 64-bit if an old
+// implementation is still in use.
+
 /** Represents the status of AGPS. */
 typedef struct {
     /** set to sizeof(AGpsStatus_v1) */
@@ -682,6 +688,8 @@
     AGpsStatusValue status;
 } AGpsStatus_v1;
 
+#pragma pack(pop)
+
 /** Represents the status of AGPS augmented with a IPv4 address field. */
 typedef struct {
     /** set to sizeof(AGpsStatus_v2) */