[syslinux:disklib] chain.c32, libcom32: Move chs macros and chs typedef as disk_chs
syslinux-bot for Shao Miller
shao.miller at yrdsb.edu.on.ca
Sun Jul 25 17:33:11 PDT 2010
Commit-ID: 6880951cdaadf554a7536859f1a001bed9fd9c34
Gitweb: http://syslinux.zytor.com/commit/6880951cdaadf554a7536859f1a001bed9fd9c34
Author: Shao Miller <shao.miller at yrdsb.edu.on.ca>
AuthorDate: Mon, 28 Jun 2010 02:40:12 -0400
Committer: Shao Miller <shao.miller at yrdsb.edu.on.ca>
CommitDate: Sat, 10 Jul 2010 01:03:06 -0400
chain.c32, libcom32: Move chs macros and chs typedef as disk_chs
Moving portions of chain.c32 into libcom32.
Signed-off-by: Shao Miller <shao.miller at yrdsb.edu.on.ca>
---
com32/include/syslinux/disk.h | 11 +++++++++++
com32/modules/chain.c | 15 ++-------------
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/com32/include/syslinux/disk.h b/com32/include/syslinux/disk.h
index e81bd3b..d893d7f 100644
--- a/com32/include/syslinux/disk.h
+++ b/com32/include/syslinux/disk.h
@@ -57,6 +57,17 @@ struct disk_ebios_dapa {
uint64_t lba;
};
+/**
+ * CHS (cylinder, head, sector) value extraction macros.
+ * Taken from WinVBlock. None expand to an lvalue.
+*/
+#define chs_head(chs) chs[0]
+#define chs_sector(chs) (chs[1] & 0x3F)
+#define chs_cyl_high(chs) (((uint16_t)(chs[1] & 0xC0)) << 2)
+#define chs_cyl_low(chs) ((uint16_t)chs[2])
+#define chs_cylinder(chs) (chs_cyl_high(chs) | chs_cyl_low(chs))
+typedef uint8_t disk_chs[3];
+
extern int disk_int13_retry(const com32sys_t * inreg, com32sys_t * outreg);
extern int disk_get_params(int disk, struct disk_info *const diskinfo);
extern void *disk_read_sectors(const struct disk_info *const diskinfo,
diff --git a/com32/modules/chain.c b/com32/modules/chain.c
index 6bf8827..f631d6e 100644
--- a/com32/modules/chain.c
+++ b/com32/modules/chain.c
@@ -147,23 +147,12 @@ static inline void error(const char *msg)
static struct disk_info diskinfo;
-/*
- * CHS (cylinder, head, sector) value extraction macros.
- * Taken from WinVBlock. Does not expand to an lvalue
-*/
-#define chs_head(chs) chs[0]
-#define chs_sector(chs) (chs[1] & 0x3F)
-#define chs_cyl_high(chs) (((uint16_t)(chs[1] & 0xC0)) << 2)
-#define chs_cyl_low(chs) ((uint16_t)chs[2])
-#define chs_cylinder(chs) (chs_cyl_high(chs) | chs_cyl_low(chs))
-typedef uint8_t chs[3];
-
/* A DOS partition table entry */
struct part_entry {
uint8_t active_flag; /* 0x80 if "active" */
- chs start;
+ disk_chs start;
uint8_t ostype;
- chs end;
+ disk_chs end;
uint32_t start_lba;
uint32_t length;
} __attribute__ ((packed));
More information about the Syslinux-commits
mailing list