diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2014-11-18 23:27:26 +0100 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2014-11-18 23:30:44 +0100 |
commit | cd04a5f1aadc8e2ec4e787f5ba4cc8c38a579314 (patch) | |
tree | 63e9f095451aeba0139152c8742d0af67413690a /utils/hwstub/stub/target.h | |
parent | 794169a18f644eea32de20b26646381137545e2d (diff) | |
download | rockbox-cd04a5f1aadc8e2ec4e787f5ba4cc8c38a579314.tar.gz rockbox-cd04a5f1aadc8e2ec4e787f5ba4cc8c38a579314.zip |
hwstub/qeditor: add support for atomic read/writes
The current code assumed that READ/WRITE would produce atomic read/writes for
8/16/32-bit words, which in turned put assumption on the memcpy function.
Since some memcpy implementation do not always guarantee such strong assumption,
introduce two new operation READ/WRITE_ATOMIC which provide the necessary
tools to do correct read and write to register in a single memory access.
Change-Id: I37451bd5057bb0dcaf5a800d8aef8791c792a090
Diffstat (limited to 'utils/hwstub/stub/target.h')
-rw-r--r-- | utils/hwstub/stub/target.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/utils/hwstub/stub/target.h b/utils/hwstub/stub/target.h index cb17401a9c..5cd049d04f 100644 --- a/utils/hwstub/stub/target.h +++ b/utils/hwstub/stub/target.h | |||
@@ -33,6 +33,14 @@ void target_get_config_desc(void *buffer, int *size); | |||
33 | void target_udelay(int us); | 33 | void target_udelay(int us); |
34 | /* Wait for a short time (ms <= 1000) */ | 34 | /* Wait for a short time (ms <= 1000) */ |
35 | void target_mdelay(int ms); | 35 | void target_mdelay(int ms); |
36 | /* Read a n-bit word atomically */ | ||
37 | uint8_t target_read8(const void *addr); | ||
38 | uint16_t target_read16(const void *addr); | ||
39 | uint32_t target_read32(const void *addr); | ||
40 | /* Write a n-bit word atomically */ | ||
41 | void target_write8(void *addr, uint8_t val); | ||
42 | void target_write16(void *addr, uint16_t val); | ||
43 | void target_write32(void *addr, uint32_t val); | ||
36 | 44 | ||
37 | /* mandatory for all targets */ | 45 | /* mandatory for all targets */ |
38 | extern struct hwstub_target_desc_t target_descriptor; | 46 | extern struct hwstub_target_desc_t target_descriptor; |