diff options
author | Louis Yung-Chieh Lo <yjlou@chromium.org> | 2014-01-06 14:46:11 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-01-07 02:52:54 +0000 |
commit | 9ccbedda19de14fbba47d5e4e97579f5b8573184 (patch) | |
tree | 9d248df469d9959e9f05d2fc4aff6c4f30b6225b /util | |
parent | 143763421c4f85a6d7e60bee0f7330dac6f2aeba (diff) | |
download | chrome-ec-9ccbedda19de14fbba47d5e4e97579f5b8573184.tar.gz |
nyan: add 'max_size' parameter to read_mapped_string()
We changed the behavior of indata.size==0 case in cros_ec kernel driver.
This breaks the nyan battery driver. Change the ectool as well.
BUG=chrome-os-partner:24851
BRANCH=nyan
TEST=verified on nyan rev B
% ectool battery
Battery info:
OEM name: SANYO
Model number: AP13J3K
Chemistry : LION
Serial number: 174E
Design capacity: 4030 mAh
Last full charge: 4030 mAh
Design output voltage 11250 mV
Cycle count 0
Present voltage 12934 mV
Present current 0 mA
Remaining capacity 3966 mAh
Flags 0x03 AC_PRESENT BATT_PRESENT
Change-Id: Id63d933802ed85d7f5d8f1c53e6389b083f41a8a
Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/181667
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'util')
-rw-r--r-- | util/ectool.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/util/ectool.c b/util/ectool.c index 3c42045cda..dedb617cf9 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -245,11 +245,11 @@ static uint32_t read_mapped_mem32(uint8_t offset) return val; } -static int read_mapped_string(uint8_t offset, char *buffer) +static int read_mapped_string(uint8_t offset, char *buffer, int max_size) { int ret; - ret = ec_readmem(offset, 0, buffer); + ret = ec_readmem(offset, max_size, buffer); if (ret <= 0) { fprintf(stderr, "failure in %s(): %d\n", __func__, ret); exit(1); @@ -2769,22 +2769,26 @@ int cmd_battery(int argc, char *argv[]) printf("Battery info:\n"); - rv = read_mapped_string(EC_MEMMAP_BATT_MFGR, batt_text); + rv = read_mapped_string(EC_MEMMAP_BATT_MFGR, batt_text, + sizeof(batt_text)); if (rv < 0 || !is_string_printable(batt_text)) goto cmd_error; printf(" OEM name: %s\n", batt_text); - rv = read_mapped_string(EC_MEMMAP_BATT_MODEL, batt_text); + rv = read_mapped_string(EC_MEMMAP_BATT_MODEL, batt_text, + sizeof(batt_text)); if (rv < 0 || !is_string_printable(batt_text)) goto cmd_error; printf(" Model number: %s\n", batt_text); - rv = read_mapped_string(EC_MEMMAP_BATT_TYPE, batt_text); + rv = read_mapped_string(EC_MEMMAP_BATT_TYPE, batt_text, + sizeof(batt_text)); if (rv < 0 || !is_string_printable(batt_text)) goto cmd_error; printf(" Chemistry : %s\n", batt_text); - rv = read_mapped_string(EC_MEMMAP_BATT_SERIAL, batt_text); + rv = read_mapped_string(EC_MEMMAP_BATT_SERIAL, batt_text, + sizeof(batt_text)); printf(" Serial number: %s\n", batt_text); val = read_mapped_mem32(EC_MEMMAP_BATT_DCAP); |