aboutsummaryrefslogtreecommitdiffstats
path: root/src/command.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2020-10-30 00:23:04 -0400
committerKevin O'Connor <kevin@koconnor.net>2020-10-30 14:04:12 -0400
commita5604320418a13472940f4bdf11e56a9c197ff12 (patch)
treee79b17772a7454315052dfd1682b40f8e5968f4b /src/command.c
parent473828ca6aef18c574b8665ae484513e5592af03 (diff)
downloadkutter-a5604320418a13472940f4bdf11e56a9c197ff12.tar.gz
kutter-a5604320418a13472940f4bdf11e56a9c197ff12.tar.xz
kutter-a5604320418a13472940f4bdf11e56a9c197ff12.zip
command: Fix handling of buffer passing in args[] on 64bit mcu
If the buffer pointer can't fit in a uint32_t then pass a relative buffer offset instead. This fixes buffer handling on 64bit linux mcus. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/command.c')
-rw-r--r--src/command.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/command.c b/src/command.c
index e3167baf..015cdb8e 100644
--- a/src/command.c
+++ b/src/command.c
@@ -18,12 +18,16 @@ static uint8_t next_sequence = MESSAGE_DEST;
static uint32_t
command_encode_ptr(void *p)
{
+ if (sizeof(size_t) > sizeof(uint32_t))
+ return p - console_receive_buffer();
return (size_t)p;
}
void *
command_decode_ptr(uint32_t v)
{
+ if (sizeof(size_t) > sizeof(uint32_t))
+ return console_receive_buffer() + v;
return (void*)(size_t)v;
}