aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-05-18 00:03:32 -0400
committerKevin O'Connor <kevin@koconnor.net>2008-05-18 00:03:32 -0400
commit9dd0dd1e4e2401bc2931f2e1e3417c8ef5dc42b5 (patch)
tree9bf64653d5fa93c347264ae97f2848142b7bd44d
parent9571ac21e511c7e04d9589797e0d123d2798e2f6 (diff)
downloadseabios-hppa-9dd0dd1e4e2401bc2931f2e1e3417c8ef5dc42b5.zip
seabios-hppa-9dd0dd1e4e2401bc2931f2e1e3417c8ef5dc42b5.tar.gz
seabios-hppa-9dd0dd1e4e2401bc2931f2e1e3417c8ef5dc42b5.tar.bz2
Auto detect EBDA_SIZE from size of data structure.
-rw-r--r--src/biosvar.h4
-rw-r--r--src/types.h1
2 files changed, 3 insertions, 2 deletions
diff --git a/src/biosvar.h b/src/biosvar.h
index 0c68a2e..d2d7b9f 100644
--- a/src/biosvar.h
+++ b/src/biosvar.h
@@ -337,7 +337,7 @@ extern struct bios_config_table_s BIOS_CONFIG_TABLE;
#define SEG_EBDA 0x9fc0
#define SEG_BDA 0x0000
-#define EBDA_SIZE 1 // In KiB
-#define BASE_MEM_IN_K (640 - EBDA_SIZE)
+#define EBDA_SIZE DIV_ROUND_UP(sizeof(struct extended_bios_data_area_s), 1024)
+#define BASE_MEM_IN_K (640 - EBDA_SIZE)
#endif // __BIOSVAR_H
diff --git a/src/types.h b/src/types.h
index d356451..0f25df8 100644
--- a/src/types.h
+++ b/src/types.h
@@ -35,6 +35,7 @@ union u64_u32_u {
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
+#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
#define NULL ((void *)0)