#include "types.h" // u8
#include "farptr.h" // GET_FARVAR
#include "config.h" // CONFIG_*
+#include "disk.h" // struct chs_s
-
-/****************************************************************
- * Interupt vector table
- ****************************************************************/
-
-struct rmode_IVT {
+struct segoff_s {
union {
struct {
u16 offset;
u16 seg;
};
u32 segoff;
- } ivec[256];
+ };
+};
+#define SEGOFF(s,o) ({struct segoff_s __so; __so.offset=(o); __so.seg=(s); __so;})
+
+
+/****************************************************************
+ * Interupt vector table
+ ****************************************************************/
+
+struct rmode_IVT {
+ struct segoff_s ivec[256];
};
#define GET_IVT(vector) \
u16 sector_count;
// Virtual device
- u16 heads;
- u16 cylinders;
- u16 spt;
+ struct chs_s lchs;
};
struct fdpt_s {
// Stack space available for code that needs it.
u8 extra_stack[512] __aligned(8);
+
+ u8 cdemu_buf[2048 * !!CONFIG_CDROM_EMU];
} PACKED;
// The initial size and location of EBDA