diff options
author | David 'Digit' Turner <digit@android.com> | 2011-02-28 10:01:27 -0800 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2011-02-28 10:01:27 -0800 |
commit | cd4f70aa8e109356fca32601c259d38024315837 (patch) | |
tree | 523f9edf3f9ee7702d00b9bcef25e8068f1b2c97 /android | |
parent | b340e5e4840a43b839a403e44c1ea578fdd33e4f (diff) | |
parent | 607461d262aaa756c2ea3a9c6eb03cff38294c70 (diff) | |
download | external_qemu-cd4f70aa8e109356fca32601c259d38024315837.zip external_qemu-cd4f70aa8e109356fca32601c259d38024315837.tar.gz external_qemu-cd4f70aa8e109356fca32601c259d38024315837.tar.bz2 |
Merge "Fix sensor-related snapshot resume failure."
Diffstat (limited to 'android')
-rw-r--r-- | android/hw-sensors.c | 12 | ||||
-rw-r--r-- | android/hw-sensors.h | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/android/hw-sensors.c b/android/hw-sensors.c index e191f68..c3ab12f 100644 --- a/android/hw-sensors.c +++ b/android/hw-sensors.c @@ -525,7 +525,7 @@ _hwSensors_load( QEMUFile* f, QemudService* s, void* opaque) /* check number of sensors */ int32_t num_sensors = qemu_get_be32(f); - if (num_sensors != MAX_SENSORS) { + if (num_sensors > MAX_SENSORS) { D("%s: cannot load: snapshot requires %d sensors, %d available\n", __FUNCTION__, num_sensors, MAX_SENSORS); return -EIO; @@ -533,7 +533,7 @@ _hwSensors_load( QEMUFile* f, QemudService* s, void* opaque) /* load sensor state */ AndroidSensor i; - for (i = 0 ; i < MAX_SENSORS; i++) { + for (i = 0 ; i < num_sensors; i++) { Sensor* s = &h->sensors[i]; s->enabled = qemu_get_be32(f); @@ -567,6 +567,14 @@ _hwSensors_load( QEMUFile* f, QemudService* s, void* opaque) } } + /* The following is necessary when we resume a snaphost + * created by an older version of the emulator that provided + * less hardware sensors. + */ + for ( ; i < MAX_SENSORS; i++ ) { + h->sensors[i].enabled = 0; + } + return 0; } diff --git a/android/hw-sensors.h b/android/hw-sensors.h index 5cfc748..665cc6d 100644 --- a/android/hw-sensors.h +++ b/android/hw-sensors.h @@ -20,6 +20,9 @@ extern void android_hw_sensors_init( void ); /* NOTE: this list must be the same that the one defined in * the sensors_qemu.c source of the libsensors.goldfish.so * library. + * + * DO NOT CHANGE THE ORDER IN THIS LIST, UNLESS YOU INTEND + * TO BREAK SNAPSHOTS! */ #define SENSORS_LIST \ SENSOR_(ACCELERATION,"acceleration") \ |