summaryrefslogtreecommitdiff
path: root/src/core/ao.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-11-11 22:30:17 -0800
committerKeith Packard <keithp@keithp.com>2011-11-11 22:30:17 -0800
commitb132eefc5f63412bb4a98a4bb72b9055e40d5d42 (patch)
tree53f0d529cf30b21649b69cee3e5f8966adf86642 /src/core/ao.h
parent7ecde50fbebe68a2e2200a2f8d081fd37074f840 (diff)
altos: Make ao_xmem funcs require __xdata void * instead of casting
Having an explicit cast in the ao_xmem wrapper macros caused the compiler to generate garbage values for pdata addresses, making the upper byte 0x00 instead of the required 0xf0. Removing the casts from the ao_xmem macros exposed this problem, so a new PDATA_TO_XDATA macros was added, along with a CODE_TO_XDATA macro which serve to cast pointers, with suitable address modifications, so that things work again. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/core/ao.h')
-rw-r--r--src/core/ao.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/ao.h b/src/core/ao.h
index 9b8d3270..cbe2f8dc 100644
--- a/src/core/ao.h
+++ b/src/core/ao.h
@@ -32,6 +32,12 @@
#ifndef DATA_TO_XDATA
#define DATA_TO_XDATA(a) (a)
#endif
+#ifndef PDATA_TO_XDATA
+#define PDATA_TO_XDATA(a) (a)
+#endif
+#ifndef CODE_TO_XDATA
+#define CODE_TO_XDATA(a) (a)
+#endif
/* An AltOS task */
struct ao_task {