diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-09-09 11:34:39 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-09-09 11:34:39 -0400 |
commit | 9f985427ffeb877f6eb6531a61c0d51250bdf7f3 (patch) | |
tree | 6c4ef72950230409e2a3e4f9de2463894c83458b /src/clock.c | |
parent | 372e071ed4b6a66fb371cf13b6f6d14ddd00837a (diff) | |
download | qemu-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.c | 12 |
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 { |