diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-05-25 18:31:13 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-05-25 18:31:13 -0700 |
commit | 48337e3817f884f3ce8e7632b984a564a0703047 (patch) | |
tree | 47cf268a0b189cbcb0365cc4ecb2731dae6f1048 /libinstaller | |
parent | d672cdd2bd7622f6dc4db4955214abf4dd7a3b6e (diff) | |
download | syslinux-48337e3817f884f3ce8e7632b984a564a0703047.tar.gz |
dos installer: reuse ldlinux_seg
Make ldlinux_seg a global variable, and use it in syslxmod.c. This
reduces the size of syslxmod.o fairly significantly.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'libinstaller')
-rw-r--r-- | libinstaller/syslxmod.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/libinstaller/syslxmod.c b/libinstaller/syslxmod.c index 969ce8b3..4abfb384 100644 --- a/libinstaller/syslxmod.c +++ b/libinstaller/syslxmod.c @@ -127,7 +127,7 @@ const char *syslinux_check_bootsect(const void *bs) */ #ifdef __MSDOS__ -extern const char __payload_sseg[]; /* Symbol from linker */ +extern uint16_t ldlinux_seg; /* Defined in dos/syslinux.c */ static inline __attribute__((const)) uint16_t ds(void) { @@ -140,8 +140,7 @@ static inline void *set_fs(const void *p) { uint16_t seg; - seg = ds() + (size_t)__payload_sseg; - seg += (size_t)p >> 4; + seg = ldlinux_seg + ((size_t)p >> 4); asm volatile("movw %0,%%fs" : : "rm" (seg)); return (void *)((size_t)p & 0xf); } |