diff options
author | dim <dim@FreeBSD.org> | 2010-09-01 15:24:47 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2010-09-01 15:24:47 +0000 |
commit | 963045b790aad12cd67164232c75587c2955c1f0 (patch) | |
tree | 903708f57e8c5157d932724dfd74b92f8446c511 /sys/boot/pc98 | |
parent | 5216dea167c38680c62c1f24a81f70232eafadb7 (diff) | |
download | FreeBSD-src-963045b790aad12cd67164232c75587c2955c1f0.zip FreeBSD-src-963045b790aad12cd67164232c75587c2955c1f0.tar.gz |
Use a cleaner expression to retrieve the memory size in pc98's boot2.c,
which also avoids NULL pointer arithmetic, as suggested by jhb. The
available space goes from 11 bytes to 7.
Reviewed by: nyan
Approved by: rpaulo (mentor)
Diffstat (limited to 'sys/boot/pc98')
-rw-r--r-- | sys/boot/pc98/boot2/boot2.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/boot/pc98/boot2/boot2.c b/sys/boot/pc98/boot2/boot2.c index e35b425..54082ad 100644 --- a/sys/boot/pc98/boot2/boot2.c +++ b/sys/boot/pc98/boot2/boot2.c @@ -187,9 +187,8 @@ xfsread(ino_t inode, void *buf, size_t nbyte) static inline uint32_t memsize(void) { - u_char *p = (u_char *)PTOV(0x401); - - return *p * 128 * 1024 + *(u_int16_t *)(p + (0x594 - 0x401)) * 1024 * 1024; + return (*(u_char *)PTOV(0x401) * 128 * 1024 + + *(uint16_t *)PTOV(0x594) * 1024 * 1024); } static inline void |