diff options
author | Keith Packard <keithp@keithp.com> | 2009-04-14 19:08:01 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-04-14 19:08:01 -0700 |
commit | acc4fc635edb70ec1ba2dff9f7ac0c8542c72c47 (patch) | |
tree | de8ce5e1cdfb925cfdb3be15e75c7e3e1c4d5c52 /ao_ee.c | |
parent | ac99982b10fd5772218660137ee21db9b90cd885 (diff) |
Add in existing flight pieces: flight/report/log
These pieces come from the old telemetrum firmware.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao_ee.c')
-rw-r--r-- | ao_ee.c | 24 |
1 files changed, 16 insertions, 8 deletions
@@ -216,15 +216,15 @@ ao_ee_read_block(void) ao_ee_cs_high(); } -void -ao_ee_flush(void) +static void +ao_ee_flush_internal(void) { if (ao_ee_block_dirty) { ao_ee_write_block(); ao_ee_block_dirty = 0; } } - + static void ao_ee_fill(uint16_t block) { @@ -236,7 +236,7 @@ ao_ee_fill(uint16_t block) } uint8_t -ao_ee_write(uint32_t pos, uint8_t *buf, uint16_t len) +ao_ee_write(uint32_t pos, uint8_t *buf, uint16_t len) __reentrant { uint16_t block; uint16_t this_len; @@ -262,7 +262,7 @@ ao_ee_write(uint32_t pos, uint8_t *buf, uint16_t len) if (this_len != 256) ao_ee_fill(block); else { - ao_ee_flush(); + ao_ee_flush_internal(); ao_ee_block = block; } memcpy(ao_ee_data + this_off, buf, this_len); @@ -277,7 +277,7 @@ ao_ee_write(uint32_t pos, uint8_t *buf, uint16_t len) } uint8_t -ao_ee_read(uint32_t pos, uint8_t *buf, uint16_t len) +ao_ee_read(uint32_t pos, uint8_t *buf, uint16_t len) __reentrant { uint16_t block; uint16_t this_len; @@ -311,12 +311,20 @@ ao_ee_read(uint32_t pos, uint8_t *buf, uint16_t len) return 1; } +void +ao_ee_flush(void) __reentrant +{ + ao_mutex_get(&ao_ee_mutex); { + ao_ee_flush_internal(); + } ao_mutex_put(&ao_ee_mutex); +} + /* * Read/write the config block, which is in * the last block of the ao_eeprom */ uint8_t -ao_ee_write_config(uint8_t *buf, uint16_t len) +ao_ee_write_config(uint8_t *buf, uint16_t len) __reentrant { if (len > AO_EE_BLOCK_SIZE) return 0; @@ -329,7 +337,7 @@ ao_ee_write_config(uint8_t *buf, uint16_t len) } uint8_t -ao_ee_read_config(uint8_t *buf, uint16_t len) +ao_ee_read_config(uint8_t *buf, uint16_t len) __reentrant { if (len > AO_EE_BLOCK_SIZE) return 0; |