aboutsummaryrefslogtreecommitdiff
path: root/src/biosvar.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2012-05-19 22:42:51 -0400
committerKevin O'Connor <kevin@koconnor.net>2012-05-20 21:43:57 -0400
commit4f6563ef1bede5da45d7689c1e599b7ab2c13327 (patch)
tree2e50dadb1eb53f41bfec432bbc006b2e27adcf09 /src/biosvar.h
parent4bc49979b94c03561d263bfd53014279d87d690f (diff)
downloadseabios-hppa-4f6563ef1bede5da45d7689c1e599b7ab2c13327.zip
seabios-hppa-4f6563ef1bede5da45d7689c1e599b7ab2c13327.tar.gz
seabios-hppa-4f6563ef1bede5da45d7689c1e599b7ab2c13327.tar.bz2
Convert GET/SET_FLATPTR() accesses to "low mem" to GET/SET_LOWFLAT().
Add new GET/SET_LOWFLAT() macros and convert appropriate users to them. The new macros make for slightly better code generation. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/biosvar.h')
-rw-r--r--src/biosvar.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/biosvar.h b/src/biosvar.h
index fb56f73..fd2f1bf 100644
--- a/src/biosvar.h
+++ b/src/biosvar.h
@@ -256,10 +256,14 @@ extern u8 _datalow_seg, _datalow_base[];
#if MODESEGMENT
#define GET_LOW(var) GET_FARVAR(SEG_LOW, (var))
#define SET_LOW(var, val) SET_FARVAR(SEG_LOW, (var), (val))
+#define LOWFLAT2LOW(var) ((typeof(var))((void*)(var) - (u32)_datalow_base))
#else
#define GET_LOW(var) (var)
#define SET_LOW(var, val) do { (var) = (val); } while (0)
+#define LOWFLAT2LOW(var) (var)
#endif
+#define GET_LOWFLAT(var) GET_LOW(*LOWFLAT2LOW(&(var)))
+#define SET_LOWFLAT(var, val) SET_LOW(*LOWFLAT2LOW(&(var)), (val))
/****************************************************************