summaryrefslogtreecommitdiff
path: root/src/clock.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-09-09 11:34:39 -0400
committerKevin O'Connor <kevin@koconnor.net>2009-09-09 11:34:39 -0400
commit9f985427ffeb877f6eb6531a61c0d51250bdf7f3 (patch)
tree6c4ef72950230409e2a3e4f9de2463894c83458b /src/clock.c
parent372e071ed4b6a66fb371cf13b6f6d14ddd00837a (diff)
downloadqemu-seabios-9f985427ffeb877f6eb6531a61c0d51250bdf7f3.tar.gz
Replace common segment/offset pairs with struct segoff_s.
Introduce 'struct segoff_s' to more places.
Diffstat (limited to 'src/clock.c')
-rw-r--r--src/clock.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/clock.c b/src/clock.c
index c95f0a1..9009d49 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -454,7 +454,7 @@ set_usertimer(u32 usecs, u16 seg, u16 offset)
// Interval not already set.
SET_BDA(rtc_wait_flag, RWS_WAIT_PENDING); // Set status byte.
- SET_BDA(ptr_user_wait_complete_flag, (seg << 16) | offset);
+ SET_BDA(user_wait_complete_flag, SEGOFF(seg, offset));
SET_BDA(user_wait_timeout, usecs);
// Turn on the Periodic Interrupt timer
@@ -561,11 +561,11 @@ handle_70()
u32 time = GET_BDA(user_wait_timeout); // Time left in microseconds.
if (time < 0x3D1) {
// Done waiting - write to specified flag byte.
- u32 segoff = GET_BDA(ptr_user_wait_complete_flag);
- u16 segment = segoff >> 16;
- u16 offset = segoff & 0xffff;
- u8 oldval = GET_FARVAR(segment, *(u8*)(offset+0));
- SET_FARVAR(segment, *(u8*)(offset+0), oldval | 0x80);
+ struct segoff_s segoff = GET_BDA(user_wait_complete_flag);
+ u16 ptr_seg = segoff.seg;
+ u8 *ptr_far = (u8*)(segoff.offset+0);
+ u8 oldval = GET_FARVAR(ptr_seg, *ptr_far);
+ SET_FARVAR(ptr_seg, *ptr_far, oldval | 0x80);
clear_usertimer();
} else {