From 741be6949bd7d00ee7b6c47e31942b7c650cf8fc Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 14 Aug 2010 21:55:32 +0800 Subject: add function to alter the 'sum of the day' --- easytool/easycard.c | 13 +++++++++++++ easytool/easycard.h | 5 +++++ 2 files changed, 18 insertions(+) (limited to 'easytool') diff --git a/easytool/easycard.c b/easytool/easycard.c index 32c71f3..1f9572d 100644 --- a/easytool/easycard.c +++ b/easytool/easycard.c @@ -63,6 +63,19 @@ int easy_update_log_rec(struct easy_log_rec *elr, int16_t delta) return 0; } +/* apply a delta to the 'sum of day' record in Sector 15 Block 2 */ +int easy_update_sum_of_day(struct easy_sect15blk2 *s15b2, int16_t delta) +{ + int32_t sum = s15b2->sum_of_day + delta; + + if (sum < 0 || sum > 0xffff) + return -ERANGE; + + s15b2->sum_of_day = sum; + + return 0; +} + static char tsbuf[64]; char *easy_asc_timestamp(const uint8_t *timestamp) { diff --git a/easytool/easycard.h b/easytool/easycard.h index e6ce806..c421bc2 100644 --- a/easytool/easycard.h +++ b/easytool/easycard.h @@ -44,4 +44,9 @@ struct easy_log_rec { time_t easy_timestamp2time(const uint8_t *easy_ts); +/* apply a telta (positive or negative) to a EasyCard log record */ +int easy_update_log_rec(struct easy_log_rec *elr, int16_t delta); +/* apply a delta to the 'sum of day' record in Sector 15 Block 2 */ +int easy_update_sum_of_day(struct easy_sect15blk2 *s15b2, int16_t delta); + #endif /* EASYCARD_H */ -- cgit v1.2.3