diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2012-05-19 22:42:51 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2012-05-20 21:43:57 -0400 |
commit | 4f6563ef1bede5da45d7689c1e599b7ab2c13327 (patch) | |
tree | 2e50dadb1eb53f41bfec432bbc006b2e27adcf09 /src/biosvar.h | |
parent | 4bc49979b94c03561d263bfd53014279d87d690f (diff) | |
download | seabios-4f6563ef1bede5da45d7689c1e599b7ab2c13327.tar.gz |
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.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/biosvar.h b/src/biosvar.h index fb56f734..fd2f1bf9 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)) /**************************************************************** |