// ElTorito Device Emulation data
struct cdemu_s {
- struct drive_s *emulated_drive;
+ struct drive_s *emulated_drive_gf;
u32 ilba;
u16 buffer_segment;
u16 load_segment;
(var) = (val); \
} while (0)
#if MODESEGMENT
-#define STORE_GLOBAL_PTR(var) (var)
-#define RETRIEVE_GLOBAL_PTR(var) (var)
+#define GLOBALFLAT2GLOBAL(var) ((typeof(var))((void*)(var) - BUILD_BIOS_ADDR))
#else
-#define STORE_GLOBAL_PTR(var) ((typeof(var))((void*)var - BUILD_BIOS_ADDR))
-#define RETRIEVE_GLOBAL_PTR(var) ((typeof(var))((void*)var + BUILD_BIOS_ADDR))
+#define GLOBALFLAT2GLOBAL(var) (var)
#endif
+// Access a "flat" pointer known to point to the f-segment.
+#define GET_GLOBALFLAT(var) GET_GLOBAL(*GLOBALFLAT2GLOBAL(&(var)))
/****************************************************************