summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordestradaa <destradaa@google.com>2015-06-01 21:13:09 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-01 21:13:10 +0000
commitf19ee6b70df52d535a3ef3321d0e9e2eca560ede (patch)
treefe03773064780fb1b87edeb17d36895efaaa778a
parentbbbcd516a3b01c288c073ec4fc86ddd9a6115520 (diff)
parent6f8f5c5f400ff0d974983133dbc0b74b9e58ec03 (diff)
downloadhardware_libhardware-f19ee6b70df52d535a3ef3321d0e9e2eca560ede.zip
hardware_libhardware-f19ee6b70df52d535a3ef3321d0e9e2eca560ede.tar.gz
hardware_libhardware-f19ee6b70df52d535a3ef3321d0e9e2eca560ede.tar.bz2
Merge "Pack AGpsStatus data structures for 64-bit platforms. b/21471818" into mnc-dev
-rw-r--r--include/hardware/gps.h8
1 files changed, 8 insertions, 0 deletions
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 @@ typedef struct {
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 @@ typedef struct {
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) */