Add FUNC16() helper macro for converting a 16bit func to a segoff_s.
[seabios.git] / src / biosvar.h
index df0df0eba47939723f4be69e480ed4408ff6cd27..415f9581b8e5867bcbeb058e2e6b9d9c12ad5c9b 100644 (file)
@@ -25,6 +25,12 @@ struct rmode_IVT {
 #define SET_IVT(vector, segoff)                                         \
     SET_FARVAR(SEG_IVT, ((struct rmode_IVT *)0)->ivec[vector], segoff)
 
+#define FUNC16(func) ({                                 \
+        ASSERT32FLAT();                                 \
+        extern void func (void);                        \
+        SEGOFF(SEG_BIOS, (u32)func - BUILD_BIOS_ADDR);  \
+    })
+
 
 /****************************************************************
  * Bios Data Area (BDA)